Search
Duplicate

๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

Logical Address vs Physical Address

โ€ข
Logical address(virtual address)
โ—ฆ
ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐ€์ง€๋Š” ์ฃผ์†Œ ๊ณต๊ฐ„
โ—ฆ
๊ฐ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค 0๋ฒˆ์ง€๋ถ€ํ„ฐ ์‹œ์ž‘
โ—ฆ
CPU๊ฐ€ ๋ณด๋Š” ์ฃผ์†Œ๋Š” logical address
โ€ข
Physical address
โ—ฆ
๋ฉ”๋ชจ๋ฆฌ์— ์‹ค์ œ๋กœ ์˜ฌ๋ผ๊ฐ€๋Š” ์œ„์น˜
โ€ข
address binding
โ—ฆ
์ฃผ์†Œ๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ  ๋งค์นญํ•˜๋Š” ๊ฒƒ
โ—ฆ
logical address ์—์„œ physical address ๋กœ ๋ณ€ํ™˜๋˜๋Š” ๊ฒƒ
โ€ข
symbolic address
โ—ฆ
๋ณ€์ˆ˜ ์ด๋ฆ„์ฒ˜๋Ÿผ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ €์žฅํ•˜๋Š” ์ฃผ์†Œ

Address Binding

โ€ข
์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด physical address ์— ์˜ฌ๋ผ๊ฐ€๋Š” ์‹œ์ ์„ ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ
โ€ข
CPU ๊ฐ€ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ์ด์œ  โ†’ ์‹คํ–‰ํŒŒ์ผ ๋‚ด์˜ ์ฝ”๋“œ๋Š” ๊ฐ๊ฐ์ด instruction ์ธ๋ฐ instruction ๋‚ด๋ถ€์˜ ์ฃผ์†Œ๋„ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ์ด๋‹ค. ์ด ์ธ์ŠคํŠธ๋Ÿญ์…˜์ด ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žฌ๋ฐฐ์น˜ ๋œ๋‹ค๊ณ  ํ•ด๋„ ์ธ์ŠคํŠธ๋Ÿญ์…˜ ๋‚ด๋ถ€์˜ ์ฃผ์†Œ๊ฐ€ ๊ฒฐ๊ตญ logical address ๋ฅผ ๋ฐ”๋ผ๋ณด๊ธฐ๋•Œ๋ฌธ์— CPU ๋Š” ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๋ฅผ ๋ฐ”๋ผ๋ณผ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.
โ€ข
compile time binding
โ—ฆ
์ปดํŒŒ์ผ ์‹œ์— ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ํ• ๋‹น
โ—ฆ
์‹œ์ž‘ ์œ„์น˜ ๋ณ€๊ฒฝ์‹œ re-compile
โ—ฆ
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ ˆ๋Œ€ ์ฝ”๋“œ(absolute code) ์ƒ์„ฑ
โ—ฆ
์ปดํŒŒ์ผ ์‹œ์— logical address ์— ์žˆ๋Š” ์ฃผ์†Œ๊ฐ€ physical address
โ—ฆ
์ปดํŒŒ์ผ ์‹œ์— ์ด๋ฏธ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๊ฐ€ ์ •ํ•ด์ง
โ—ฆ
๋น„ํšจ์œจ์ 
โ—ฆ
์ปดํ“จํ„ฐ ์•ˆ์— ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ๋งŒ ์‹คํ–‰๋  ๋•Œ ์ปดํŒŒ์ผ ๋ฐ”์ธ๋”ฉ
โ€ข
load time binding
โ—ฆ
loader ์˜ ์ฑ…์ž„ํ•˜์— ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ถ€์—ฌ
โ—ฆ
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•œ ๊ฒฝ์šฐ ๊ฐ€๋Šฅ
โ—ฆ
์‹คํ–‰ ์‹œ์— ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๊ฐ€ ์ •ํ•ด์ง
โ€ข
execution time binding(runtime)
โ—ฆ
์ˆ˜ํ–‰์ด ์‹œ์ž‘๋œ ์ดํ›„์—๋„ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ์ƒ ์œ„์น˜๋ฅผ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ์Œ
โ—ฆ
CPU ๊ฐ€ ์ฃผ์†Œ๋ฅผ ์ฐธ์กฐํ•  ๋•Œ๋งˆ๋‹ค binding ์„ ์ ๊ฒ€(address mapping table)
โ—ฆ
ํ•˜๋“œ์›จ์–ด ์ง€์› ํ•„์š”(MMU)
โ—ฆ
์‹คํ–‰ ์‹œ์— ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๊ฐ€ ์ •ํ•ด์ง€๋Š”๋ฐ ์ฃผ์†Œ๊ฐ€ ์‹คํ–‰ ๋„์ค‘์— ๋ฐ”๋€” ์ˆ˜ ์žˆ๋‹ค

