|
| 1 | +--- |
| 2 | +sidebar_position: 2 |
| 3 | +title: 컴퓨터의 구조와 성능 |
| 4 | +description: 운영체제의 핵심 개념과 컴퓨터 성능 향상 기술에 대해 이해합니다. |
| 5 | +--- |
| 6 | + |
| 7 | +# 컴퓨터의 구조와 성능 |
| 8 | + |
| 9 | +## Executive Summary |
| 10 | + |
| 11 | +본 문서는 컴퓨터 시스템의 기본 구조, 성능 향상 기술, 그리고 현대적인 병렬 처리 방식에 대한 핵심 원리를 종합적으로 설명합니다. |
| 12 | + |
| 13 | +### 핵심 구조: 폰 노이만 구조 |
| 14 | + |
| 15 | +컴퓨터 시스템의 근간을 이루는 것은 **폰 노이만 구조**로, 모든 프로그램은 **중앙처리장치(CPU)**에 의해 실행되기 전에 반드시 **메인 메모리**에 적재되어야 합니다. 이 구조적 특징으로 인해 메모리는 시스템의 핵심 작업 공간이며, 효율적인 메모리 관리가 운영체제의 주요 과제가 됩니다. |
| 16 | + |
| 17 | +### 성능 최적화: 저장장치 계층 구조 |
| 18 | + |
| 19 | +컴퓨터의 성능은 **저장장치 계층 구조**를 통해 최적화됩니다. 속도가 가장 빠른 레지스터부터 캐시, 메인 메모리, 보조저장장치에 이르기까지 속도, 용량, 비용을 균형 있게 배치하여 시스템 전반의 효율을 극대화합니다. 특히 **CPU**와 **메인 메모리** 간의 속도 차이를 완화하기 위한 **캐시 메모리**는 시스템 성능에 결정적인 역할을 합니다. |
| 20 | + |
| 21 | +### 입출력 관리 기술 |
| 22 | + |
| 23 | +**CPU**의 효율을 저해하는 입출력(I/O) 작업을 독립적으로 처리하기 위해 **인터럽트**와 **직접 메모리 접근(DMA)** 기술이 사용됩니다. 이 기술들은 **CPU**가 입출력 완료를 기다리지 않고 다른 연산을 수행할 수 있게 하여 시스템의 전체 처리량을 높입니다. |
| 24 | + |
| 25 | +### 현대적 병렬 처리 |
| 26 | + |
| 27 | +현대 컴퓨터 시스템은 **멀티프로세싱**을 통해 성능의 한계를 극복합니다. 단일 칩에 여러 개의 처리 코어를 집적한 **멀티코어 시스템**과 하나의 코어에서 여러 작업 단위(스레드)를 동시에 처리하는 **CPU 멀티스레드** 기술은 병렬 처리 능력의 핵심입니다. 이러한 발전은 **무어의 법칙**을 계승하면서도, **암달의 법칙**에 따라 시스템 전체의 균형 잡힌 성능 향상이 중요함을 시사합니다. |
| 28 | + |
| 29 | +--- |
| 30 | + |
| 31 | +## 1. 컴퓨터의 기본 구조와 작동 원리 |
| 32 | + |
| 33 | +컴퓨터 시스템은 상호작용하는 하드웨어 구성 요소들의 집합체이며, 그 작동은 **폰 노이만 구조**라는 핵심 원리에 기반합니다. 프로그램이 실행되는 과정은 고급언어에서 기계어로 변환되는 체계적인 단계를 거칩니다. |
| 34 | + |
| 35 | +### 1.1 하드웨어 구성 요소 |
| 36 | + |
| 37 | +컴퓨터 하드웨어는 기능에 따라 **필수 장치**와 **주변 장치**로 구분됩니다. |
| 38 | + |
| 39 | +#### 필수 장치 |
| 40 | + |
| 41 | +- **중앙처리장치(CPU)**: 프로그램의 명령어를 해석하고 연산을 실행하는 컴퓨터의 두뇌 |
| 42 | + - 제어장치, 산술논리 연산장치(ALU), 레지스터로 구성 |
| 43 | +- **메인 메모리(주기억장치)**: 작업에 필요한 프로그램과 데이터를 저장하는 핵심 작업 공간 |
| 44 | + - 바이트 단위로 주소가 부여됨 |
| 45 | + |
| 46 | +#### 주변 장치 |
| 47 | + |
| 48 | +- **입력 장치**: 외부 데이터를 컴퓨터로 입력하는 장치 (예: 키보드, 마우스) |
| 49 | +- **출력 장치**: 처리 결과를 사용자가 인지할 수 있는 형태로 출력하는 장치 (예: 모니터, 프린터) |
| 50 | +- **저장 장치(보조저장장치)**: 메모리보다 속도는 느리지만 용량이 크고 저렴하며, 전원이 꺼져도 데이터가 영구적으로 보존됨 |
| 51 | + - **자성 이용**: 하드디스크, 플로피디스크 |
| 52 | + - **레이저 이용**: CD, DVD, Blu-ray |
| 53 | + - **메모리 이용**: USB 드라이버, SD 카드, SSD |
| 54 | + |
| 55 | +#### 메인보드 |
| 56 | + |
| 57 | +**CPU**, 메모리 등 모든 부품을 연결하는 기반이 되는 회로 기판으로, 각 장치들은 **버스(bus)**라는 데이터 통로를 통해 연결됩니다. |
| 58 | + |
| 59 | +### 1.2 폰 노이만 구조 (Von Neumann Architecture) |
| 60 | + |
| 61 | +현대 컴퓨터 시스템의 기본 모델로, **CPU**, 메모리, 입출력장치, 저장장치가 **버스**로 연결된 구조를 말합니다. 이 구조의 가장 큰 특징은 **프로그램 내장 방식**으로, 모든 프로그램은 실행되기 위해 반드시 보조저장장치에서 **메인 메모리**로 옮겨져야(적재되어야) 한다는 점입니다. 이로 인해 **메인 메모리**는 시스템의 유일한 작업 공간이 되며, 메모리 공간의 크기와 관리 방식이 시스템 성능에 직접적인 영향을 미칩니다. |
| 62 | + |
| 63 | +#### "요리사 모형" 비유 |
| 64 | + |
| 65 | +- **요리사**: `CPU` |
| 66 | +- **도마**: `메인 메모리` |
| 67 | +- **보관 창고**: `보조저장장치` |
| 68 | + |
| 69 | +요리사가 요리를 하려면 재료를 보관 창고에서 도마 위로 가져와야 하듯이, **CPU**가 프로그램을 실행하려면 데이터를 저장장치에서 메모리로 가져와야 합니다. 도마가 작으면 재료를 한 번에 다 올릴 수 없어 작업 효율이 떨어지는 것처럼, **메인 메모리**가 작으면 컴퓨터 속도가 느려집니다. |
| 70 | + |
| 71 | +### 1.3 프로그램 실행 과정 |
| 72 | + |
| 73 | +프로그램은 소스 코드 작성부터 컴퓨터가 이해하는 기계어 코드로 변환되어 실행되기까지 여러 단계를 거칩니다. |
| 74 | + |
| 75 | +| 용어 | 설명 | |
| 76 | +| --------------------------- | ---------------------------------------------------------------------------------------------------- | |
| 77 | +| **고급 언어** | 사람이 이해하기 쉬운 단어와 문법으로 구성된 프로그래밍 언어 (예: C, Java) | |
| 78 | +| **저급 언어** | 기계가 이해하기 쉬운 언어로, 어셈블리어와 기계어가 포함됨 | |
| 79 | +| **컴파일러(Compiler)** | 고급 언어로 작성된 소스 코드 전체를 기계어로 번역하여 실행 파일을 생성하는 프로그램 | |
| 80 | +| **인터프리터(Interpreter)** | 소스 코드를 한 줄씩 번역하여 즉시 실행하는 프로그램. 실행 파일을 생성하지 않음 | |
| 81 | +| **어셈블러(Assembler)** | 어셈블리어를 기계어로 번역하는 프로그램 | |
| 82 | +| **링커(Linker)** | 컴파일된 목적 프로그램(오브젝트 코드)과 라이브러리 파일 등을 연결하여 하나의 실행 가능한 모듈을 생성 | |
| 83 | +| **로더(Loader)** | 실행 가능한 프로그램을 보조저장장치에서 메인 메모리로 적재하여 실행을 준비하는 시스템 소프트웨어 | |
| 84 | + |
| 85 | +> **데이터 구조**: 운영체제에서는 데이터를 효율적으로 관리하기 위해 `큐(FIFO)`, `스택(LIFO)`, `배열`, `연결 리스트` 등의 자료구조를 필수적으로 사용합니다. |
| 86 | +
|
| 87 | +--- |
| 88 | + |
| 89 | +## 2. 중앙처리장치(CPU)와 메모리 |
| 90 | + |
| 91 | +**CPU**는 명령어 처리의 주체이며, 메모리는 그 작업 공간입니다. 두 장치의 긴밀한 상호작용이 컴퓨터의 모든 연산을 가능하게 합니다. |
| 92 | + |
| 93 | +### 2.1 CPU의 내부 구조와 동작 |
| 94 | + |
| 95 | +**CPU**는 세 가지 핵심 요소로 구성되어 협업을 통해 명령어를 처리합니다. |
| 96 | + |
| 97 | +| 구성 요소 | 역할 | 요리사 모형 비유 | |
| 98 | +| --------------------------- | ---------------------------------------------------------------- | ---------------- | |
| 99 | +| **산술논리 연산장치(ALU)** | 덧셈, 뺄셈 등 산술 연산과 AND, OR 등 논리 연산을 수행 | 요리 | |
| 100 | +| **제어 장치(Control Unit)** | CPU 내외부 장치에 작업 지시 신호를 보내고 전체 흐름을 제어 | 작업 지시 | |
| 101 | +| **레지스터(Register)** | 연산에 필요한 데이터를 CPU 내부에 임시로 보관하는 고속 저장 공간 | 재료 임시 보관 | |
| 102 | + |
| 103 | +### 2.2 주요 레지스터의 종류와 역할 |
| 104 | + |
| 105 | +레지스터는 용도에 따라 **범용 레지스터**와 **특수 목적 레지스터**로 나뉩니다. |
| 106 | + |
| 107 | +| 구분 | 레지스터 | 특징 | |
| 108 | +| -------- | ------------------------------ | --------------------------------------------- | |
| 109 | +| **범용** | **데이터 레지스터 (DR)** | 메모리에서 가져온 데이터를 임시로 저장 | |
| 110 | +| | **주소 레지스터 (AR)** | 데이터나 명령어가 저장된 메모리 주소를 저장 | |
| 111 | +| **특수** | **프로그램 카운터 (PC)** | 다음에 실행할 명령어의 메모리 주소를 저장 | |
| 112 | +| | **명령어 레지스터 (IR)** | 현재 실행 중인 명령어를 저장 | |
| 113 | +| | **메모리 주소 레지스터 (MAR)** | CPU가 접근하려는 메모리 주소를 저장 | |
| 114 | +| | **메모리 버퍼 레지스터 (MBR)** | 메모리에서 읽어오거나 쓸 데이터를 임시로 저장 | |
| 115 | + |
| 116 | +### 2.3 메모리 종류와 메모리 보호 |
| 117 | + |
| 118 | +메모리는 전원 유지 여부에 따라 **휘발성 메모리**와 **비휘발성 메모리**로 구분됩니다. |
| 119 | + |
| 120 | +#### 휘발성 메모리 (RAM) |
| 121 | + |
| 122 | +전원이 꺼지면 데이터가 사라집니다. |
| 123 | + |
| 124 | +- **DRAM**: 주기적으로 데이터 재충전이 필요하며, 일반적인 메인 메모리로 사용됨 |
| 125 | +- **SRAM**: 전원이 공급되는 동안 데이터를 유지하며, 속도가 빨라 캐시 메모리에 사용됨 |
| 126 | + |
| 127 | +#### 비휘발성 메모리 (ROM) |
| 128 | + |
| 129 | +전원이 꺼져도 데이터가 유지됩니다. |
| 130 | + |
| 131 | +- **플래시 메모리**: SSD, USB 드라이버 등에 사용됨 |
| 132 | +- **롬(ROM)**: 주로 바이오스(BIOS)와 같이 변경 가능성이 거의 없는 시스템 정보를 저장 |
| 133 | + |
| 134 | +#### 메모리 보호 |
| 135 | + |
| 136 | +시분할 시스템에서는 여러 프로그램이 메모리를 공유하므로, 한 프로세스가 다른 프로세스나 운영체제의 영역을 침범하지 못하도록 보호해야 합니다. 이를 위해 **CPU**는 하드웨어적으로 **경계 레지스터(Bound Register)**와 **한계 레지스터(Limit Register)**를 사용하여 현재 실행 중인 프로세스가 접근할 수 있는 메모리 주소 범위를 제한하고 감시합니다. |
| 137 | + |
| 138 | +--- |
| 139 | + |
| 140 | +## 3. 컴퓨터 성능 향상 기술 |
| 141 | + |
| 142 | +컴퓨터 시스템은 **CPU**, 메모리, 저장장치 등 속도가 다른 장치들 간의 병목 현상을 해결하고 전반적인 처리 효율을 높이기 위해 다양한 기술을 사용합니다. |
| 143 | + |
| 144 | +### 3.1 속도 차이 완화: 버퍼와 캐시 |
| 145 | + |
| 146 | +#### 버퍼(Buffer) |
| 147 | + |
| 148 | +속도가 다른 두 장치 간에 데이터를 일시적으로 저장하여 속도 차이를 완화하는 메모리 공간입니다. |
| 149 | + |
| 150 | +#### 스풀(Spool) |
| 151 | + |
| 152 | +**CPU**와 입출력장치가 독립적으로 동작하도록 하는 소프트웨어적 버퍼입니다. 대표적인 예로 **프린터 스풀러**가 있으며, 인쇄 데이터를 스풀에 저장해두고 **CPU**는 다른 작업을 계속할 수 있게 합니다. |
| 153 | + |
| 154 | +#### 캐시(Cache) |
| 155 | + |
| 156 | +**CPU**와 **메인 메모리** 사이의 속도 차이를 극복하기 위해 사용되는 고속 임시 저장 장소입니다. |
| 157 | + |
| 158 | +**작동 원리**: **CPU**는 메모리 접근 전 캐시를 먼저 확인합니다. 원하는 데이터가 캐시에 있으면 **캐시 히트(Cache Hit)**, 없으면 **캐시 미스(Cache Miss)**가 발생합니다. 캐시 히트 비율(적중률)이 높을수록 성능이 향상됩니다. |
| 159 | + |
| 160 | +**쓰기 정책**: |
| 161 | + |
| 162 | +- **즉시 쓰기(Write-through)**: 캐시 데이터 변경 시 즉시 메모리에 반영하여 데이터 일관성을 유지하지만 속도가 느림 |
| 163 | +- **지연 쓰기(Write-back)**: 변경된 내용을 모아 주기적으로 메모리에 반영하여 속도는 빠르지만, 일시적인 데이터 불일치가 발생할 수 있음 |
| 164 | + |
| 165 | +**계층 구조**: **CPU**와 가까운 순서대로 `L1 캐시`(명령어/데이터 분리)와 `L2 캐시`(일반)로 구성되어 계층적으로 데이터를 관리합니다. |
| 166 | + |
| 167 | +### 3.2 저장장치 계층 구조 (Storage Hierarchy) |
| 168 | + |
| 169 | +속도가 빠르고 비싼 저장장치를 **CPU** 가까이에, 느리고 저렴한 대용량 저장장치를 바깥쪽에 배치하는 구조입니다. 이를 통해 사용자는 합리적인 비용으로 빠른 속도와 큰 저장 공간을 동시에 확보할 수 있습니다. |
| 170 | + |
| 171 | +**계층**: `레지스터` > `캐시` > `메인 메모리` > `보조저장장치` |
| 172 | + |
| 173 | +### 3.3 효율적인 입출력(I/O) 관리 |
| 174 | + |
| 175 | +#### 인터럽트(Interrupt) |
| 176 | + |
| 177 | +입출력장치가 작업을 완료했을 때 **CPU**에 완료 신호를 보내는 방식입니다. **CPU**가 주기적으로 장치 상태를 확인하는 **폴링(Polling)** 방식과 달리, **CPU**는 입출력이 진행되는 동안 다른 작업을 처리할 수 있어 시스템 효율이 크게 향상됩니다. |
| 178 | + |
| 179 | +#### 직접 메모리 접근(DMA, Direct Memory Access) |
| 180 | + |
| 181 | +입출력 관리자(**DMA 컨트롤러**)가 **CPU**의 개입 없이 직접 메모리에 접근하여 데이터를 전송하는 기술입니다. 이를 통해 **CPU**는 입출력 관련 부담에서 벗어나 본연의 연산 작업에 집중할 수 있습니다. |
| 182 | + |
| 183 | +#### 사이클 훔치기(Cycle Stealing) |
| 184 | + |
| 185 | +**CPU**와 **DMA**가 동시에 메모리 접근을 시도할 때, 시스템 버스 제어권이 **DMA**에 양보되는 현상입니다. 이는 **CPU**의 사이클을 잠시 "훔치는" 것과 같지만, 전체 시스템 성능 향상에 기여합니다. |
| 186 | + |
| 187 | +--- |
| 188 | + |
| 189 | +## 4. 멀티프로세싱과 병렬 처리 |
| 190 | + |
| 191 | +단일 프로세서의 성능 향상이 한계에 도달하면서, 여러 개의 처리 장치를 사용하여 작업을 병렬로 수행하는 **멀티프로세싱** 기술이 보편화되었습니다. |
| 192 | + |
| 193 | +### 4.1 멀티프로세서와 멀티코어 |
| 194 | + |
| 195 | +#### 멀티프로세서 시스템 |
| 196 | + |
| 197 | +하나의 컴퓨터에 두 개 이상의 물리적인 **CPU**를 장착하여 성능을 높이는 시스템입니다. 모든 프로세서는 **메인 메모리**를 공유합니다. |
| 198 | + |
| 199 | +#### 멀티코어 시스템 |
| 200 | + |
| 201 | +단일 **CPU** 칩 내에 여러 개의 핵심 처리 장치, 즉 **코어(Core)**를 집적한 구조입니다. 이를 통해 물리적인 공간을 절약하면서 **멀티프로세싱**과 유사한 효과를 얻습니다. (예: 듀얼코어, 쿼드코어) |
| 202 | + |
| 203 | +### 4.2 CPU 멀티스레드와 명령어 병렬 처리 |
| 204 | + |
| 205 | +#### 명령어 병렬 처리 |
| 206 | + |
| 207 | +하나의 코어 내에서 여러 개의 명령어를 동시에 처리하는 기술입니다. |
| 208 | + |
| 209 | +#### CPU 멀티스레드 |
| 210 | + |
| 211 | +하나의 코어가 여러 개의 **스레드(Thread)**, 즉 작업의 논리적 단위를 동시에 처리하여 코어의 활용률을 극대화하는 기술입니다. 현대의 **CPU**는 **멀티코어**와 **멀티스레드** 기술을 결합하여 높은 병렬 처리 성능을 제공합니다. |
| 212 | + |
| 213 | +### 4.3 성능 관련 법칙 |
| 214 | + |
| 215 | +#### 무어의 법칙(Moore's Law) |
| 216 | + |
| 217 | +반도체 집적회로의 성능이 24개월마다 2배로 증가한다는 법칙입니다. 최근에는 클럭 속도 향상 대신 코어 수를 늘리는 방식으로 이 법칙을 이어가고 있습니다. |
| 218 | + |
| 219 | +#### 암달의 법칙(Amdahl's Law) |
| 220 | + |
| 221 | +시스템의 일부만 개선될 때 전체 시스템의 성능 향상은 그 개선된 부분의 비율에 의해 제한된다는 법칙입니다. 즉, **CPU** 속도를 아무리 높여도 메모리나 저장장치 등 다른 부분의 속도가 따라오지 못하면 전체 성능 향상에는 한계가 있습니다. 이는 시스템의 균형 잡힌 발전이 중요함을 시사합니다. |
0 commit comments