컴퓨터 시스템 프로그래밍
(컴퓨터)시스템의 범위
하드웨어 + 운영체제.
시스템 프로그래밍
windows 운영체제의 기능을 활용하는 프로그래밍
응용 소프트웨어 개발과 차이
시스템프로그래밍은 모든 응용프로그램에 포함된다.
컴퓨터 시스템의 주요 구성요소
컴퓨터 구조 (Computer Architecture)
CPU + Cache
운영체제 (Operating System)
메인메모리(Main memory) + 하드디스크(Hard disk)
CPU : 컴퓨터시스템의 모든 장치를 제어하고 명령을 실행하는 장치
구성요소
- ALU (Artihmetic Logic Unit) : 실제로 연산을 수행하는 장치 (산술연산, 논리연산)
- Register : CPU 내부에서 처리할 명령어와 값들을 저장하는 임시 기억장치
- Bus interface : 장치와 I/O BUS 버스가 통신하기위한 장치. CPU 내부에도 있고, Hard disk, Keyboard, Monitor, Network card 에도 I/O BUS 와 통신하기위해 BUS interface 가 다 들어있다.
- Control Unit : ALU 에서 연산을 수행하기위해 CPU 가 처리해야할 명령어를 해석해주는 장치
Example : 2+3 을 수행하는 프로그램을 실행시킨다고 가정하자.
하드디스크 -> I/O BUS
-> 프로그램이 Main memory 에 올라간다.
-> 2+3 명령이 I/O BUS 통해 CPU 내부 Bus interface 로 이동
-> '+' 명령어, 2, 3 모두 Register 로 들어간다.
-> Control Unit 이 Register 에서 '+' 명령어를 가져와 해석하고 ALU 가 2 랑 3을 가져가 '+' 연산을 실행하게한다.
-> 결과값을 Register 에 저장한다.
클럭신호
클럭발생기가 클럭신호을 준다. 이 클럭신호에 맞춰 CPU 가 일을하게된다. 컴퓨터시스템을동기화하기위해 필요하다.
Example : 연산장치 (초당 10번클럭) -> BUFFER (초당 5번클럭) -> 출력장치 (초당 5번클럭)
연산장치가 출력장치와 버퍼보다 2배가 빠르기 때문에, 출력장치와 버퍼가 한번 일을할때 연산을 두번 수행해서 BUFFER 을 덮어써서 값의 손실이 일어난다. 요소들을 동기화하기위해서 클럭신호가 필요하다.
요소요소마다 클럭을 발생시키는게아니라, 클럭발생기의 클럭신호로 요소들마다 동일한 클럭신호를 줌으로써
시스템을 안정적으로 작동시킬수 있다.
위 예제의 경우에는 시스템이 요구하는 가장 낮은 클럭을 기준으로 초당 5번의 클럭신호를 줘야한다. 요구하는 클럭신호보다 높은속도의 클럭을 주면, 물론 시스템은 빨라지겠지만 열이 발생해서 시스템이 불안정해질 수 있다.
(이를 over clock 이라고 부른다)
그래서 시스템이 불안해지지 않을정도만 클럭을 높여야한다.
컴퓨터 클럭속도
인터넷에서 컴퓨터를 살려고 CPU 를 뭐살지 찾다보면, @ X.XX Ghz 가 붙는걸 볼 수 있습니다.
제 CPU (i5-7400) 를 예를 들어설명하면, i5-7400 @ 3.00 Ghz (기가헤르츠) 에서 3.00 Ghz 는 초당 30,000,000 번의 클럭을 발생시킨다는 걸 의미합니다. CPU의 클럭속도가 높을수록 초당 처리할 수 있는 명령어가 많아지니, CPU 를 살때 고려해볼 수 있는 정보입니다.
#윤성우 윈도우 시스템 프로그래밍을 BASE로 제작되었습니다.