시스템 프로그래밍

컴퓨터 구조

은행털이 2024. 10. 18. 03:06

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

  • 컴퓨터 구조
    - CPU, 캐시
  • 운영체제
    - 메인 메모리 -> 메모리 관리 기법
    - 하드디스크 -> 파일 I/O(다양한 I/O 포함)

 - 명령어의 내용대로 연산을 하는 주 요소는 ALU이지만, 명령어를 해석해서 해야 할 일을 결정하는 요소는 컨트롤 유닛이다

- 컴퓨터 내부의 각종 요소들은 클럭 신호(Clock Pulse)에 의해 동기화됨

 

 

 

 

프로그램 실행 과정

- 전처리기 > 컴파일러 > 어셈블러 > 링커

  1. 전처리기
    - C, C++ 에서 #으로 시작하는 지시문, 지시자로 전처리기가 치환함
  2. 컴파일러에 의한 번역
    - CPU의 명령어로 번역
  3. 어셈블러에 의한 바이너리 코드 생성
    - CPU의 명령어를 바이너리 코드로 번역
  4. 링커에 의한 연결과 결합
    - 라이브러리와 결합

 

프로그램 내장 방식(Stored Program Concept, 폰 노이만 구조)

- 전처리기 > 컴파일러 > 어셈블러 > 링커 를 거쳐 만들어진 실행파일이 주 기억장치에 적재되고 이후 CPU로 Fetch

- Fetch > Decode > Execution

  • Fetch
    - 주 기억장치에서 CPU 내부로 명령어를 이동(레지스터로)
  • Decode
    - 명령어를 해석하여 ALU에게 전달
    - 컨트롤 유닛이 수행
  • Execution
    - 받은 명령어의 연산을 진행
    - ALU가 수행

 

 

버스 시스템(Bus)

- 데이터 이동의 기반이 되는 시스템

- CPU 내 외부에 있는 요소들은 I/O 버스를 통해 데이터를 주고받는다.

- 데이터를 주고받기 위해서는 BUS의 통신 시스템에 맞게 입출력을 돕는 인터페이스 장치가 필요 -> 컨트롤 어댑터

  • 데이터 버스
    - 데이터가 이동하는 버스
  • 주소 버스
    - 메모리 주소값을 사용하기 위한 버스
  • 제어 버스
    - 제어 신호가 이동하는 버스

'시스템 프로그래밍' 카테고리의 다른 글

커널 오브젝트와 오브젝트 핸들  (0) 2024.10.18
프로세스의 생성과 소멸  (0) 2024.10.18
컴퓨터 구조 2  (0) 2024.10.18
64비트 기반 프로그래밍  (0) 2024.10.18
아스키코드와 유니코드  (0) 2024.10.18