본문 바로가기
프로그래밍/Desktop App

[시스템 프로그래밍] 컴퓨터 구조

by YuminK 2023. 12. 3.

윈도우즈 시스템 프로그래밍이란?

윈도우즈 운영체제 기반의 컴퓨터에게 일을 시키는 프로그램을 개발하는 것

 

CPU(Central Processing Unit)

중앙처리장치, 프로그램의 연산을 담당한다.

 

메인 메모리(Main memory) 

컴파일이 완료된 프로그램 코드가 올라가서 실행되는 영역이다. 

 

입출력 버스(Input/Output Bus)

컴퓨터를 구성하는 요소 사이에서 데이터를 주고 받는 통로 역할을 한다. 

 

CPU에 대한 이해

ALU(Arithmetic Logic Unit)

CPU 내에 존재하는 블록으로 덧셈이나 뺄셈과 같은 산술 연산 및 논리 연산을 처리한다.

 

컨트롤 유닛(Control Unit)

명령어에 대한 정보를 해석한다. 

 

레지스터 세트(Register Set)

데이터를 저장하거나 데이터의 주소를 저장하기 위해 사용된다. 각 레지스터마다 목적이 있다. 

 

버스 인터페이스(Bus Interface)

CPU 내에 IO버스의 통신 방식을 이해하기 위해 사용된다. 

 

클럭 신호(Clock Pulse)

CPU는 클럭신호에 따라 일을 한다. 1초에 얼만큼 일을 하는지에 따라 클럭수가 결정된다.

 

폰 노이만의 컴퓨터 구조

프로그램이 컴퓨터 내부에 저장되는 구조이다. (Stored Program Concept)

 

프로그램의 실행과정

1. 전처리에 의한 치환작업

2. 컴파일에 의한 번역(소스코드가 컴파일러에 의해 어셈블리 코드로 번역된다.)

3. 어셈블러에 의한 바이너리 코드 생성

4. 링커에 의한 연결과 결합(참조하는 함수나 라이브러리를 하나로 묶는 과정)

 

이렇게 만들어진 실행 파일은 메모리에 Fetch하고 명령어를 해석(Decode)하는 과정을 거쳐 Excecution 된다. 명령어를 해석하는 주체는 컨트롤 유닛이고 ALU에 의해 처리된다.

 

버스 시스템(BUS)

명령어 fetch를 위한 데이터 전송 경로로 버스 시스템이 사용된다. 주고 받는 데이터의 종류에 따라 어드레스 버스(Address Bus), 데이터 버스(Data Bus), 컨트롤 버스(Control Bus)로 나누어진다. 

 

데이터 버스

데이터를 이동하기위한 버스이다. 명령어나 피연산자 등의 데이터가 올 수 있다. 

 

어드레스 버스

주소값을 이동하기 위해 필요한 버스이다. 

 

컨트롤 버스

CPU와 메모리간 통신을 위해 사용된다. (일종의 사인을 보내기 위함)

댓글