Memory Management Unit(MMU)

โ€ข
์ฃผ์†Œ ๋ณ€ํ™˜์šฉ ํ•˜๋“œ์›จ์–ด
โ€ข
์ฃผ์†Œ ๋ณ€ํ™˜ํ•  ๋•Œ ์žฌํ• ๋‹น ๋ ˆ์ง€์Šคํ„ฐ์™€ ๋ฆฌ๋ฏธํŠธ ๋ ˆ์ง€์Šคํ„ฐ ๋‘๊ฐœ๋ฅผ ์ด์šฉํ•ด์„œ ๋ณ€ํ™˜
โ€ข
์žฌํ• ๋‹น ๋ ˆ์ง€์Šคํ„ฐ์—๋Š” ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ• ๋‹น๋ฐ›์€ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ์˜ ์‹œ์ž‘์œ„์น˜๊ฐ€ ์ €์žฅ๋จ
โ€ข
๋ฆฌ๋ฏธํŠธ ๋ ˆ์ง€์Šคํ„ฐ์—๋Š” ํ”„๋กœ์„ธ์Šค ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ โ†’ ๋ฆฌ๋ฏธํŠธ๋ฅผ ๋„˜์–ด์„œ๋Š” ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด
โ€ข
user program ์€ logical address ๋งŒ ๋‹ค๋ฃจ๊ณ  ์‹ค์ œ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๋ฅผ ๋ณผ ์ˆ˜๋„, ์•Œ ํ•„์š”๋„ ์—†๋‹ค.

dynamic loading

โ€ข
ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ์— ๋™์ ์œผ๋กœ ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ
โ€ข
๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ ํ–ฅ์ƒ
โ€ข
๊ฐ€๋” ์‚ฌ์šฉ๋˜๋Š” ๋งŽ์€ ์–‘์˜ ์ฝ”๋“œ(์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ)์ผ ๋•Œ ์œ ์šฉ
โ€ข
์šด์˜์ฒด์ œ์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ง€์›

overlays

โ€ข
๋ฉ”๋ชจ๋ฆฌ์— ํ”„๋กœ์„ธ์Šค ์ค‘ ์‹ค์ œ ํ•„์š”ํ•œ ์ •๋ณด๋งŒ ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ
โ€ข
ํ”„๋กœ์„ธ์Šค์˜ ํฌ๊ธฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ํด ๋•Œ ์œ ์šฉ
โ€ข
dynamic loading ๊ณผ ๋‹ค๋ฅธ ์ ์€ ๊ธฐ์›์ด ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ..

swapping

โ€ข
ํ”„๋กœ์„ธ์Šค๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์—์„œ swap area(backing store) ๋กœ ์ซ“์•„๋‚ด๋Š” ๊ฒƒ
โ€ข
์ผ๋ฐ˜์ ์œผ๋กœ ์ค‘๊ธฐ ์Šค์ผ€์ฅด๋Ÿฌ์— ์˜ํ•ด swap out ์‹œํ‚ฌ ํ”„๋กœ์„ธ์Šค ์„ ์ •
โ€ข
priority-based CPU scheduling algorithm
โ€ข
compile time ๋˜๋Š” load time binding ์—์„œ๋Š” ์›๋ž˜ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜๋กœ swap in
โ€ข
execution time binding ์—์„œ๋Š” ์ถ”ํ›„ ๋นˆ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ์•„๋ฌด ๊ณณ์—๋‚˜ swap in

dynamic linking

โ€ข
linking ์€ ์—ฌ๋Ÿฌ ๊ตฐ๋ฐ์— ์ปดํŒŒ์ผ๋œ ์‹คํ–‰ ํŒŒ์ผ๋“ค์„ ํ•˜๋‚˜๋กœ ๋ชจ์œผ๋Š” ๊ฒƒ
โ€ข
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ํŒŒ์ผ ์ฝ”๋“œ์— ํฌํ•จ๋˜๋ฉด static linking
โ—ฆ
๋™์ผํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๊ธฐ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‚ญ๋น„๋œ๋‹ค(ex. printf)
โ€ข
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์‹คํ–‰์‹œ ์—ฐ๊ฒฐ๋œ๋‹ค
โ€ข
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ด๋ฏธ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ์œผ๋ฉด ๊ทธ๋Œ€๋กœ ์“ฐ๊ณ  ์—†์œผ๋ฉด ๋””์Šคํฌ์—์„œ ์ฝ์–ด์˜ด
โ€ข
OS ์˜ ๋„์›€ ํ•„์š”

๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น

์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค ์˜์—ญ ํ• ๋‹น

โ€ข
์—ฐ์† ํ• ๋‹น
โ—ฆ
๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์—ฐ์†์ ์ธ ๊ณต๊ฐ„์— ์ ์žฌ๋˜๋Š” ๊ฒƒ
โ—ฆ
fixed partition ํ• ๋‹น
โ–ช
๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์šฐ์„  ๋ถ„ํ• ํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค ํฌ๊ธฐ์— ๋งž๊ฒŒ ํ• ๋‹น
โ–ช
B ๊ฐ€ ๋ถ„ํ•  2๋ณด๋‹ค ์ปค์„œ ๋ถ„ํ•  3์— ๋“ค์–ด๊ฐ
โ–ช
๋‚ญ๋น„๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์™ธ๋ถ€ ์กฐ๊ฐ๊ณผ ๋‚ด๋ถ€ ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋ˆ”
โ—ฆ
variable partition ํ• ๋‹น
โ–ช
์ฐจ๊ณก์ฐจ๊ณก ์ˆœ์„œ๋Œ€๋กœ ์˜ฌ๋ฆผ
โ–ช
๊ฐ€์šฉ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ธ hole ์ด ์ƒ๊ธด๋‹ค
โ–ช
first fit โ†’ size ๊ฐ€ n ์ด์ƒ์ธ ๊ฒƒ ์ค‘ ์ตœ์ดˆ์˜ hole ์— ํ• ๋‹น
โ–ช
best fit โ†’ size ๊ฐ€ n ์ด์ƒ์ธ ๊ฒƒ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ hole ์— ํ• ๋‹น
โ–ช
worst fit โ†’ ๊ฐ€์žฅ ํฐ hole ์— ํ• ๋‹น
โ–ช
first fit, best fit ์ด worst fit ๋ณด๋‹ค ์†๋„์™€ ๊ณต๊ฐ„ ์ด์šฉ๋ฅ  ์ธก๋ฉด์—์„œ ํšจ๊ณผ์ 
โ—ฆ
compaction
โ–ช
hole ์„ ํ•œ ๊ณณ์œผ๋กœ ๋ญ‰์นจ
โ–ช
๋น„์šฉ์ด ๋งค์šฐ ๋งŽ์ด ์†Œ๋ชจ๋จ
โ€ข
๋ถˆ์—ฐ์† ํ• ๋‹น
โ—ฆ
ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์—ฌ๋Ÿฌ ์˜์—ญ์— ๋ถ„์‚ฐ๋˜์–ด ์˜ฌ๋ผ๊ฐ€๋Š” ๊ฒƒ
โ—ฆ
paging
โ—ฆ
segmentation
โ–ช
๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์˜๋ฏธ ์žˆ๋Š” ๋‹จ์œ„(code, data, stack ๋“ฑ)๋กœ ์ž๋ฅด๋Š” ๊ฒƒ
โ—ฆ
paged segmentation

paging

โ€ข
ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋…ผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ผ์ • ํฌ๊ธฐ์˜ ํŽ˜์ด์ง€๋กœ ์ž˜๋ผ์„œ ๊ฐ๊ฐ์˜ ํŽ˜์ด์ง€๋ณ„๋กœ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์ ๋‹นํ•œ ์œ„์น˜์— ๋„ฃ๋Š” ๊ฒƒ
โ€ข
๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์„ ์œ„ํ•ด page table ์ ‘๊ทผ 1๋ฒˆ, data/instruction ์ ‘๊ทผ 1๋ฒˆ ์ด 2๋ฒˆ์˜ ์—ฐ์‚ฐ์ด ํ•„์š”
โ€ข
ํ”„๋กœ์„ธ์Šค์˜ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋™์ผํ•œ ์‚ฌ์ด์ฆˆ์˜ page ๋‹จ์œ„๋กœ ๋‚˜๋ˆ”
โ€ข
๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‚ด์šฉ์ด page ๋‹จ์œ„๋กœ noncontiguous ํ•˜๊ฒŒ ์ €์žฅ
โ€ข
์ผ๋ถ€๋Š” backing storage, ์ผ๋ถ€๋Š” physical memory ์— ์ €์žฅ

