시스템 프로그래밍(System Programming)?
: 컴퓨터 시스템(하드웨어, 크게 보면 운영체제까지)을 컨트롤하는 프로그램을 만드는 것.
: Windows 시스템 프로그래밍이란 Windows 운영체제 기반의 컴퓨터에게 일을 시키기 위한 프로그램을 구현하는 것.
컴퓨터 시스템의 주요 구성요소
컴퓨터 하드웨어의 구성
- CPU(Central Processing Unit): 중앙처리장치
ALU(Arithmetic Logic Unit)
: 산술 논리 연산장치, CPU 내부에 실제 연산을 담당하는 블록.
: ALU가 처리하는 연산은 크게 산술 연산과 논리 연산으로 나뉜다. (아주 복잡한 프로그램도 CPU입장에서는 대부분 이 두가지 형태의 연산으로 이뤄짐.)
컨트롤 유닛
: 실행파일에는 CPU에게 일을 시키기 위한 명령어(Binary형태)들이 저장되어 있다. 연산만 할 수 있는 ALU를 위해 명령어를 해석해주는 것이 컨트롤 유닛.
레지스터
: CPU내부에 임시적으로 데이터를 저장하기 위한 조그마한 메모리 공간
버스 인터페이스
: CPU, RAM, 하드디스크, 그래픽 카드등의 컴퓨터 구성 요소들이 서로 데이터를 주고 받기위한 매개체가 입출력 버스이다.
: 버스 인터페이스는 이입출력 버스를 이용하기 위한 프로토콜 혹은 통신방식을 알고 있다.
: CPU는 버스 인터페이스를 통해 CPU 내부 데이터를 I/O 버스에 송.수신한다.
클럭 신호
: CPU는 매 클럭이 발생할 때마다 그 클럭에 맞춰서 일을 한다.
: CPU의 클럭 속도가 1.6Mhz이면 1초당 1,600,000번의 일을 하게된다.
: 클럭 신호에 맞춰서 일을 하는 이유는 컴퓨터 시스템이 동기화를 필요로 하기 때문.
- 메인 메모리: RAM, 컴파일이 완료된 프로그램 코드가 올라가서 실행되는 영역, 프로그램 실행을 위해 존재하는 메모리
- 입.출력 버스: 컴퓨터를 구성하는 구성요소 사이에서 데이터를 주고 받기 위해 사용되는 경로.
프로그램의 실행과정
폰 노이만 : 프로그램이 컴퓨터 내부에 저장되는 구조를 생각해낸 사람, Stored Program Concept
프로그램의 실행과정
버스 시스템
Data Bus: 데이터를 이동하기 위해 필요한 버스, 이때 데이터는 명령어, 피연산자 등.
Address Bus: 주소값을 이동하기 위해 필요한 버스.
Control Bus: CPU가 원하는 바를 메모리에 전달할 때 사용하는 버스.
'Tech > Windows' 카테고리의 다른 글
[Windows System Programming] 아스키코드 vs 유니코드 (0) | 2016.09.23 |
---|