조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다.
1. 컴퓨터의 기본 구성
하드웨어 구성
| 구성 요소 | 설명 | 특징 |
| CPU (중앙 처리 장치) | 명령어를 해석하여 실행하는 장치 |
외부에서 정보를 입력받고, 기억하고, 연산하고, 출력
|
| Memory (주기억장치) | 작업에 필요한 프로그램과 데이터를 저장 |
바이트 단위로 분할되며, 분할 공간마다 주소로 구분됨
|
| I/O Device (입출력 장치) | 외부 세계와의 데이터 전송 담당 | CPU가 직접 제어하지 않고, 컨트롤러/드라이버를 통해 접근 |
| Main Board (메인보드) | 컴퓨터의 PCB | 주변 장치를 연결하는 인터페이스 제공 |
종류) I/O Device
더보기
- 자성 저장장치: 플로피 디스켓, 하드디스크
- 레이저 저장장치: CD, DVD, Blu-ray Disc
- 메모리 저장장치: USB flash drive, SD Card, SSD
폰 노이만 구조

| 구성 요소 | 설명 | 특징 |
| 내장 메모리 순차 처리 방식 |
메모리에서 명령어를 순차적으로 하나씩 가져와 처리
|
Fetch → Decode → Execute 사이클 |
| 통합된 메모리 구조 | 프로그램과 데이터가 동일한 메모리 공간에 저장 | 데이터와 명령어의 구분이 없어 보안 취약 가능성 존재 |
| 단일 버스 구조 | 데이터와 명령어가 동일한 버스를 통해 전송 | CPU, 메모리, 입출력 장치가 하나의 버스를 통해 연결 |
2. CPU와 메모리
CPU 구성

| 구성 요소 | 정의 | 주요 역할 |
| ALU | 산술·논리 연산을 수행하는 장치 |
- 덧셈, 뺄셈, AND, OR 같은 연산 수행
- 레지스터에 저장된 데이터를 이용함 |
| Control Unit | 컴퓨터의 작업 흐름을 제어하는 장치 |
- 메모리에서 명령어를 가져와 해독 후
- 각 장치에 제어 신호를 보내 실행 지시 |
| Register | CPU 내부의 고속 임시 저장 공간 |
- 연산에 필요한 데이터 및 결과를 임시 저장
- 메모리 접근을 최소화하여 성능 향상 |
| System Bus | CPU, 메모리, I/O 장치를 연결하는 물리적 통신 경로 |
- 데이터, 주소, 제어 신호 전달
- CPU와 외부 장치 간 통신 담당 |
표) 레지스터 종류
더보기
| 구성 요소 | 설명 |
| Data Register |
메모리에서 가져온 데이터를 임시로 보관
|
| -> IR (Instruction Register) | 현재 실행 중인 명령어를 저장. |
| -> MBR (Memory Buffer Register) |
메모리에서 가져온 데이터나 메모리로 옮겨갈 데이터를 임시로 저장.
|
| -> AC (Accumulator) | 연산 결과를 임시로 저장. |
| Address Register |
데이터나 명령어가 저장된 메모리 주소를 임시로 보관.
|
| -> PC (Program Counter) | 다음에 실행할 명령어의 주소를 가리킴. |
| -> MAR (Memory Address Register) |
메모리에서 데이터를 읽거나 쓸 때 사용되는 주소를 임시로 저장.
|
표) 시스템 버스 종류
더보기
| 버스 | 설명 | 통신 방향 |
| Control Bus | 시스템 내 각종 요소들의 동작 제어 신호가 오고갑니다. Control Unit과 연결됩니다. (Memory, I/O Device, Interrupt, Bus Control) |
양방향 통신 |
| Address Bus | 데이터가 저장된 주소를 지정하는 통신 경로 MAR과 연결되어 있습니다. |
단방향 통신 |
| Data Bus | Control Bus, Address Bus의 응답을 MBR에 실어다 주는 역할을 맡습니다. | 양방향 통신 |
CPU 통신
| 개념 | 설명 |
| 시스템 버스 |
메모리, 주변장치를 연결하는 물리적 버스
|
| 내부 버스 |
CPU 내부 간 데이터를 교환하는 버스 (Register, ALU, Cache)
|
예시) CPU가 메모리에서 데이터를 읽으려는 경우
더보기
- 주소 버스를 통해 CPU는 읽고자 하는 메모리 주소를 메모리로 보냅니다.
- 제어 버스는 "읽기" 명령을 메모리로 전달하여 메모리가 데이터를 준비하도록 합니다.
- 데이터 버스를 통해 메모리는 데이터를 CPU로 전송합니다.
예시) CPU가 외부 장치에 데이터를 전송하려는 경우
더보기
예: 프린터
- 주소 버스를 통해 CPU는 프린터의 주소를 지정합니다.
- 제어 버스는 "쓰기" 명령을 프린터로 보내어 프린터가 데이터를 받을 준비를 하도록 합니다.
- 데이터 버스를 통해 CPU는 데이터를 프린터로 전송합니다.
CPU 동작

| 개념 | 설명 |
| Clock (클럭) |
신호 발생기. 정해진 주파수로 Pulse를 생성
|
| Pulse (펄스) |
전기적 신호의 변화 (1과 0, H와 L이 주기적으로 변화)
|
| Tick (틱) |
Pulse의 한 주기, 신호가 한 번 변화하는 데 걸리는 시간
|
| Hz (헤르츠) |
Tick이 발생하는 속도를 나타내는 단위 (초당 발생하는 Tick)
|
출처
- Wiki - 중앙 처리 장치
- Wiki - 메인 보드
- Wiki - 폰 노이만 구조
- Rubisco's Programming Note - 명령어 사이클과 인터럽트
- Wiki - System bus
'OS' 카테고리의 다른 글
| [쉽게 배우는 운영체제] 4-2. CPU 스케줄링: 인터럽트 처리 (0) | 2024.12.12 |
|---|---|
| [쉽게 배우는 운영체제] 4-1. CPU 스케줄링: 스케줄링 (0) | 2024.12.12 |
| [쉽게 배우는 운영체제] 3-2. 프로세스와 스레드: 스레드 (0) | 2024.12.12 |
| [쉽게 배우는 운영체제] 3-1. 프로세스와 스레드: 프로세스 (0) | 2024.12.11 |
| [쉽게 배우는 운영체제] 1. 운영체제 개요 (1) | 2023.12.26 |