시스템 프로그래밍

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

CalebHong 2022. 5. 1. 23:32

※ 한빛미디어에서 출간한 "뇌를 자극하는 윈도우즈 시스템 프로그래밍" 서적의 유튜브 강의를 기반으로 작성

시스템 프로그래밍이란?

◇ 시스템(컴퓨터 시스템)의 범위

 - 하드웨어 + 운영체제

 

◇ 시스템 프로그래밍

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

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

 

◇ 응용 소프트웨어 개발과의 차이점

 - 시스템 프로그래밍은 모든 응용 프로그램에 포함되는 요소

 

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

◇ CPU, 캐쉬 : 컴퓨터 구조(Compute Architecture)

◇ 메인 메모리, 하드디스크 : 운영체제(Operating System)

 

컴퓨터 하드웨어 구성(전체)

◇ CPU(Central Processing Unit)

 - 중앙처리장치

 - 연산이 이뤄지는 원리

◇ Main Memory

 - 램(RAM)

 - 프로그램 실행 방식을 이해하는 것

◇ 입출력 버스(I/O Bus)

 - 데이터 송/수신이 이뤄지는 원리

 

CPU에 대한 이해(전체 구성)

◇ ALU

 - 명령 코드를 연산

◇ 컨트롤 유닛

 - CPU 전체적으로 컨트롤하는 요소(Brain)

◇ 레지스터

 - 임시적인 저장 메모리

◇ 버스 인터페이스

 - 들어온 데이터를 레지스터에 저장

 

ex) A라는 하나의 실행 파일은 하드디스크에 저장되어 있다. 이를 실행(덧셈, 숫자 2, 5)하게 되면?

1. 먼저 메인 메모리에 올라옴

2. 버스를 통해서 버스 인터페이스에 도달

3. 덧셈이라는 바이너리 코드가 컨트롤 유닛으로 전달되기 위해서 레지스터에 데이터가 저장됨

4. 컨트롤 유닛이 레지스터의 명령 코드를 확인하여 ALU에게 명령을 전달하고, 레지스터에 저장된 숫자 2와 5까지 ALU에게 전달

5. ALU는 명령 코드를 통해 2와 5를 더한 뒤에 그 값을 다시 레지스터에 저장함

 

클럭 신호(Clock Pulse)

◇ 동작 타이밍

 - 클럭 발생기의 클럭

 - 일정한 간격으로 신호를 줌

 - 신호에 맞춰서 모든 장치들은 연산을 함

 - 동작 타이밍을 결정

 - 클럭을 높이면 성능이 높아지지만 더 많은 열을 발생

◇ 필요성

 - 요소들의 동기화

 - 시스템의 안정성을 유지