Previous chapter
Early Systems
0๋ถํฐ ๋งฅ์ค๊น์ง ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ค๊ณ ๊ฐ์ ํ์.
๋ฎ์๋ฒ์ง์๋ OS๋ฅผ ์ฌ๋ฆฌ๊ณ ๊ทธ ์ดํ์๋ ์์ฉ ํ๋ก์ธ์ค๊ฐ ์คํํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ผ๋ก ํ ๋นํ ์ ์์ ๊ฒ์ด๋ค.
โข
์ด ๊ฒฝ์ฐ์๋ ์ ์ฒด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋์ ํ๋ก์ธ์ค๋ฅผ ์คํ์ํค๊ธฐ ์ํด์๋ง ์ฌ์ฉํ๊ฒ ๋ค๋ ์๋ฏธ์ผ ๊ฒ์ด๋ค.
โข
๋ฉํฐ ํ๋ก์ธ์ค๋ฅผ ๋๋ฆฌ๋ ํ๊ฒฝ๊ณผ๋ ์ ๋ง์ง ์๋ ๊ฒ์ด๋ค.
์ด์ ๊ฐ์ด ํ๋์ ํ๋ก์ธ์ค๋ฅผ ๋ค ๋๋ฆฐ ์ดํ ๋ค์ ํ๋ก์ธ์ค๋ฅผ ๋๋ฆฌ๋ ๋ฐฉ์์ batched job์ด๋ผ๊ณ ํ๋ค.
Multiprogramming and Time Sharing
์๊ฐ์ด ํ๋ฅด๋ฉฐ IO๊ธฐ๋ฐ์ ์ธํฐ๋ํฐ๋ธ ์ํํธ์จ์ด๊ฐ ๋ฑ์ฅํ๋ฉด์ Early System์ ๊ตฌ์กฐ๋ก์จ๋ CPU์ ํ์ฉ๋๊ฐ ๋ฎ์์ง๋ ๋ฌธ์ ์ ์ด ์๊ธฐ๊ฒ ๋๋ค.
๋ํ ์ฑ๋ฅ ์งํ๋ค์ ๊ด์ ์ผ๋ก ๋ดค์ ๋๋ ๋ค์ํ ์ํํธ์จ์ด๋ค์ ์ํด ์ข์ ์ฑ๋ฅ์ ์ ๊ณตํด์ฃผ์ง ๋ชปํ๋ค.
Multiprogramming
์ฌ๋ฌ ํ๋ก์ธ์ค๋ค์ด ๋์์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด ์คํ๋๋ ํ๊ฒฝ์ ์ด์ผ๊ธฐ ํ๋ค.
์ฌ๋ฌ ํ๋ก์ธ์ค๋ค์ด ๋์์ ๋๊ณ ์๊ธฐ ๋๋ฌธ์ ํ์ ๋ ์์์ ๋ถ๋ฐฐํด์ฃผ๊ธฐ ์ํ Time Sharing ๊ธฐ๋ฒ์ด ํ์ํ๊ฒ ๋์๋ค. (Round Robin ,CFS ๋ฑ๋ฑ)
โข
๊ฐ ํ๋ก์ธ์ค๋ณ๋ก ๊ณ ์ ๋ ํฌ๊ธฐ์ ์ฌ๋กฏ์ ๊ฐ์ง๋ ๊ตฌ์กฐ.
โข
Context Switch๊ฐ ์ผ์ด๋ ๋ ์๋ ์คํํ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ๋ค์ ์คํํ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ต์ฒดํ๊ธฐ ์ํ Fast Accessible Memory ๊ณต๊ฐ์ ํ๋ณดํ ์ ์๋ค.
โฆ
Early Systems๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ ์ ์์ผ๋ฏ๋ก Disk์ ๋ฉ๋ชจ๋ฆฌ ๋ด์ฉ์ ์ ์ฅํด์ผ ํ๋ฏ๋ก, Context Switch ์ค๋ฒํค๋๊ฐ ์ปค์ง ์ ๋ฐ์ ์๋ค.
โข
๋ค๋ง ๋ค์๊ณผ ๊ฐ์ ์ฌ๋กฏ์ ๋ ์์ฆ์ ์ฌ์ฉํ์ง ์๋ ์ถ์ธ
โฆ
๊ฐ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ ์ ์๋ ๋ฌผ๋ฆฌ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๊ฒ ํ์ ๋์ด ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฑ๋ฅ์ ์ต๋ํ ๋ด๊ธฐ ํ๋ค๋ค.
โฆ
Protection Issue : ์๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์ํ ๋ด์ฉ์ด ๋ฌผ๋ฆฌ๋ฉ๋ชจ๋ฆฌ์ ๊ณต์กดํ๋๋ฐ, ํ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋ด์ฉ์ ์ ๊ทผํ์ง ๋ชปํด์ผํ๋ค.
Address Spaces
์์ฉํ๋ก๊ทธ๋จ์ ์ด๋ ๊ณณ์ ํ ๋น๋์ ์คํ๋ ์ง ๋ชจ๋ฅด๋๋ผ๋ ํญ์ ์ผ์ ์๋งํผ ์ฃผ์๊ฐ ํ ๋น๋จ์ด ๋ณด์ฅ๋๊ณ , ๊ทธ ์์ ํ๋ก๊ทธ๋จ ์ฝ๋์ ํ, ์คํ์ด
๋ ๊ฐ์ง Abstraction์ ์ ๊ณต
โข
์ด๋ ์ฌ๋กฏ์ ์๋ 0~64kb๊น์ง ์ ๊ทผํ ์ ์๋ Transparency
โข
๊ทธ ์ธ์ ๊ณต๊ฐ์ ์ ๊ทผํ ์ ์๋ Protection
Virtual Memory
์ฐ๋ฆฌ ์ด์์ฒด์ ์ Address Space์ ํน์ง
โข
์๋นํ ํฐ ์ด๋๋ ์ค ์คํ์ด์ค๊ฐ ์๋ค๊ณ ๊ฐ์ (32bit : 2^32๋ฐ์ดํธ VA space, 64bit : 2^64๋ฐ์ดํธ VA space)ํ๊ณ ๊ฐ ํ๋ก์ธ์ค์ ๊ทธ๋งํผ ํ ๋น๋์ด์์.
Transparency
โข
VA๋ ๊ฐ๊ฐ์ ๊ฐ์ธ ๊ณต๊ฐ์ ๊ฐ์ง๋ฉฐ ๊ทธ ๊ณต๊ฐ์ ๋
์ ํด์ ์ฌ์ฉํ ์ ์์์ ๋ณด์ฅํจ.
Efficiency
โข
Time : ํ๋ก๊ทธ๋จ์ด ๋๋ ค์ง์ง ์์์ผ ํจ. ์ค๋ฒํค๋๊ฐ ๋๋ฌด ํฌ์ง ์์์ผ ํจ.
โข
Space : ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ํ๋ฅผ ์ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ๋ ๋ถ๋ถ์ด ๋๋ฌด ์ปค์ง์ง ์์์ผ ํจ.
Protection
โข
ํ๋ก์ธ์ค๊ฐ์ ๋
๋ฆฝ
Virtual Address
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
printf("location of code : %p\n", (void *) main); //ํด๋น ํจ์๊ฐ ๊ตฌํ๋์ด์๋ ์์์ฃผ์
printf("location of heap : %p\n", (void *) malloc(1));//mallocํจ์๋ฅผ ๋ถ๋ฅผ๋ return๋๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ํ ์ฃผ์
int x = 3;
printf("location of stack : %p\n", (void *) &x);//local variable์ด stack์ ํ ๋น. -> ๋ชจ๋ local var์ด stack์ ํ ๋น๋์ง๋ ์์ผ๋ ์ฃผ์๊ฐ ๋ฐ๋์ ํ์ํ ๊ฒฝ์ฐ stack์ ์ ์ฅ๋จ.
return x;
}
Assembly
๋ณต์ฌ
result
location of code : 0x1095afe50
location of heap : 0x1096008c0
location of stack : 0x7fff691aea64
Assembly
๋ณต์ฌ
Type of Memory
Stack
โข
ํจ์๊ฐ ํธ์ถ๋๊ฑฐ๋ local var์ ํ ๋นํด์ผํ ๋ ์ปดํ์ผ๋ฌ๊ฐ ์กฐ์ํ๋๋ก ๋์ด์์.
โข
ํจ์๋ฅผ ํธ์ถํ๊ณ ๋ฐํ๋ ๋ ๋ด๋ถ์ ์ผ๋ก ์คํ์ ์กฐ์ํ๊ธฐ ์ํ ์ด์
๋ธ๋ฆฌ ์ฝ๋๋ฅผ ์ปดํ์ผ๋ฌ๊ฐ ๋ฃ์ด์ค.
โข
์์ฉํ๋ก๊ทธ๋จ ์
์ฅ์์๋ ๋ช
์์ ์กฐ์์ด ์๋ ์ปดํ์ผ๋ฌ์ ์ํด implicitly managed๋๋ค.
Heap
โข
๋ช
์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํตํด์ ํ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋จ.
Memory API
void *malloc(size_t size)
C
๋ณต์ฌ
โข
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฝ(์์คํ
์ฝ์ด ์๋๋ค!)
โฆ
ํ์ ๋ฉ๋ชจ๋ฆฌ ํ์ด ์ ๋์ ์ด๋ฏ๋ก ์์คํ
์ฝ
โข
๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํ๊ธฐ ์ํ ์ง์ง ์์คํ
์ฝ์ ๋ค์๊ณผ ๊ฐ๋ค.
โฆ
brk
โฆ
sbrk
โข
mallocํจ์๋ฅผ ์ํ๋ ํํ๋ก ์๊ณ ๋ฆฌ์ฆ์ ์๋ก ๊ตฌํํ ์ ์๋ค.
โฆ
๋ฌผ๋ก brk์ sbrk๋ฅผ ์ฌ์ฉํด์ผํจ.
void free(void *)
C
๋ณต์ฌ
โข
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฝ
Common Errors
โข
๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์๋ ๊ฒฝ์ฐ
โฆ
Segmentation fault
char *src = โhelloโ;
char *dst; //oops! unallocated -> garbage value
strcpy(dst, src); //segfault and die
C
๋ณต์ฌ
char *src = โhelloโ;
char *dst = (char *)malloc(strlen(src) + 1 );
strcpy(dst, src); //work properly
C
๋ณต์ฌ
Main Quest : How to Virtualize Memory
๊ฐ๊ฐ์ ํ๋ก์ธ์ค๋ ์์ ์ Address space๋ ๊ฐ์ธ์ ์ธ ๊ณต๊ฐ์ผ๋ก ๋ณด์ฅํด์ฃผ๊ณ , ๊ทธ ์ด๋๋ ์ค ์คํ์ด์ค๋ฅผ ์ด๋ป๊ฒ ๋๋ํ๊ฒ ๋ง๋ค์ด์ค ์ ์๋๊ฐ?
์ด๋ป๊ฒ ํจ์จ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ํ๋ฅผ ๊ตฌ์ถํ ์ ์์๊น?
ํ๋ก๊ทธ๋จ์ด ํ์๋ก ํ๋ ์ ์ฐ์ฑ์ ์ด๋ป๊ฒ ์ ๊ณตํ๋๊ฐ?
ํ๋ก๊ทธ๋จ์ด ์ ๊ทผํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์์น์ ๋ํ ์ ์ด๋ฅผ ์ด๋ป๊ฒ ์ ์งํ๋๊ฐ?
๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ์ด๋ป๊ฒ ์ ์ ํ ์ ํํ๋๊ฐ?
์ฐ๋ฆฌ๊ฐ ๋ค๋ฃฐ ๊ธฐ๋ฒ์ ํ๋์จ์ด ์ฃผ์ ๋ณํ(hardware-based address translation) ํน์ ๊ทธ๋ฅ ์ฃผ์๋ณํ(address translation)
์ฃผ์๋ณํ์ ํตํด ํ๋์จ์ด๋ ๊ฐ์์ฃผ๋ฅผ ๋ฌผ๋ฆฌ์ฃผ์๋ก ๋ณํํ๋ค.
ํ๋ก๊ทธ๋จ์ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ๋ฅผ ์ค์ ๋ฉ๋ชจ๋ฆฌ ์์น๋ก ์ฌ์ง์ ํ๊ธฐ ์ํด ํ๋์จ์ด๊ฐ ์ฃผ์๋ฅผ ๋ณํํ๋ค.
ํ๋์จ์ด๋ง์ผ๋ก๋ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ํ๋ฅผ ๊ตฌํํ ์ ์๋ค. ์ด์์ฒด์ ์ ๋์์ด ๋ ์์ด์ผ ํ๋ค.
๋ฉ๋ชจ๋ฆฌ์ ๋น ๊ณต๊ฐ๊ณผ ๊ทธ๋ ์ง ์์ ๊ณณ์ ํญ์ ํ์
ํด์ผํ๊ณ , ์ด๋ฅผ ์ ์ดํ ์ค ์์์ผ ํ๋ค.
์ฆ ์ฐ๋ฆฌ์ ๋ชฉํ๋ ๋ค์๊ณผ ๊ฐ๋ค.
๋ชจ๋ ํ๋ก๊ทธ๋จ์ด ์์ ์ ์ ์ฉ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์์ ํ๊ณ ๊ทธ ์์ ์์ ์ ์ฝ๋์ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ ํ์์ ๋ง๋ ๋ค.
Assumption
1.
๋น๋ถ๊ฐ ์ฌ์ฉ์ ์ฃผ์ ๊ณต๊ฐ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ฐ์์ ์ผ๋ก ๋ฐฐ์น๋์ด์ผ ํ๋ค๊ณ ๊ฐ์ ํ๋ค.
2.
๋
ผ์๋ฅผ ๋จ์ํํ๊ธฐ ์ํด ์ฃผ์๊ณต๊ฐ์ ํฌ๊ธฐ๊ฐ ๋๋ฌด ํฌ์ง ์๋ค๊ณ ๊ฐ์ ํ๋ค.
3.
์ฃผ์ ๊ณต๊ฐ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ฆ๋ณด๋ค ์์ผ๋ฉฐ ๊ฐ ์ฃผ์์ ํฌ๊ธฐ๋ ๊ฐ๋ค๊ณ ๊ฐ์ ํ๋ค.
์ค์ผ์ฅด๋ง๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ด ๊ฐ์ ์ ํด๊ธํด๋๊ฐ ๊ฒ์ด๋ค.
Example
void func(){
int x = 3000;
x = x + 3; //์ฐ๋ฆฌ๊ฐ ๊ด์ฌ์๋ ์ฝ๋
C
๋ณต์ฌ
๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ํ์ฌํ๊ณ , 3์ ์ฆ๊ฐ์ํค๊ณ , ๋ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๋ ์งง์ ์ฝ๋๋ค.
์ปดํ์ผ๋ฌ๋ ๋ค์๊ณผ ๊ฐ์ด ์ด์
๋ธ๋ฆฌ ์ฝ๋๋ก ๋ณํํ ๊ฒ์ด๋ค.
movl 0x0(\%ebx), \%eax ; 0+ebx๋ฅผ eax์ ์ ์ฅ
addl \$0x03 \$eax ; eax ๋ ์ง์คํฐ์ 3์ ๋ํ๋ค.
movl \%eax 0x0(\%ebx) ; eax๋ฅผ ๋ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ.
Assembly
๋ณต์ฌ
x์ ์ฃผ์๋ eax๋ ์ง์คํฐ์ ๋ค์ด์๋ค๊ณ ๊ฐ์ ํ๊ณ , ์ด ๋ ์ง์คํฐ์ ๊ฐ์ movl๋ก ๋ฒ์ฉ ๋ ์ง์คํฐ์ ๋ฃ๋๋ค.
๋ฉ๋ชจ๋ฆฌ์ ์ธ ์ธก๋ฉด์์ ์ด๋ฅผ ๋ค์ ๋ฐ๋ผ๋ณด๋๋ก ํ์.
instruction์ฝ๋๋ ์๋จ 128๋ถํฐ ์ฐจ๋ก๋๋ก ์์นํด์๋ค.
๋ณ์ x์ ๊ฐ์ ์ฃผ์ 15KB(์คํ)์ ์์นํ๋ค.
๊ทธ๋ฆผ์์ x์ ์ด๊ธฐ ๊ฐ์ 3000์ด๋ค.
์ ๋ช
๋ น์ด๊ฐ ์คํ๋๋ฉด ํ๋ก์ธ์ค์ด ๊ด์ ์์ ๋ค์๊ณผ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด ์ผ์ด๋๋ค.
1.
์ฃผ์ 128์ ๋ช
๋ น์ด๋ฅผ ๋ฐ์
2.
์ด ๋ช
๋ น์ด๋ฅผ ์คํ(์ฃผ์ 15KB์์ ํ์ฌ)
3.
์ฃผ์ 132์ ๋ช
๋ น์ด๋ฅผ ๋ฐ์
4.
์ด ๋ช
๋ น์ด ์คํ(๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ ์์)
5.
์ฃผ์ 135์ ๋ช
๋ น์ด๋ฅผ ๋ฐ์
6.
์ด ๋ช
๋ น์ด ์คํ(15KB์ ์ ์ฅ)
ํ๋ก๊ทธ๋จ ๊ด์ ์์ ์ฃผ์๊ณต๊ฐ์ ์ฃผ์ 0๋ถํฐ ์ต๋ 16KB๊น์ง๋ค. ํ๋ก๊ทธ๋จ์ด ์์ฑํ๋ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ๋ ์ด ๋ฒ์ ๋ด์ ์์ด์ผ ํ๋ค.
๊ทธ๋ผ ํ๋ก์ธ์ค๋ฅผ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ 0์ด ์๋ ๊ณณ์ ์์น์ํค๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น?
์ ๋ต! ์ฌ๋กฏ์ ๋ก ์ด์ํ๋ฉด ๋๋ค! ๊ฐ ์ฌ๋กฏ๋น ํ๋ก์ธ์ค์ ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฝ์ผ๋ฉด ๋๋ค.
๋ง์น 2000๋
๋ ์ด๋ฐ์ ์๋ ๋น๋์ค๊ฒ์์ ๋ฉ๋ชจ๋ฆฌ์นด๋์ ์ ์ฌํจ.
Dynamic Relocation
ํ๋์จ์ด ๊ธฐ๋ฐ ์ฃผ์ ๋ณํ์ ์ดํดํ๊ธฐ ์ํด ๋จผ์ ์ฒซ๋ฒ์งธ ์ฌ๋ก๋ฅผ ์ค๋ช
ํด์ผํ๋ค.
50โs ํ๋ฐ์ ์๋ถํ ์ปดํจํฐ๊ฐ ๋ฑ์ฅํ๋ฉด์ ๋ฒ ์ด์ค์ ๋ฐ์ด๋(base and bound)๋ผ๋ ์์ด๋์ด๊ฐ ๋ฑ์ฅํ๋ค. ๋ํ ์ด ๊ธฐ์ ์ ๋์ ์ฌ๋ฐฐ์น๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค.
๋ฒ ์ด์ค์ ๋ฐ์ด๋๋ ๊ฐ๊ฐ ๋์ํ๋ ๋ ์ง์คํฐ๊ฐ ์กด์ฌํ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ ํจ๊ณผ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
โข
๋ฒ ์ด์ค ๋ ์ง์คํฐ : ์์ ์ด ์ํ๋ ์์น์ ์ฃผ์๊ณต๊ฐ์ ๋ฐฐ์นํ ์ ์๊ฒ ํ๋ค.
โข
๋ฐ์ด๋ ๋ ์ง์คํฐ : ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ์ฃผ์๊ณต๊ฐ์ ์นจ๋ฒํ๋ ๊ฒ์ ๋ง๋๋ค.
์ ์์์ ์ด์์ฒด์ ๋ ํ๋ก์ธ์ค๋ฅผ ๋ฌผ๋ฆฌ์ฃผ์ 32KB์ ์ ์ฅํ๊ธฐ๋ก ๊ฒฐ์ ํ๊ณ ๋ฒ ์ด์ค ๋ ์ง์คํฐ๋ฅผ ์ด ๊ฐ์ผ๋ก ์ค์ ํ๋ค.
ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ฉด์ ๋ค์๊ณผ ๊ฐ์ ์ผ์ด ๋ฐ์ํ๋ค.
physical address - virtual address + base
Assembly
๋ณต์ฌ
ํ๋ก์ธ์ค๊ฐ ์์ฑํ๋ ๋ฉ๋ชจ๋ฆฌ๋ ๊ฐ์์ฃผ์๋ค!
ํ๋์จ์ด๋ ๋ฒ ์ด์ค ๋ ์ง์คํฐ์ ๋ด์ฉ์ ์ด ์ฃผ์์ ๋ํด ์ต์ข
๋ฌผ๋ฆฌ ์ฃผ์๋ฅผ ์์ฑํ๋ค.
์ด์ ์ฝ๋๋ฅผ ๋ค์ ์ฐธ์กฐํด๋ณด์.
128: movl 0x0(%ebx), %eax
Assembly
๋ณต์ฌ
ํ๋ก๊ทธ๋จ ์นด์ดํฐ(PC)๋ 128๋ก ์ค์ ๋๋ค. ํ๋์จ์ด๊ฐ ์ด ๋ช
๋ น์ด๋ฅผ ๋ฐ์
ํ ๋ ๋จผ์ PC ๊ฐ์ ๋ฒ ์ด์ค ๋ ์ง์คํฐ์ ๊ฐ 32KB์ ๋ํด 32896์ ๋ง๋ ๋ค.
๊ฐ์์ฃผ์์์ ๋ฌผ๋ฆฌ์ฃผ์๋ก์ ๋ณํ์ด ์คํ ์์ ์ผ์ด๋๊ณ , ํ๋ก์ธ์ค๊ฐ ์คํ์ ์์ํ ์ดํ์๋ ์ฃผ์ ๊ณต๊ฐ์ ์ด๋ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋์ ์ฌ๋ฐฐ์น๋ผ๊ณ ๋ถ๋ฆฌ๋ ๊ฒ์ด๋ค.
Summary : Hardware Support
Next chapter