Demand Paging
โข
ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋ ๊ทธ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ์ฃผ์๊ณต๊ฐ์ ํ์ด์ง๋ฅผ ์ ๋ถ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๊บผ๋ฒ์ ์ฌ๋ฆฌ๋ ๊ฒ ์๋๋ผ demand paging ๊ธฐ๋ฒ์ ์ฌ์ฉ
โข
์์ฒญ์ด ๋์ ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฐ๋ค.
โข
IO ์์ ๊ฐ์
โฆ
ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ๋ ์ฃผ์๊ณต๊ฐ ์ค์์ ์ค์ ๋ก ๋น๋ฒํ ์ฌ์ฉ๋๋ ๋ถ๋ถ์ ์ง๊ทนํ ์ ํ์
โฆ
์ข์ ์ํํธ์จ์ด์ผ์๋ก ๋ฐฉ์ด์ ์ธ ์ฝ๋๊ฐ ๋๋ถ๋ถ
โฆ
์ด๋ฐ ๋ฐฉ์ด์ ์ธ ์ฝ๋๋ฅผ ํ๋ฒ์ ์ฌ๋ฆฌ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น
โข
๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๊ฐ์
โข
๋น ๋ฅธ ์๋ต ์๊ฐ
โข
๋ ๋ง์ ํ๋ก๊ทธ๋จ ์์ฉ ๊ฐ๋ฅ
โข
์ฐ์ธก์ ์ํต์ ๋์คํฌ(swap area)
โข
valid/invalid bit ์ ์ฌ์ฉ
โฆ
invalid
โช
์ฌ์ฉ๋์ง ์๋ ์ฃผ์ ์์ญ
โช
ํ์ด์ง๊ฐ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๊ฒฝ์ฐ
โฆ
์ฒ์์๋ ๋ชจ๋ page entry ๊ฐ invalid ๋ก ์ด๊ธฐํ
โฆ
address translation ์ invalid bit ์ด set ๋์ด์์ผ๋ฉด page fault
โข
์์
โฆ
1๋ฒ ํ์ด์ง์ ์ ๊ทผํ๋ ค๊ณ ๋ณด๋ page table ์์ invalid bit ์ด๋ค. ๊ทธ๋ฌ๋ฉด ์ด ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์๋ค๋ ๋ป
โฆ
๋์คํฌ์์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฌ๋ฆฐ๋ค. โ IO ์์
โ ์ฌ์ฉ์ ํ๋ก์ธ์ค๊ฐ ์ง์ ๋ชปํ๋ ์ผ
โฆ
page fault
โฆ
๊ทธ๋ฌ๋ฉด CPU ๋ ์ด์ ์ฒด์ ์ ๋์ด๊ฐ๋ค.
โฆ
์ด์ ์ฒด์ ๋ fault ๋ ํ์ด์ง๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฐ๋ค.
page fault
โข
invalid page ๋ฅผ ์ ๊ทผํ๋ฉด MMU๊ฐ trap ์ ๋ฐ์์ํด
โข
kernel mode ๋ก ๋ค์ด๊ฐ์ page fault handler ๊ฐ invoke ๋จ
โข
page fault ์ฒ๋ฆฌ ๋ฃจํด
1.
invalid reference ์ธ์ง ํ์ธ(bad address, protection violation) โ process ๋ฅผ abort ํ๋ค.
2.
๋น์ด์๋ page frame ์ ๊ฐ์ ธ์ค๊ณ ๋น ํ์ด์ง๊ฐ ์์ผ๋ฉด ์ซ์๋ด๊ณ ๋บ์ด์จ๋ค.
3.
ํด๋น ํ์ด์ง๋ฅผ disk ์์ memory ๋ก ์ฝ์ด์จ๋ค.
a.
disk IO ๊ฐ ๋๋๊ธฐ๊น์ง ์ด ํ๋ก์ธ์ค๋ CPU ๋ฅผ ์ ์ ๋นํจ(block)
b.
disk read ๊ฐ ๋๋๋ฉด page table entry ๋ฅผ ๊ธฐ๋กํ๊ณ valid ๋ก ๋ฐ๊พผ๋ค.
c.
ready queue ์ process ๋ฅผ insert ํ๋ค.
โข
emtry frame ์ด ์๋ ๊ฒฝ์ฐ page replacement ๋ฅผ ํด์ผํ๊ณ replacement algorithm ์ผ๋ก page fault rate ์ ์ต์ํํ๋ค.
Replace Algorithm
optimal algorithm
โข
๊ฐ์ฅ ๋จผ ๋ฏธ๋์ ์ฐธ์กฐ๋๋ page ๋ฅผ replace
โข
์ด๋ค ํ์ด์ง๊ฐ ์ฐธ์กฐ๋ ์ง ์๋ค๋ ๊ฐ์ ์ด ์์ด์ผ ํ๋ค.
โข
๊ทธ๋์ ์ค์ ๋ก ์ ์ฉํ์ง๋ ๋ชปํ๋ค.
โข
์ค์ ์์คํ
์์ ์ฌ์ฉํ๋ ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ ์ฑ๋ฅ์ ๋ํ upper bound ๋ฅผ ์ ๊ณตํ๋ค.
FIFO algorithm
โข
๊ฐ์ฅ ๋จผ์ ๋ค์ด์จ ๊ฒ์ replace
โข
๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๋๋ฐ ์ฑ๋ฅ์ด ๋๋น ์ง๋(fault ๋ฅผ ๋ ๋ง์ด ๋) ํน์ด์ ์ด ์๋ค.
Least Recently Used algorithm
โข
๊ฐ์ฅ ์ค๋ ์ ์ ์ฐธ์กฐ๋ ๊ฒ์ replace
Least Frequently Used algorithm
โข
์ฐธ์กฐ ํ์๊ฐ ๊ฐ์ฅ ์ ์ ํ์ด์ง๋ฅผ replace
โข
์ต์ ์ฐธ์กฐ ํ์๊ฐ ์ฌ๋ฌ๊ฐ์ธ ๊ฒฝ์ฐ
โฆ
LUF ์์ฒด์์๋ ์์๋ก ์ ์
โฆ
์ฑ๋ฅ ํฅ์์ ์ํด ์ฌ๋ฌ ํ์ด์ง ์ค PRU ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ ๊ฐ๋ฅ
โข
์ฅ๋จ์
โฆ
์ฅ๊ธฐ์ ์ธ ์๊ฐ ๊ท๋ชจ๋ฅผ ๋ณด๊ธฐ ๋๋ฌธ์ page ์ ์ธ๊ธฐ๋ ๋ฐ์
โฆ
์ต๊ทผ์ฑ ๋ฐ์ ๋ถ๊ฐ
โฆ
LRU ๋ณด๋ค ๊ตฌํ์ด ๋ณต์ก
LRU vs LFU
LRU ๋ ๋ฆฌ์คํธ๋ก ๊ตฌํํ ๊ฒฝ์ฐ ์๊ฐ ๋ณต์ก๋๊ฐ O(1)
LFU ๋ ๋ฆฌ์คํธ๋ก ๊ตฌํํ๋ฉด O(N) ์๊ฐ ๋ณต์ก๋
LFU ๋ฅผ ํ์ผ๋ก ๊ตฌํํ๋ฉด O(logN)
CPU๊ฐ ์์ฒญํ ํ์ด์ง ์์
1,1,1,1,2,2,3,3,2,4,5
โข
LRU ๋ ๊ฐ์ฅ ์ค๋ ์ ์ ์ฐธ์กฐํ ํ์ด์ง๋ฅผ ์ญ์ - 1๋ฒ ํ์ด์ง(๋๋์ง ์์)
โข
LFU ๋ ๊ฐ์ฅ ์ฐธ์กฐ ํ์๊ฐ ์ ์ ํ์ด์ง๋ฅผ ์ญ์ - 4๋ฒ ํ์ด์ง(๋์๊ด ์ฑ
๋์ถ ์์)
โฆ
๊ฐ๊ณผํ๋ ๊ฒ์ ์๊ฐ์ ๋ฐ๋ฅธ ์์ธก์ด ๋ถ์กฑ
๋ค์ํ ์บ์ฑ ํ๊ฒฝ
โข
์บ์ฑ ๊ธฐ๋ฒ
โฆ
ํ์ ๋ ๋น ๋ฅธ ๊ณต๊ฐ์ ์์ฒญ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด ๋์๋ค๊ฐ ํ์ ์์ฒญ์ ์บ์๋ก๋ถํฐ ์ง์ ์๋น์คํ๋ ๋ฐฉ์
โฆ
paging system ์ธ์๋ cache memory, buffer caching, web caching ๋ฑ ๋ค์ํ ๋ถ์ผ์์ ์ฌ์ฉ
โข
์บ์ ์ด์์ ์๊ฐ ์ ์ฝ
โฆ
๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์์ ์ญ์ ํ ํญ๋ชฉ์ ๊ฒฐ์ ํ๋ ์ผ์ ์ง๋์น๊ฒ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ ์ค์ ์์คํ
์์ ์ฌ์ฉํ ์ ์์
โข
์ฌ์ค LRU, LFU ๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง ๊ธฐ๋ฒ์์ ์ฌ์ฉํ ์ ์๋ค.
โฆ
LRU, LFU ๋ฑ ์ด์ ์ฐธ์กฐ ๋ด์ฉ์ ์ ์ฅํ๋ ค๋ฉด ํด๋น ์๊ณ ๋ฆฌ์ฆ ๋ก์ง์ด ์ํ๋์ด์ผ ํ๋๋ฐ, page ๊ฐ ์ด๋ฏธ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๊ฒฝ์ฐ์๋ OS ๊ฐ CPU ์ ์ด๊ถ์ ์ป์ง ๋ชปํด ํด๋น ์๊ณ ๋ฆฌ์ฆ ๋ก์ง ์ํ์ ํ ์๊ฐ ์๋ค.
Clock algorithm
โข
LRU ๊ทผ์ฌ(approximation) ์๊ณ ๋ฆฌ์ฆ
โข
second chance algorithm, Not Used Recently ๋๋ Not Recently Used ๋ฑ์ผ๋ก ๋ถ๋ฆผ
โข
โข
reference bit ์ ์ฌ์ฉํ๋ค. ํ์ด์ง ์ฐธ์กฐ๊ฐ ๋ฐ์ํ๋ฉด ํ๋์จ์ด์์ ํด๋น ํ์ด์ง์ reference bit ์ 1๋ก ๋ฐ๊พผ๋ค.
โข
0 ์ ์๋ฏธ๋ ์๊ณ ๋ฐ๋์ด ํ๋ฐํด ๋๋ ๋์ ์ฐธ์กฐ๊ฐ ์์๋ค.
โข
1 ์ ์ต์ ํ ๋ฒ ์ฐธ์กฐ๊ฐ ์์๋ค. ๊ทธ๋์ OS ๊ฐ ๋ด์ซ์ ํ์ด์ง ์ฐพ์ ๋ 1์ด๋ฉด 0์ผ๋ก ๋ฐ๊พธ๊ณ ๋ค์์ผ๋ก ๋์ด๊ฐ
โข
modified bit(dirty bit) ์ ํจ๊ป ์ฌ์ฉํด์ ์ฐธ์กฐ ์ด์ธ์๋ ๋ณ๊ฒฝ ํ์ด์ง์ ๋ํด์๋ ๊ธฐ๋ก ์ ์ฅ
page frame allocation
โข
๊ฐ ํ๋ก์ธ์ค์ ์ผ๋ง๋งํผ์ page frame ์ ํ ๋นํ ๊ฒ์ธ๊ฐ?
โข
allocation ์ ํ์์ฑ
โฆ
๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ ๋ช
๋ น์ด ์ํ์ ๋ช
๋ น์ด, ๋ฐ์ดํฐ ๋ฑ ์ฌ๋ฌ ํ์ด์ง ๋์์ ์ฐธ์กฐ
โฆ
๋ช
๋ น์ด ์ํ์ ์ํด ์ต์ํ ํ ๋น๋์ด์ผ ํ๋ frame ์ ์๊ฐ ์์
โฆ
loop ๋ฅผ ๊ตฌ์ฑํ๋ page ๋ค์ ํ๊บผ๋ฒ์ allocate ๋์ด์ผ ํจ
โฆ
์ต์ํ์ allocation ์ด ์์ผ๋ฉด ๋งค loop ๋ง๋ค page fault
โข
equal allocation: ๋ชจ๋ ํ๋ก์ธ์ค์ ๋๊ฐ์ ๊ฐฏ์ ํ ๋น
โข
proportional allocation: ํ๋ก์ธ์ค ํฌ๊ธฐ์ ๋น๋กํ์ฌ ํ ๋น
โข
priority allocation: ํ๋ก์ธ์ค์ priority ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ํ ๋น
global replacement
โข
replace ์ ๋ค๋ฅธ process ์ ํ ๋น๋ frame ์ ๋นผ์์ ์ ์๋ค.
โข
process ๋ณ ํ ๋น๋ ์กฐ์ ๊ฐ๋ฅ
โข
working set, PFF ์๊ณ ๋ฆฌ์ฆ
local replacement
โข
์์ ์๊ฒ ํ ๋น๋ frame ๋ด์์๋ง replacement