I'm FanJae.

[System Programming] 시스템 프로그래밍의 이해와 접근 본문

System Programming

[System Programming] 시스템 프로그래밍의 이해와 접근

FanJae 2024. 8. 25. 15:16
본 내용은 뇌를 자극하는 윈도우즈 시스템 프로그래밍(윤성우 저) 책을 보고 정리한 내용입니다.

개인이 학습한 내용을 정리할 목적으로 게시한 것으로 책의 상세한 내용은 직접 구매하여 확인을 부탁드립니다. 

 

1. 시스템 프로그래밍의 이해와 접근

 

1-1. 시스템(컴퓨터 시스템)이란?

- 일반적으로 개발자들이 얘기하는 시스템이란, 하드웨어뿐만 아니라 운영체제를 포함한다.

 

1-2. 시스템 프로그래밍이란?

- 컴퓨터 시스템을 활용하는 소프트웨어를 개발한다.

- 개발자들이 만드는 소프트웨어(응용 소프트웨어)에는 시스템 프로그래밍 요소가 포함된다.

- Windows 운영체제 자체의 기능을 십분 활용하는 프로그래밍

 

1-3. 응용 소프트웨어 개발과의 차이점

- 즉, 응용 소프트웨어의 개발을 위해서는 우리가 구현하지 않더라도, 시스템 프로그래밍이 일부 포함되어야 한다.


2. 컴퓨터 시스템의 주요 구성 요소

 

- 여기서는 컴퓨터 구조와 운영체제의 개념으로 두개를 나누어서 설명한다.

2-1. 컴퓨터 구조

- 일반적으로는 CPU와 캐시까지를 '컴퓨터 구조'로 이야기 하고, 일반적으로 '컴퓨터 구조'에서 이를 다룬다.

※ 물론 학부에서 컴퓨터 구조, 운영체제 위 내용을 모두 다루지만, 상대적으로 컴퓨터 구조 쪽에서 비중이 높다.

2-2. 운영체제

- 메인 메모리는 메모리 관리적인 측면에 대한 얘기다.

- 여기서 말하는 하드 디스크는 물리적인 하드디스크가 아닌 파일 I/O와 같은 입출력과 같은 얘기를 하는 것이다.

 

2-3. 컴퓨터 하드웨어 구성 (전체)

- 이 컴퓨터 하드웨어 구성은 저마다 차이가 존재한다.

- 하지만 이 그림을 전체적으로 이해한다면, 다른 것을 볼때도 크게 무리는 없다.

 

2-3-1. CPU( Central Processing Unit )

- 중앙처리장치를 의미한다.

- 컴퓨터의 연산이 이루어지는 것을 넓게 보면, CPU 내부에서 이뤄진다고 할 수 있다.

2-3-2. 메인 메모리( Main Memory )

- 일반적으로, 램(RAM)을 의미한다.

- 프로그램이 실행되는 방식을 이해하는 것이 중요하다.

2-3-3. 입출력 버스 ( Input / Output Bus )

- 데이터를 주고 받는 것이 어떻게 이뤄지는지 아는 것이 중요하다.

 

2-4. CPU에 대한 이해(전체 구성)

- 이는 CPU에 대한 전체적인 구성도이다.

Control Unit은 화살표가 없지만, 원래 모든 요소(ALU,Register,Bus Interfafce)와 신호를 주고 받는 요소이다.

 

2-4-1. ALU(Arithmetic Logic Unit, 산술 논리 장치)

- CPU 내부에서 실질적인 연산을 담당하는 요소이다.

- 기본적인 덧셈, 뺄셈과 같은 연산 및 논리 연산 등을 수행한다.

2-4-2. Control Unit

- CPU가 처리해야 할 명령어들을 해석한다.

- CPU의 다양한 구성 요소에 명령을 수행할 수 있도록 제어하는 역할을 한다.

2-4-3. 레지스터(Register set)

- CPU 내에 존재하는 아주 작은 메모리이다.

- CPU 내부에서 구성하는 구성 요소들의 임시 데이터나 명령어 등을 저장할 수 있다.

2-4-4. 버스 인터페이스 (Bus Interface)

- CPU가 여러 장치들과 데이터를 주고 받기 위해 통신을 조정하고 관리하는 장치이다.

- 컴퓨터 내 여러 장치는 독립적으로 동작하는게 아니라 서로 데이터를 주고 받으며 동작한다.

- 버스 인터페이스는 이러한 데이터 전송을 지원하고 조정하는 매개체 역할을 한다.


3. 클럭 신호( Clock Pulse )

 

3-1. 클럭(Clock)이란?

- 클럭이라는 것은 일정한 주기으로 반복되는 전기적 신호이다.

- 모든 장치가 동일한 클럭

- 따라서, 클럭은 하드웨어의 동작 티이밍을 결정하는 요소이다.

 

3-2. 클럭이 필요한 이유

클럭이 필요한 이유는 동기화를 위해서 이다.

- 컴퓨터 내부의 클럭 신호 발생기는 전체 시스템이 동일한 타이밍에 작업을 수행할 수 있도록 조정해준다.

- 모든 장치가 각기 다른 클럭 신호를 필요로 한다. 이를 조정해 주는 것이 클럭 신호 발생기이다.

- 그 클럭에 맞춰서 일을 하도록 시스템을 디자인 하자는 것이다.

즉, 클럭 신호 발생기를 이용해서 이들이 동일한 타이밍에 작업을 수행하도록 하는 것이 클럭이 필요한 이유이다.

 

 

Comments