two level page table

โ€ข
์ปดํ“จํ„ฐ ํ–ฅ์ƒ์˜ ๋ชฉํ‘œ๋Š” 2๊ฐ€์ง€: ์†๋„ ํ–ฅ์ƒ, ๊ณต๊ฐ„ ์ตœ์†Œํ™”
โ€ข
two level page table ์€ page table ์˜ ๊ณต๊ฐ„ ์ตœ์†Œํ™”๊ฐ€ ๋ชฉ์ 
โ€ข
์•ฝ๊ฐ„ index ๋Š๋‚Œ?
โ€ข
๋…ผ๋ฆฌ ์ฃผ์†Œ(32bit machine ์— 4K page size)์˜ ๊ตฌ์„ฑ
โ—ฆ
20bit ์˜ page number
โ—ฆ
12bit ์˜ page offset(2^12 ์ด๋ผ์„œ)
โ—ฆ
P1 ์€ outer page table ์˜ index, P2 ๋Š” outer page table ์˜ page ์—์„œ์˜ ์œ„์น˜
โ€ข
1๋‹จ๊ณ„ page table ์€ logical memory ์— ์‚ฌ์šฉ๋˜๋Š” ํฌ๊ธฐ๋งŒํผ page table ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์•ˆ์“ฐ๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋งŽ์€๋ฐ ๋ถˆํ•„์š”ํ•˜๊ฒŒ page table ์— ๋“ฑ๋กํ•ด์•ผํ•œ๋‹ค. entry ๋ฐฉ์‹์ด๊ธฐ๋•Œ๋ฌธ์— table ์ž๋ฃŒ ๊ตฌ์กฐ ํŠน์„ฑ์ƒ ๊ฐ๊ฐ์˜ index๊ฐ€ ํ•„์š”ํ•˜๊ธฐ๋•Œ๋ฌธ
โ€ข
2๋‹จ๊ณ„ page table ์€ ์•ˆ์“ฐ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•ด์„œ null ๋กœ ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋งŒ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

multi-level paging and performance

โ€ข
address space ๊ฐ€ ๋” ์ปค์ง€๋ฉด ๋‹ค๋‹จ๊ณ„ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ํ•„์š”
โ€ข
๊ฐ ๋‹จ๊ณ„์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌ. ๊ทธ๋ž˜์„œ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ์—์„œ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๋กœ ๋ณ€ํ™œํ•  ๋•Œ ๋” ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์ด ํ•„์š”
โ€ข
์บ์‹ฑ ๋ฉ”๋ชจ๋ฆฌ(TLB)๋กœ ์ ‘๊ทผ ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ

memory protection

โ€ข
page table ์˜ ๊ฐ entry ๋งˆ๋‹ค bit ๋ฅผ ๋‘”๋‹ค.
โ€ข
protection bit
โ—ฆ
page ์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ(read, write, read-only)
โ—ฆ
๋ณดํ†ต code ๋Š” read-only, data์™€ stack ์€ read, write
โ€ข
valid-invalid bit
โ—ฆ
valid ๋Š” ํ•ด๋‹น ์ฃผ์†Œ์˜ frame ์— ๊ทธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์œ ํšจํ•œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ๋‹ค.
โ—ฆ
invalid ๋Š” ํ•ด๋‹น ์ฃผ์†Œ์˜ frame ์— ์œ ํšจํ•œ ๋‚ด์šฉ์ด ์—†๋‹ค. ์ด ๊ฒฝ์šฐ๋Š” 1. ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ทธ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฑฐ๋‚˜, 2. ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€์žˆ์ง€ ์•Š๊ณ  swap area ์— ์žˆ๋Š” ๊ฒฝ์šฐ์ด๋‹ค.

inverted page table

shared page

segmentation

โ€ข
์ž‘๊ฒŒ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•˜๋Š” ํ•จ์ˆ˜ ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ segment
โ€ข
ํฌ๊ฒŒ๋Š” ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด๋ฅผ ํ•˜๋‚˜์˜ segment
โ€ข
๋ณดํ†ต์€ code, date, stack ๋ถ€๋ถ„์ด ๊ฐ๊ฐ segment
โ€ข
์˜๋ฏธ๋‹จ์œ„๋กœ ์ชผ๊ฐœ๊ธฐ๋•Œ๋ฌธ์— protection ์—์„œ ์˜๋ฏธ ๋ถ€์—ฌ๊ฐ€ ์ž์—ฐ์Šค๋Ÿฝ๋‹ค.
โ€ข
ํ”„๋กœ์„ธ์Šค๊ฐ„ sharing ํ• ๋•Œ๋„ ์˜๋ฏธ ๋‹จ์œ„๋กœ ํ•˜๊ธฐ๋•Œ๋ฌธ์— ํŽ˜์ด์ง•๋ณด๋‹ค ๋” ํšจ๊ณผ์ ์ด๋‹ค.

