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์ ๋๋ ์ ๊ด๋ฆฌํ ์ ์๋ค๋ ํจ์จ์ ์ธก๋ฉด์์์ ์ฅ์ ์ด ์๋ค.