CPU (Central Processing Unit)
중앙 처리 장치(CPU)는 컴퓨터의 두뇌라고 할 수 있습니다. CPU는 메모리에서 명령어를 검색하고 실행합니다. 일반적으로 CPU는 제어 유닛과 산술/논리 유닛이라는 두 가지 구성 요소로 이루어져 있습니다. 제어 유닛은 다른 구성 요소의 동작을 제어하고 조정하며, 산술/논리 유닛은 숫자 연산(덧셈, 뺄셈, 곱셈, 나눗셈)과 논리 연산(비교)을 수행합니다.
CPU는 수백만 개의 작은 전기 스위치인 트랜지스터가 포함된 작은 실리콘 반도체 칩에 구축되어 있습니다. 이 트랜지스터들은 정보를 처리하는 데 사용됩니다. 내부 클럭을 통해 일정한 속도로 전자 펄스를 발생시킵니다. 이 펄스들은 작업의 속도를 제어하고 동기화하는 데 사용됩니다.
CPU의 펄스는 클럭펄스(Clock Pulse)라고도불리며, 컴퓨터 시스템 내의 모든 동작을 동기화하는 역할을 합니다. 클럭 펄스는 수정 발진자(Crystal Oscillator)의 규칙적인 진동에 의해 발생하는 일정한 간격을 갖는 전자적인 펄스입니다.
컴퓨터의 시스템 클럭(CPU 클럭)은 이 펄스를 타이밍 펄스 또는 디지털 신호로 사용합니다. 클럭 펄스의 발생 주기(Cycle)를 클럭 속도 또는 클럭 주파수라고 합니다. 클럭 펄스는 컴퓨터에서 매우 중요한 역할을 합니다. 이는 CPU가 명령어를 얼마나 빨리 처리할 수 있는지를 결정하는 주요 요소 중 하나입니다. 클럭 속도가 높을수록 CPU는 주어진 시간 동안 더 많은 명령어를 실행할 수 있습니다.
더 높은 클럭 속도는 주어진 시간 동안 더 많은 명령어를 실행할 수 있게 합니다. 클럭 속도의 측정 단위는 헤르츠(Hz)로, 1헤르츠는 1초에 1펄스를 의미합니다. 예전에는 컴퓨터의 클럭 속도를 메가헤르츠(MHz)로 측정했지만, CPU 속도는 계속해서 향상되고 있으며, 현재 컴퓨터의 클럭 속도는 일반적으로 기가헤르츠(GHz)로 표시합니다.
CPU는 원래 하나의 코어만으로 개발되었습니다. 코어는 프로세서의 일부로, 명령어를 읽고 실행하는 작업을 수행합니다. CPU 처리 능력을 높이기 위해, 칩 제조사들은 현재 여러 개의 코어를 포함하는 CPU를 생산하고 있습니다. 멀티코어 CPU는 두 개 이상의 독립적인 코어를 가진 단일 구성 요소입니다.
비트와 바이트
컴퓨터에서의 최소 저장 단위는 바이트(Byte)입니다. 바이트는 8비트로 구성되며 4와 같은 작은 숫자는 단일 바이트로 저장될 수 있습니다. 단일 바이트에 들어갈 수 없는 숫자를 저장하기 위해 컴퓨터는 여러 바이트를 사용합니다. 숫자와 문자 등 다양한 종류의 데이터는 일련의 바이트로 인코딩됩니다. 프로그래밍을 할 때 데이터의 인코딩과 디코딩은 컴퓨터 시스템이 인코딩 체계에 따라 자동으로 수행합니다. 인코딩 체계는 컴퓨터가 문자, 숫자, 기호를 실제로 작업할 수 있는 데이터로 변환하는 방법을 지배하는 규칙의 집합입니다. 대부분의 체계는 각 문자를 미리 정해진 비트 문자열로 변환합니다.
컴퓨터에서 데이터와 프로그램등의 정보가 어떻게 저장되는지 살펴봅시다. 컴퓨터는 너무 똑똑(?)해서 0과 1의 값만으로도 모든 연산을 수행합니다. 0과 1은 우리가 흔히 생각하는 스위치라고도 생각할 수 있습니다. 컴퓨터에서 정보를 저장하는 것은 각 스위치의 상태로 보면 스위치가 켜지면 1, 꺼지면 0으로 이 0과 1은 이진 숫자 체계에서 숫자로 해석되며, 비트(binary digits)라고 불립니다.
우리가 흔히 사용하는 ACII 코드의 문자 ‘A’는 한 바이트로 2진 01000001로 표현됩니다. 이러한 방식을 통해 컴퓨터는 문자, 숫자, 기호 등을 이진 데이터로 변환하여 처리합니다.
또한 컴퓨터 저장 용량은 다음과 같이 바이트와 바이트의 배수로 측정됩니다.
1Byte (바이트) : 컴퓨팅 및 디지털 통신에서의 기본 정보 단위입니다.
1KB (킬로바이트) : 1024 바이트와 같습니다.
1MB (메가바이트) : 1024 킬로바이트 또는 1,048,576바이트와 같습니다.
1GB (기가바이트) : 1024 메가바이트, 1,048,576킬로바이트, 또는 1,073,741,824바이트와 같습니다.
1TB (테라바이트) : 1024 기가바이트, 1,048,576메가바이트, 1,073,741,824킬로바이트, 또는 1,099,511,627,776바이트와 같습니다.
1PB (페타바이트) : 1024 테라바이트, 1,048,576기가바이트, 1,073,741,824메가바이트, 1,099,511,627,776킬로바이트, 또는 1,125,899,906,842,624바이트와 같습니다.
이런 식으로 계속되며, 각 단위는 이전 단위의 1024배입니다. 이는 디지털 시스템에서 데이터 저장의 이진 특성 때문입니다. 그러나 어떤 상황에서는 이들 단위가 10진수를 사용하여 정의되므로 메가바이트는 1000 킬로바이트, 기가바이트는 1000 메가바이트 등이 됩니다. 이는 하드 드라이브 저장 공간 및 데이터 전송 속도와 같은 분야에서 더 일반적입니다. 그러나 대부분의 컴퓨팅 상황에서는 1 킬로바이트가 1024 바이트인 2진수 정의가 사용됩니다.
이것들은 디지털 저장 용량의 표준 측정 단위이지만, 실제 저장 공간은 특정 시스템 또는 장치 구성에 따라 다를 수 있습니다. 예를 들어, 일부 공간은 시스템 파일 및 복구 파티션을 위해 예약될 수 있습니다.
일반적인 한 페이지 워드 문서는 대략 20 KB의 저장 공간을 차지할 수 있습니다. 이는 문서의 내용, 즉 포함된 이미지나 기타 미디어의 수에 따라 다를 수 있습니다.
1 MB(1024 KB)는 약 50 페이지의 워드 문서를 저장할 수 있습니다.
(1024KB÷20KB=51.2 : 가장 가까운 정수로 내림, 이미지/미디어 등은 +용량)
1 GB(1024 MB)는 약 50,000 페이지의 워드 문서를 저장할 수 있습니다.
(1024MB×50Pages=51,200 : 가장 가까운 정수로 내림, 이미지/미디어 등은 +용량)
일반적인 두 시간 고해상도 영화는 대략 8 GB의 저장 공간을 차지할 수 있습니다. 이는 영화의 해상도, 비트레이트, 인코딩에 따라 다를 수 있습니다.
20편의 영화를 저장하려면 160 GB가 필요합니다.
(20편×8GB=160)
대략적인 추정치며 Meta 데이터나 실제 유휴 저장 용량 등 많은 요인에 따라 달라질수 있지만 대부분 이런식으로 용량을 산출할 수 있습니다.
진수변환
아래는 각 ASCII, 10진수, 16진수, 8진수, 2진수 값 사이의 변환표를 한눈에 볼수 있습니다.
ASCII 코드에서 대문자 ‘A’ 10진수 65, 소문자 ‘a’ 10진수 97정도는 외워주는게 좋습니다. 간혹 프로그래밍 관련 시험에 출제되므로 꼭 알아두도록 합니다.
ASCII | 10진수 | 16진수 | 8진수 | 2진 |
---|---|---|---|---|
널(null) | 0 | 0 | 0 | 0 |
헤더 시작 | 1 | 1 | 1 | 1 |
텍스트 시작 | 2 | 2 | 2 | 10 |
텍스트 끝 | 3 | 3 | 3 | 11 |
전송 종료 | 4 | 4 | 4 | 100 |
조회 | 5 | 5 | 5 | 101 |
응답 | 6 | 6 | 6 | 110 |
벨 | 7 | 7 | 7 | 111 |
백스페이스 | 8 | 8 | 10 | 1000 |
가로 탭 | 9 | 9 | 11 | 1001 |
줄 바꾸기 | 10 | A | 12 | 1010 |
수직 탭 | 11 | B | 13 | 1011 |
용지 넘김 | 12 | C | 14 | 1100 |
캐리지 리턴(CR) | 13 | D | 15 | 1101 |
시프트 아웃 | 14 | E | 16 | 1110 |
시프트 인 | 15 | F | 17 | 1111 |
데이터 링크 이스케이프 | 16 | 10 | 20 | 10000 |
장치 제어 1/Xon | 17 | 11 | 21 | 10001 |
장치 제어 2 | 18 | 12 | 22 | 10010 |
장치 제어 3/Xoff | 19 | 13 | 23 | 10011 |
장치 제어 4 | 20 | 14 | 24 | 10100 |
부정 응답 | 21 | 15 | 25 | 10101 |
동기식 유휴 | 22 | 16 | 26 | 10110 |
전송 블록의 끝 | 23 | 17 | 27 | 10111 |
취소 | 24 | 18 | 30 | 11000 |
미디어 끝 | 25 | 19 | 31 | 11001 |
파일의 끝(EOF)/대체 | 26 | 1A | 32 | 11010 |
이스케이프 | 27 | 1B | 33 | 11011 |
파일 구분자 | 28 | 1C | 34 | 11100 |
그룹 구분자 | 29 | 1D | 35 | 11101 |
레코드 구분자 | 30 | 1E | 36 | 11110 |
단위 구분자 | 31 | 1F | 37 | 11111 |
공백 | 32 | 20 | 40 | 100000 |
! | 33 | 21 | 41 | 100001 |
“ | 34 | 22 | 42 | 100010 |
# | 35 | 23 | 43 | 100011 |
$ | 36 | 24 | 44 | 100100 |
% | 37 | 25 | 45 | 100101 |
& | 38 | 26 | 46 | 100110 |
‘ | 39 | 27 | 47 | 100111 |
( | 40 | 28 | 50 | 101000 |
) | 41 | 29 | 51 | 101001 |
* | 42 | 2A | 52 | 101010 |
+ | 43 | 2B | 53 | 101011 |
, | 44 | 2C | 54 | 101100 |
– | 45 | 2D | 55 | 101101 |
. | 46 | 2E | 56 | 101110 |
/ | 47 | 2F | 57 | 101111 |
0 | 48 | 30 | 60 | 110000 |
1 | 49 | 31 | 61 | 110001 |
2 | 50 | 32 | 62 | 110010 |
3 | 51 | 33 | 63 | 110011 |
4 | 52 | 34 | 64 | 110100 |
5 | 53 | 35 | 65 | 110101 |
6 | 54 | 36 | 66 | 110110 |
7 | 55 | 37 | 67 | 110111 |
8 | 56 | 38 | 70 | 111000 |
9 | 57 | 39 | 71 | 111001 |
: | 58 | 3A | 72 | 111010 |
; | 59 | 3B | 73 | 111011 |
< | 60 | 3C | 74 | 111100 |
= | 61 | 3D | 75 | 111101 |
> | 62 | 3E | 76 | 111110 |
? | 63 | 3F | 77 | 111111 |
@ | 64 | 40 | 100 | 1000000 |
A | 65 | 41 | 101 | 1000001 |
B | 66 | 42 | 102 | 1000010 |
C | 67 | 43 | 103 | 1000011 |
D | 68 | 44 | 104 | 1000100 |
E | 69 | 45 | 105 | 1000101 |
F | 70 | 46 | 106 | 1000110 |
G | 71 | 47 | 107 | 1000111 |
H | 72 | 48 | 110 | 1001000 |
I | 73 | 49 | 111 | 1001001 |
J | 74 | 4A | 112 | 1001010 |
K | 75 | 4B | 113 | 1001011 |
L | 76 | 4C | 114 | 1001100 |
M | 77 | 4D | 115 | 1001101 |
N | 78 | 4E | 116 | 1001110 |
O | 79 | 4F | 117 | 1001111 |
P | 80 | 50 | 120 | 1010000 |
Q | 81 | 51 | 121 | 1010001 |
R | 82 | 52 | 122 | 1010010 |
S | 83 | 53 | 123 | 1010011 |
T | 84 | 54 | 124 | 1010100 |
U | 85 | 55 | 125 | 1010101 |
V | 86 | 56 | 126 | 1010110 |
W | 87 | 57 | 127 | 1010111 |
X | 88 | 58 | 130 | 1011000 |
Y | 89 | 59 | 131 | 1011001 |
Z | 90 | 5A | 132 | 1011010 |
[ | 91 | 5B | 133 | 1011011 |
\ | 92 | 5C | 134 | 1011100 |
] | 93 | 5D | 135 | 1011101 |
^ | 94 | 5E | 136 | 1011110 |
_ | 95 | 5F | 137 | 1011111 |
` | 96 | 60 | 140 | 1100000 |
a | 97 | 61 | 141 | 1100001 |
b | 98 | 62 | 142 | 1100010 |
c | 99 | 63 | 143 | 1100011 |
d | 100 | 64 | 144 | 1100100 |
e | 101 | 65 | 145 | 1100101 |
f | 102 | 66 | 146 | 1100110 |
g | 103 | 67 | 147 | 1100111 |
h | 104 | 68 | 150 | 1101000 |
i | 105 | 69 | 151 | 1101001 |
j | 106 | 6A | 152 | 1101010 |
k | 107 | 6B | 153 | 1101011 |
l | 108 | 6C | 154 | 1101100 |
m | 109 | 6D | 155 | 1101101 |
n | 110 | 6E | 156 | 1101110 |
o | 111 | 6F | 157 | 1101111 |
p | 112 | 70 | 160 | 1110000 |
q | 113 | 71 | 161 | 1110001 |
r | 114 | 72 | 162 | 1110010 |
s | 115 | 73 | 163 | 1110011 |
t | 116 | 74 | 164 | 1110100 |
u | 117 | 75 | 165 | 1110101 |
v | 118 | 76 | 166 | 1110110 |
w | 119 | 77 | 167 | 1110111 |
x | 120 | 78 | 170 | 1111000 |
y | 121 | 79 | 171 | 1111001 |
z | 122 | 7A | 172 | 1111010 |
{ | 123 | 7B | 173 | 1111011 |
| | 124 | 7C | 174 | 1111100 |
} | 125 | 7D | 175 | 1111101 |
~ | 126 | 7E | 176 | 1111110 |
DEL | 127 | 7F | 177 | 1111111 |
128 | 80 | 200 | 10000000 | |
129 | 81 | 201 | 10000001 | |
130 | 82 | 202 | 10000010 | |
131 | 83 | 203 | 10000011 | |
132 | 84 | 204 | 10000100 | |
133 | 85 | 205 | 10000101 | |
134 | 86 | 206 | 10000110 | |
135 | 87 | 207 | 10000111 | |
136 | 88 | 210 | 10001000 | |
137 | 89 | 211 | 10001001 | |
138 | 8A | 212 | 10001010 | |
139 | 8B | 213 | 10001011 | |
140 | 8C | 214 | 10001100 | |
141 | 8D | 215 | 10001101 | |
142 | 8E | 216 | 10001110 | |
143 | 8F | 217 | 10001111 | |
144 | 90 | 220 | 10010000 | |
145 | 91 | 221 | 10010001 | |
146 | 92 | 222 | 10010010 | |
147 | 93 | 223 | 10010011 | |
148 | 94 | 224 | 10010100 | |
149 | 95 | 225 | 10010101 | |
150 | 96 | 226 | 10010110 | |
151 | 97 | 227 | 10010111 | |
152 | 98 | 230 | 10011000 | |
153 | 99 | 231 | 10011001 | |
154 | 9A | 232 | 10011010 | |
155 | 9B | 233 | 10011011 | |
156 | 9C | 234 | 10011100 | |
157 | 9D | 235 | 10011101 | |
158 | 9E | 236 | 10011110 | |
159 | 9F | 237 | 10011111 | |
160 | A0 | 240 | 10100000 | |
161 | A1 | 241 | 10100001 | |
162 | A2 | 242 | 10100010 | |
163 | A3 | 243 | 10100011 | |
164 | A4 | 244 | 10100100 | |
165 | A5 | 245 | 10100101 | |
166 | A6 | 246 | 10100110 | |
167 | A7 | 247 | 10100111 | |
168 | A8 | 250 | 10101000 | |
169 | A9 | 251 | 10101001 | |
170 | AA | 252 | 10101010 | |
171 | AB | 253 | 10101011 | |
172 | AC | 254 | 10101100 | |
173 | AD | 255 | 10101101 | |
174 | AE | 256 | 10101110 | |
175 | AF | 257 | 10101111 | |
176 | B0 | 260 | 10110000 | |
177 | B1 | 261 | 10110001 | |
178 | B2 | 262 | 10110010 | |
179 | B3 | 263 | 10110011 | |
180 | B4 | 264 | 10110100 | |
181 | B5 | 265 | 10110101 | |
182 | B6 | 266 | 10110110 | |
183 | B7 | 267 | 10110111 | |
184 | B8 | 270 | 10111000 | |
185 | B9 | 271 | 10111001 | |
186 | BA | 272 | 10111010 | |
187 | BB | 273 | 10111011 | |
188 | BC | 274 | 10111100 | |
189 | BD | 275 | 10111101 | |
190 | BE | 276 | 10111110 | |
191 | BF | 277 | 10111111 | |
192 | C0 | 300 | 11000000 | |
193 | C1 | 301 | 11000001 | |
194 | C2 | 302 | 11000010 | |
195 | C3 | 303 | 11000011 | |
196 | C4 | 304 | 11000100 | |
197 | C5 | 305 | 11000101 | |
198 | C6 | 306 | 11000110 | |
199 | C7 | 307 | 11000111 | |
200 | C8 | 310 | 11001000 | |
201 | C9 | 311 | 11001001 | |
202 | CA | 312 | 11001010 | |
203 | CB | 313 | 11001011 | |
204 | CC | 314 | 11001100 | |
205 | CD | 315 | 11001101 | |
206 | CE | 316 | 11001110 | |
207 | CF | 317 | 11001111 | |
208 | D0 | 320 | 11010000 | |
209 | D1 | 321 | 11010001 | |
210 | D2 | 322 | 11010010 | |
211 | D3 | 323 | 11010011 | |
212 | D4 | 324 | 11010100 | |
213 | D5 | 325 | 11010101 | |
214 | D6 | 326 | 11010110 | |
215 | D7 | 327 | 11010111 | |
216 | D8 | 330 | 11011000 | |
217 | D9 | 331 | 11011001 | |
218 | DA | 332 | 11011010 | |
219 | DB | 333 | 11011011 | |
220 | DC | 334 | 11011100 | |
221 | DD | 335 | 11011101 | |
222 | DE | 336 | 11011110 | |
223 | DF | 337 | 11011111 | |
224 | E0 | 340 | 11100000 | |
225 | E1 | 341 | 11100001 | |
226 | E2 | 342 | 11100010 | |
227 | E3 | 343 | 11100011 | |
228 | E4 | 344 | 11100100 | |
229 | E5 | 345 | 11100101 | |
230 | E6 | 346 | 11100110 | |
231 | E7 | 347 | 11100111 | |
232 | E8 | 350 | 11101000 | |
233 | E9 | 351 | 11101001 | |
234 | EA | 352 | 11101010 | |
235 | EB | 353 | 11101011 | |
236 | EC | 354 | 11101100 | |
237 | ED | 355 | 11101101 | |
238 | EE | 356 | 11101110 | |
239 | EF | 357 | 11101111 | |
240 | F0 | 360 | 11110000 | |
241 | F1 | 361 | 11110001 | |
242 | F2 | 362 | 11110010 | |
243 | F3 | 363 | 11110011 | |
244 | F4 | 364 | 11110100 | |
245 | F5 | 365 | 11110101 | |
246 | F6 | 366 | 11110110 | |
247 | F7 | 367 | 11110111 | |
248 | F8 | 370 | 11111000 | |
249 | F9 | 371 | 11111001 | |
250 | FA | 372 | 11111010 | |
251 | FB | 373 | 11111011 | |
252 | FC | 374 | 11111100 | |
253 | FD | 375 | 11111101 | |
254 | FE | 376 | 11111110 | |
255 | FF | 377 | 11111111 |
MEMORY
프로그램과 데이터는 CPU에서 실행되기 전에 메모리로 임시로 이동하여 저장합니다. 프로그램과 실행과 프로그램이 작업 중인 데이터를 임시 저장하기 위한 바이트의 순차적인 시퀀스로 구성되어 프로그램을 빠르게 실행하는 컴퓨터의 작업 영역으로 볼 수 있습니다.
메모리의 모든 바이트는 고유한 주소를 가지며, 이 주소는 데이터를 저장하고 검색하기 위해 바이트를 찾는 데 사용됩니다. 메모리의 바이트는 어떤 순서로든 접근할 수 있으므로, 메모리는 RAM(Random Access Memory)라고도 불립니다. 이 랜덤한 공간에 각 작업진행 사항 및 작업들을 기억하고 있어 빠르게 전환도 가능합니다.
특히 요새는 인터넷을 보며 음악을 듣고 게임을 하는가 하면 또, 게임을 즐기며 영화도 보는 사람들도있습니다. 동시에 여러 일들을 수행하거나 복잡하거나 무거운 프로그램을 띄울 때 메모리를 많이 사용하므로 최소 16GB 이상, 평균 32GB 많게는 64GB~128GB를 사용하는 유저들이 늘어나고 있다.
메모리는 고유하게 주소 지정된 메모리 위치에 데이터와 프로그램 명령어를 저장합니다. 컴퓨터 운영체제는 프로그램 실행을 위한 다양한 메모리 공간을 할당해주는데 이 때 할당되는 메모리 공간에는 스택, 힙, 데이터 영역으로 나누어진다.
방향 | 위치 | 영역 | 비고 |
High memory | RAM | 스택 (STACK) 영역 – 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역으로 함수 호출이 완료되면 소멸 – 스택 영역에 저장되는 함수의 호출 정보를 스택 프레임(stack frame)이라고 함 – 스택 영역은 푸시(push) 동작으로 데이터를 저장하고, 팝(pop) 동작으로 데이터를 인출 (이러한 스택은 후입선출(LIFO, Last-In First-Out) 방식에 따라 동작) – 가장 늦게 저장된 데이터가 가장 먼저 인출되며 한 영역이 커지면 다른 한 쪽은 작아짐 (한 쪽의 저장 공간이 부족하면 상대의 영역을 침범하게 되며 이를 스택 오버플로우, 힙 오버플로우라고 함) – 해당 객체가 정의된 블록(스코프)을 벗어날 때 소멸 – 함수의 호출하는 위치도 저장 | void ict1(int); void ict2(int); int a= 100; int b = 200; int main(){ int i = 1000; ict1(i); ict2(i); return 0;} void ict1(int c){ int d = 300;} void ict2(int e){ int f = 400;} |
RAM | 힙 (HEAP) 영역 – 프로그램이 실행되는 동안 동적으로 할당하는 데이터가 저장되는 영역. 사용자가 직접 관리하는 영역으로 C언어에서 malloc, free를 하면 이 영역에 저장 – 가비지 컬렉터가 없으면 프로그래머가 직접 관리(할당/해제)해줘야 함 – 메모리의 낮은 주소에서 높은 주소의 방향으로 할당됨. – 동적 메모리 할당 ( new /포인터) – delete를 사용하여 해당 객체 메모리 반환 – 스택보다 느림 | 사용자의 동적 할당 | |
RAM | BSS(Block Started by Symbol) 영역에 초기화되지 않은 전역 데이터를 저장하는 영역 | 초기화 되지 않은 변수 | |
RAM | 데이터 (DATA) 영역 – 초기화된 데이터는 ROM 위치의 데이터 영역에 저장되는데 ROM(Read Only Memory)은 읽기 전용이라 수정이 불가능하여 계속 초기 값만을 가지고 있어 데이터 영역을 RAM에 복사 하여 프로그램이 실행될 경우 변경되는 값을 저장할 수 있도록 하기 위해 RAM에도 데이터 영역이 존재 | 초기화된 전역 변수 int a= 10; int b = 20; int main() { … } | |
ROM | 데이터 (DATA) 영역 (정적 메모리) – 프로그램의 전역(global) 변수와 정적(static) 변수가 저장되는 영역. 데이터 영역은 프로그램의 시작과 함께 main 함수가 호출되기 전 할당되며, 프로그램이 종료되면 소멸됨. | ||
Low memory | ROM | 코드 (CODE) 영역 – 사용자가 작성한 프로그램의 코드가 저장되는 영역. 텍스트(code) 영역이라고도 칭함. CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리함. 컴파일된후 기계어 형태로 저장되어 있음. | 실행할 코드 (기계어 형태) |
데이터 영역
데이터 (DATA) 영역 | a = 100, b = 200 | |
힙 (HEAP) 영역 | ||
스택 (STACK) 영역 |
스택 영역
데이터 (DATA) 영역 | a = 100, b = 200 | |
힙 (HEAP) 영역 | c = 1000, d = 300 | ict1 |
스택 (STACK) 영역 | i = 1000 | main |