시스템 프로그래밍의 개요
- 컴퓨터 시스템에서 제공하는 강력한 기능을 활용하는 방법
- 모든 응용 프로그램에 들어가는 요소
- 시스템의 범위 : 하드웨어 + O/S
- 운영체제 자체의 기능을 십분 활용하는 프로그래밍
컴퓨터 시스템의 주요 구성요소
- 시스템 = 컴퓨터구조 + 운영체제
컴퓨터 하드웨어 구성
- CPU
-> 중앙 처리 장치
-> 연산이 이루어지는 장소
-> ALU와 레지스터, 레지스터와 버스 인터페이스 간 서로 주고 받음
-> CU은 CPU 전체를 총괄해 신호를 줌으로써 가장 많은 컨트롤을 함
-> 필요한 공부 내용 : 연산이 이루어지는 원리
- 메인 메모리
-> 램(RAM)
-> 컴파일이 완료된 프로그램 코드가 올라가서 실행되는 영역
-> 필요한 공부 내용 : 프로그램 실행 방식 이해
- 입출력 버스
-> 필요한 공부 내용 : 데이터 송 수신 방법
CPU에 대한 이해
- 버스 인터페이스
-> CPU 내부에 데이터를 읽기 위해 필요
-> 데이터를 주고받기 위한 매개체
-> 통신 규약에 따라 데이터를 주고 받을 수 있는 장치
-> 입출력 버스가 어떻게 데이터를 주고 받는지 아는 장치
- ALU
-> 연산 담당
- 컨트롤 유닛(CU)
-> 명령어 해석
-> ALU에게 명령을 함
-> CPU가 실제로 해야하는 일을 결정짓는 요소
- 레지스터
-> CPU 내부의 저장 공간
-> 데이터를 ALU와 CU에 직접 넣으면 데이터 손실 등 오류가 날 수 있음
-> 버스 인터페이스를 통해 받아온 데이터를 저장하여 ALU나 CU이 필요할 때 데이터를 가져갈 수 있게 해줌
클럭 신호
- 클럭 발생기의 클럭
- 일정 간격으로 모든 장치에 신호를 주게 되는데 그 신호에 맞춰(클럭이 발생할 때) 연산을 함
- 필요성
-> 요소들의 동기화를 위함
-> 동일한 클럭 신호를 줘서 그 클럭에 맞춰 일을 하게 함
'Programming > System Programming' 카테고리의 다른 글
윈도우즈 시스템 프로그래밍 - 3. 64비트 기반 프로그래밍(2) (0) | 2020.07.08 |
---|---|
윈도우즈 시스템 프로그래밍 - 3. 64비트 기반 프로그래밍(1) (0) | 2020.07.08 |
윈도우즈 시스템 프로그래밍 - 2. 아스키코드 vs 유니코드(2) (0) | 2020.07.08 |
윈도우즈 시스템 프로그래밍 - 2. 아스키코드 vs 유니코드(1) (0) | 2020.07.07 |
윈도우즈 시스템 프로그래밍 - 1. 컴퓨터 구조에 대한 첫 번째 이야기(2) (0) | 2020.07.07 |