paging vs segmentation

โ€ข
ํŽ˜์ด์ง•์€ ํŽ˜์ด์ง€ ํฌ๊ธฐ๊ฐ€ ๊ท ์ผ ์˜คํ”„์…‹ ํฌ๊ธฐ๊ฐ€ ํŽ˜์ด์ง€ ํฌ๊ธฐ์— ์˜ํ•ด ๊ฒฐ์ •
โ€ข
ํŽ˜์ด์ง•์€ ์‹œ์ž‘ ์ฃผ์†Œ, ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜์€ ์„ธ๊ทธ๋จผํŠธ ํฌ๊ธฐ๊ฐ€ ๋‹ค ๋‹ฌ๋ผ์„œ ์–ด๋””์„œ ์‹œ์ž‘ํ•˜๋Š”์ง€ ์ •ํ™•ํ•ด์•ผํ•œ๋‹ค.
โ€ข
์„ธ๊ทธ๋จผํŠธ๋Š” ํฌ๊ธฐ๊ฐ€ ๊ท ์ผํ•˜์ง€ ์•Š๊ธฐ๋•Œ๋ฌธ์— ์ค‘๊ฐ„์ค‘๊ฐ„์— hole ์ด ์ƒ๊ธด๋‹ค.

paged segmentation

โ€ข
segment ๋ฅผ page ๋กœ ๋‚˜๋ˆ”

๊ฒฐ๋ก 

์ฃผ์š” ๋‚ด์šฉ์€ ์ฃผ์†Œ ๋ณ€ํ™˜์ธ๋ฐ, ์ฃผ์†Œ ๋ณ€ํ™˜์€ ๋ชจ๋‘ ํ•˜๋“œ์›จ์–ด๊ฐ€ ํ•˜๋Š” ์ผ!
โ†’ ์šด์˜์ฒด์ œ๊ฐ€ ํ•˜๋Š” ์ผ์€ ์—†๋‹ค!
โ†’ CPU - ํ”„๋กœ์„ธ์Šค - ๋ฉ”๋ชจ๋ฆฌ ์—์„œ ์ฃผ์†Œ ๋ณ€ํ™˜์ด ํ•„์š”ํ•œ๋ฐ, ์ด๋•Œ ํ”„๋กœ์„ธ์Šค - ์šด์˜์ฒด์ œ ๋กœ ๋„˜์–ด๊ฐ€๋Š” ๊ฒƒ์€ ๋ง์ด ์•ˆ๋œ๋‹ค. ์šด์˜ ์ฒด์ œ ๋˜ํ•œ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์ด๊ธฐ๋•Œ๋ฌธ์— CPU ๋ฅผ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค.
โ€ข
page table ์ž์ฒด๊ฐ€ ํฌ๊ธฐ๋ฅผ ๋งŽ์ด ์ฐจ์ง€ํ•œ๋‹ค.
๋””์Šคํฌ(ํŒŒ์ผ ์‹œ์Šคํ…œ)์˜ ์‹คํ–‰ ํŒŒ์ผ๋“ค์ด ์‹คํ–‰์ด ๋˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ํ”„๋กœ์„ธ์Šค ํ˜•ํƒœ๋กœ ์˜ฌ๋ผ๊ฐ
๊ทธ๋Ÿฐ๋ฐ ๋ฐ”๋กœ ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€์ง€ ์•Š๊ณ  ์ž์‹ ๋งŒ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ธ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๊ณ  ๋‹น์žฅ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฐ๋‹ค. ์–ธ์  ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‹ค ์ฐจ๋ฉด ๋””์Šคํฌ(์Šค์™‘ ์˜์—ญ)์œผ๋กœ ์ซ“๊ฒจ๋‚œ๋‹ค.
ํŒŒ์ผ ์‹œ์Šคํ…œ ๋””์Šคํฌ๋Š” ์˜๊ตฌํžˆ ์ €์žฅ ๊ฐ€๋Šฅ