๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿš— Major Study (Bachelor)/๐ŸŸง Operating System

[OS / ์šด์˜ ์ฒด์ œ] Paging, Frame Table, Hardware Support, Shared Pages, Hierarchical Paging

by UKHYUN22 2022. 6. 2.
728x90

Paging

overhead๋Š” 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๊ด€์ ์—์„œ page table ์„ ๋จผ์ € ์‚ดํŽด๋ณด์ž. page table์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์€ ๋ฌด์‹œํ•˜์ง€ ๋ชปํ•  ๋งŒํผ ํฌ๋‹ค. page์˜ ํ•œ ์นธ์ด frame number ๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ณ  page offset์ด 12 bit๋ผ๋ฉด 20bit์˜ ํฌ๊ธฐ๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. 4MB ์ •๋„ ํ•ด๋‹นํ•˜๋ฏ€๋กœ ๋ฌด์‹œํ•  ์ˆ˜ ์—†๋‹ค. page table์€ ์ปดํ“จํ„ฐ ์•ˆ์— ํ”„๋กœ์„ธ์Šค ๊ฐœ์ˆ˜ ๋งŒํผ ์กด์žฌํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ 100๊ฐœ ์ •๋„ ์žˆ๋‹ค๊ณ  ํ•˜๋ฉด 400MB ์ •๋„ ์ฐจ์ง€ํ•œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.  ๋‘ ๋ฒˆ์งธ๋Š” Internel Fragmentation ๊ด€์ ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด logical memory์˜ ๊ณต๊ฐ„์ด 14๋ผ๊ณ  ํ•˜๋ฉด ์–ด์ฐŒ ๋๋“  16์— ํ•ด๋‹นํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น ๋ฐ›์•„์•ผ ํ•œ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ํ•˜๋‚˜์˜ Frame์—๋Š” 2๊ฐœ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๋‚จ๊ฒŒ ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ 2๊ฐ€์ง€์˜ Overhead๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ž˜๋„ Paging์˜ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” External Fragmentation์ด ์—†์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

 

๋˜ ๋‹ค๋ฅธ Overhead

์†๋„ ๊ด€์ . page table์„ ํ•œ ๋ฒˆ Accessํ•ด์„œ ๋‹ค์‹œ ์ฐธ์กฐํ•˜๋Š” page์˜ ๋…ผ๋ฆฌ๋กœ๋Š” ์‹œ๊ฐ„์ด ๋” ๊ฑธ๋ฆฐ๋‹ค. page table์€ memory์— ์žˆ๋Š” ๊ณต๊ฐ„์ด๋ฏ€๋กœ ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ณด๋ฉด Memory๋ฅผ ๋‘ ๋ฒˆ Access๋ฅผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ๋” ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค. Memory table์˜ ์œ„์น˜๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” PCB๊ฐ€ ์กด์žฌํ•˜๊ณ  ๊ทธ๊ณณ๋„ Access๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค. 

 

X86 ~

31 ~ 12 bit๋Š” Frame number์— ํ•ด๋‹นํ•˜๊ณ  ๊ทธ ๋’ค์˜ ๋น„ํŠธ์—๋Š” ์–ด๋–ค ๊ฒƒ๋“ค์ด ์ฐจ์ง€ ํ•˜๋Š”๊ฐ€. ํ•ด๋‹น ํŽ˜์ด์ง€์˜ ์†์„ฑ์ด ์ €์žฅ๋œ๋‹ค. Read / Write ํŽ˜์ด์ง€ ์ค‘์— ์–ด๋–ค ๊ฒƒ์€ Read๋งŒ ํ•˜๊ณ  Write ๋งŒ ํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ฐ€๋” Reading ๋งŒ ํ—ˆ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์ด๋Ÿฐ ๊ณณ์€ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด๊ฐ„ ๊ณณ์ด๋‹ค. Read Only Memory ๋งŒ์„ ์ง€์›ํ•ด์•ผ ํ•œ๋‹ค. 

 

 

Frame Table

