본문 바로가기
Program

[Programming] (윈도우 시스템 프로그래밍) 시스템프로그래밍/CPU

by snwo 2020. 8. 3.

컴퓨터 시스템 프로그래밍

(컴퓨터)시스템의 범위

하드웨어 + 운영체제.

시스템 프로그래밍

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 UnitRegister 에서 '+' 명령어를 가져와 해석하고 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로 제작되었습니다.