컴퓨터 시스템의 주요 구성 요소
- 컴퓨터 구조
- CPU, 캐시 - 운영체제
- 메인 메모리 -> 메모리 관리 기법
- 하드디스크 -> 파일 I/O(다양한 I/O 포함)
- 명령어의 내용대로 연산을 하는 주 요소는 ALU이지만, 명령어를 해석해서 해야 할 일을 결정하는 요소는 컨트롤 유닛이다
- 컴퓨터 내부의 각종 요소들은 클럭 신호(Clock Pulse)에 의해 동기화됨
프로그램 실행 과정
- 전처리기 > 컴파일러 > 어셈블러 > 링커
- 전처리기
- C, C++ 에서 #으로 시작하는 지시문, 지시자로 전처리기가 치환함 - 컴파일러에 의한 번역
- CPU의 명령어로 번역 - 어셈블러에 의한 바이너리 코드 생성
- CPU의 명령어를 바이너리 코드로 번역 - 링커에 의한 연결과 결합
- 라이브러리와 결합
프로그램 내장 방식(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 |