์šด์˜ ์ฒด์ œ๋Š” Physical Memory๋ฅผ ๊ด€๋ฆฌํ•  ์ฑ…์ž„์ด ์žˆ๋‹ค. ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋‚ด์šฉ์„ frame table์— ์ €์žฅํ•ด์•ผ ํ•œ๋‹ค. frame table์„ 1๊ฐœ ์กด์žฌํ•œ๋‹ค. ๊ฐ frame์ด ์‚ฌ์šฉ ์ค‘์ธ์ง€ ๋น„์–ด์žˆ๋Š” ์ง€๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ์ •๋ณด๊ฐ€ ๋‹ค ์ €์žฅ๋˜์–ด ์žˆ๋‹ค. list of free frame์ด๋ผ๋Š” ๊ฐœ๋…์ด ์žˆ๋‹ค. ํ˜„์žฌ ๋นˆ Frame์ด ์–ด๋””์— ์žˆ๋Š” ์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ list๋กœ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. 

 

 

Free Frames

ํ˜„์žฌ 4๊ฐœ์˜ ํŽ˜์ด์ง€๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ. list of free frame์„ ํ•˜๋ฉด ์ข‹์€ ์ ์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•œ ์š”์ฒญ์ด ์™”์„ ๋•Œ ๊ทธ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋นจ๋ผ์ง„๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์šด์˜ ์ฒด์ œ ์ž…์žฅ์—์„œ 15 ๋งŒ์ด ๋นˆ Frame์ผ ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ํ–‰๋™ํ•ด์•ผ ํ•˜๋Š”๊ฐ€? Free Frame์„ ๋ฏธ๋ฆฌ ํ™•๋ณดํ•ด์•ผ ํ•œ๋‹ค. Disk๋กœ ์•ˆ ์“ฐ๋Š” ๋‚ด์šฉ์„ ๋‚ด๋ ค์„œ Free Frame์— ๋Œ€ํ•œ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋™์ž‘์€ ์–ธ์ œ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•˜๋Š”๊ฐ€?  CPU Time์ด ํ•œ๊ฐ€ํ•  ๋•Œ Free Frame์„ ํ™•๋ณดํ•ด์•ผ ํ•œ๋‹ค. 

 

 

Hardware Support

์šด์˜ ์ฒด์ œ๋Š” ํ”„๋กœ์„ธ์Šค ๋งˆ๋‹ค Page table์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. Process ๋งˆ๋‹ค address space๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์šด์˜์ฒด์ œ๋Š” ์ด๋Ÿฐ ๋…ผ๋ฆฌ ํ๋ฆ„์„ ๋”ฐ๋ฅธ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฐฉ๋ฒ•์— ์˜ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ด 3๋ฒˆ ์ ‘๊ทผ์„ ํ•ด์•ผ ํ•œ๋‹ค. PCB(Page table์˜ ์ฃผ์†Œ) Page table, Physical Memory ์ด๋ ‡๊ฒŒ 3๋ฒˆ์ด๋‹ค. ์ด ์ค‘์— PCB์— ๋‹ด๊ฒจ ์žˆ๋Š” Page table ์ •๋ณด๋ฅผ ๋ž˜์ง€์Šคํ„ฐ์— ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ๋„ ์žˆ๋‹ค.  ์˜›๋‚  System์€ page table์„ CPU Resgiser์— ๋„ฃ์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์š”์ฆ˜์€ ์•ˆ๋€๋‹ค.

 

 

Hardware Support

PTBR, PCB์— ๋‹ด๊ฒจ ์žˆ๋Š” page table์˜ ์ฃผ์†Œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๋ž˜์ง€์Šคํ„ฐ๋ฅผ ๋งํ•œ๋‹ค. PTBR์—๋Š” page table์˜ ์ฃผ์†Œ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค. Context Switching์„ ํ•  ๋•Œ๋งˆ๋‹ค ๋ฐ”๊ฟ”์ค˜์•ผ ํ•œ๋‹ค. ๊ทธ ๊ฐ’์ด PTBR์— ์ตœ์‹ ํ™” ๋˜์–ด์•ผ ํ•œ๋‹ค. 2 ๋ฒˆ์งธ์˜ ๋ฌธ์ œ๋Š” Page table์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ Overhead์ธ๋ฐ ์ด ๋ฌธ์ œ๋Š” Cache๋ฅผ ํ†ตํ•ด์„œ ํ•ด๊ฒฐ์„ ํ•ด์•ผ ํ•œ๋‹ค. 

 

 

Hardware Support

Translation Look-aside Buffer ์—ฌ๊ธฐ์„œ Translation์€ Address Translation์„ ์˜๋ฏธํ•œ๋‹ค. page table์„ access ํ•˜๋ฉด p์— ๋Œ€ํ•œ f (frame number)๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” Page table์„ Cache ์•ˆ์— ์ €์žฅ์„ ์‹œ์ผœ๋ฒ„๋ฆฐ๋‹ค. 

 

 

Hardware Support

TLB์—๋Š” page number์™€ frame number๊ฐ€ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค. (ํ•ด๋‹น pair๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ฑฐ์ž„) TLB๋ฅผ ํ†ตํ•˜๋ฉด Cache Memory๋ฅผ ํ†ต๊ณผํ•˜๋ฏ€๋กœ ๋น ๋ฅธ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋น ๋ฅธ ์ด์œ ๊ฐ€ ๋˜ ํ•˜๋‚˜ ๋” ์กด์žฌํ•œ๋‹ค. page number๋ฅผ ์‚ดํ•„ ๋•Œ search ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์‚ฌ์šฉ๋˜๋Š”๋ฐ ์ด๊ฒƒ์ด ํ•˜๋“œ์›จ์–ด ์ ์œผ๋กœ ๊ตฌํ˜„๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์กด์žฌํ•˜๋Š”๋ฐ ๊ทธ๊ฒƒ์ด Associate Memory์ด๋‹ค.

p๋ฅผ Accessํ•˜๊ณ  ๊ทธ ๋‹ค์Œ์—๋„ p๋ฅผ ์ฐธ๊ณ ํ•˜๋Š” ๊ฐ€? ๊ทธ๋ ‡๋‹ค. ๊ทธ ์ฃผ๋ณ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ•  ํ™•๋ฅ ์ด ๋†’๋‹ค. ํ•œ ๊ฐ€์ง€ Issue๋Š” Context Switching์˜ ๊ฒฝ์šฐ์ด๋‹ค. Process๊ฐ€ ๋ฐ”๋€Œ๋ฏ€๋กœ Page table์˜ ์ •๋ณด๋„ ๋ฐ”๋€Œ๊ณ  ํ˜„์žฌ TLB์— ์žˆ๋Š” ๋‚ด์šฉ์„ ์ฐธ์กฐํ•  ํ•„์š”๊ฐ€ ์—†๊ฒŒ ๋˜์–ด์„œ flash๋ฅผ ํ•ด๋ฒ„๋ฆฌ๊ฒŒ ๋œ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•˜๊ธฐ๋Š” ํ•œ๋‹ค. ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค์‹œ ๋Œ์•„์˜ค๋Š” ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•ด์„œ ํ˜„์žฌ TLB์˜ ์ฃผ์†Œ์˜ ๊ฐ’์„ ์ €์žฅํ•˜๋ฉด ๋œ๋‹ค. 

 

 

Associative Memory

๊ฒ€์ƒ‰ํ•  ํ•„์š”๋„ ์—†์ด Constant Time์œผ๋กœ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. 

 

 

Protection

Read / Write ์— ๋Œ€ํ•œ ์ •๋ณด๋“ค์ด ๋‹ด๊ฒจ ์žˆ๋‹ค. Page table์˜ ๋ชจ๋“  Page๊ฐ€ ์‹ค์ œ๋กœ ๋ชจ๋“  Physical Memory๋กœ ๋“ค์–ด๊ฐ€์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. Page table์ด 2^3๊ฐœ ๋งŒํผ ์กด์žฌํ•œ๋‹ค. (์‹ค์ œ๋กœ 2^n ๊ฐœ๋กœ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค) ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ํ•„์š”ํ•œ process์˜ Table์€ 6๊ฐœ๋งŒ ์š”์ฒญ์ด ๋“ค์–ด์˜จ ์ƒํ™ฉ. Physical Memory๋กœ ์‹ค์ œ Mapping์ด ๋˜์—ˆ๋‹ค๊ณ  ํ• ๋•Œ v๋กœ ํ‘œ์‹œ๊ฐ€ ๋œ๋‹ค. ๋งค์นญ์ด ๋˜์ง€ ์•Š์€ ๊ฒƒ์„ i๋กœ ํ‘œ์‹œ๋ฅผ ํ•œ๋‹ค. Present๊ฐ€ valid / invalid๋ฅผ ๋งํ•˜๋Š” ๋น„ํŠธ์ด๋‹ค. logical Address Space ์ „์ฒด๊ฐ€ Physical Address์™€ Mapping ๋˜๋Š” ๊ฒƒ์€ ํ‹€๋ฆฐ ๋ง์ด๋‹ค~!!!(*****) ์ „์ฒด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ Entry ๊ฐœ์ˆ˜ ์ค‘์— ์‹ค์ œ ์‚ฌ์šฉ ์ค‘์ธ ๊ฐœ์ˆ˜๋ฅผ PTBR์— ์ €์žฅํ•˜๋ฉด 1bit๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. 

 

 

Shared Pages(****)

3 ๊ฐœ์˜ Process๊ฐ€ ์žˆ๋‹ค. page table๋„ 3๊ฐœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. vi๊ฐ€ ๋™์ผํ•œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์„ ๋•Œ ๊ฐ์ž ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ฐธ๊ณ ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ๋…ผ๋ฆฌ์ ์ธ ๊ณต๊ฐ„์—์„œ๋Š” 3๋ฒˆ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ Physical Memory๋Š” ํ•˜๋‚˜์˜ ๊ณต๊ฐ„์— ๋งค์นญ๋˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ž˜์„œ 2 ๋ฒˆ์งธ ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ๋น ๋ฅธ ์ด์œ ์ด๋‹ค. (๋Œ€๋ด‘....) data ์˜์—ญ์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? ์ด๋Š” ๊ณต์œ ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค. ์ด๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์—†๋Š” ์ด์œ ๋Š” ๋ฐ์ดํ„ฐ๋งˆ๋‹ค ๋‹ค๋ฅธ ๋‚ด์šฉ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ฐ˜๋Œ€๋กœ text editor๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ์ด์œ ๋Š” ๋‘ ๊ฐœ๊ฐ€ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

 

Hierarchical Paging

Paging์˜ Overhead๋Š” page table์ด ์ฐจ์ง€ํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ ์ฐจ์›์—์„œ ์ œ์•ฝ์ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Š” contiguous ์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค. ๋…ผ๋ฆฌ์ ์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ์†์ ์ด์–ด์•ผ ํ•œ๋‹ค. Page table์€ Page์˜ Benefit์„ ๋ˆ„๋ฆด ์ˆ˜ ์—†๋Š” ๊ฒƒ. page number๋ผ๋Š” ์˜์—ญ์„ ๋‘˜ ๋กœ ๋‚˜๋ˆˆ๋‹ค. P1, P2. 

 

 

Hierarchical Paging

page table์ด ๋ถ„ํ• ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์žฅ ์™ผ์ชฝ์˜ ๋ฐ•์Šค๊ฐ€ ์˜ค๋ฅธ ์ชฝ ์‚ฌ์ง„์˜ ๋‘ ๋ฒˆ์งธ ์ด๋ฏธ์ง€์— ํ•ด๋‹นํ•œ๋‹ค. ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š”? Page table์„ ๋‚˜๋ˆ ์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ํšจ์œจ์  ์ธก๋ฉด์—์„œ์˜ ์žฅ์ ์ด ์žˆ๋‹ค.