Page Replacement
Page Replacement Algorithm
Page Frame์ ํ ๋น
Page Size์ ๊ฒฐ์
"๋ฌผ๋ฆฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์ ๋ณํ์ ์ด์์ฒด์ ๊ฐ ๊ด์ฌํ์ง ์๋๋ค.ํ์ง๋ง ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ๊ฒฝ์ฐ์๋ ์ด์์ฒด์ ๊ฐ ์ ์ ์ผ๋ก ๊ด๋ฆฌํ๋ค"
page fault๊ฐ ๋ฐ์ํ์ ๋ disk์ ์๋ page๋ฅผ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ(page frame)์ ์ ์ฌํด์ผํ๋ค. ๋ง์ฝ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๋น page frame ๊ณต๊ฐ์ด ์๋ค๋ฉด, ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋ page frame๋ค ์ค ํ๋๋ฅผ ๊ณจ๋ผ disk๋ก swap outํ์ฌ ๋ฉ๋ชจ๋ฆฌ์ ๋น page frame ๊ณต๊ฐ์ ํ๋ณดํ๋ ๊ฒ์ page replacement
๋ผ๊ณ ํ๋ค.
- page replacement๋ ์ด์์ฒด์ ๊ฐ ๋ด๋นํ๊ณ ์๋ค.
- page replacement๋ฅผ ํ ๋, ๊ณง๋ฐ๋ก ์ฌ์ฉ๋์ง ์์ page๋ฅผ swap outํ๋ ๊ฒ์ด ๋ฐ๋์งํ๋ค.
- swap outํ page frame์ธ victim์ ๊ฒฐ์ ํ๊ณ disk๋ก swap outํ๋ค.
- ๋ง์ฝ victim์ผ๋ก ์ ํ๋ page frame์ ๋ด์ฉ์ด ๋ณ๊ฒฝ๋์๋ค๋ฉด, ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ๋ฉ๋ชจ๋ฆฌ์์ backing store(swap area)์ ๋ฐ์(write)ํด์ผํ๋ค.
- ๋ณ๊ฒฝ๋ ๋ด์ฉ์ด ์๋ค๋ฉด victim์ swap out๋ง ํด์ค๋ค.
- swap out๋ victim page frame์ page table entry์ bit๋ฅผ invalid๋ก ๋ณ๊ฒฝํ๋ค.
- empty page frame์ ์๋ก์ด page๋ฅผ ์ ์ฌํ๋ค.
- ์๋กญ๊ฒ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋ page์ ๋ํด page frame number๋ฅผ page table์ ์์ฑํ๊ณ bit๋ฅผ valid ๋ก ๋ณ๊ฒฝํ๋ค.
Page Replacement Algorithm(ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ)
์ด๋ page replacement๋ฅผ ์ํํ ๋, page fault rate์ ์ต์ํํ ์ ์๋ victim page๋ฅผ ์ ํํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
Replacement ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ
page reference string์ ๋ณด๊ณ ์ ํํ replacement ์๊ณ ๋ฆฌ์ฆ์ page fault rate์ ๊ตฌํ์ฌ ์ฑ๋ฅ์ ํ๊ฐํ๋ค.
Page Reference String ์ด๋?
page reference string์ด๋ ์๊ฐ ์์์ ๋ฐ๋ผ ์ฐธ์กฐ๋ page ๋ฒํธ๋ค์ ๋์ด์ ์๋ฏธํ๋ค.
๋ฏธ๋์ ์ฐธ์กฐ๋ page ๋ฒํธ(page reference string)๋ฅผ ๋ฏธ๋ฆฌ ์๊ณ ์๋ค๋ ๊ฐ์ ์ด ์ ์ ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๊ฐ์ฅ ๋จผ ๋ฏธ๋์ ์ฐธ์กฐ๋ page๋ฅผ ๊ต์ฒดํ๋ค.
- page fault rate์ด ๊ฐ์ฅ ์์ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
- ์ค์ ์์คํ ์์ ์ฌ์ฉ๋ ์ ์๊ธฐ ๋๋ฌธ์ Offline Optimal Algorithm์ผ๋ก ๋ถ๋ฅธ๋ค. (Beladyโs optimal algorithm, MIN, OPT ๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค)
๋์ ๋ฐฉ์
-
1, 2, 3, 4๋ฒ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ ๊ฒฝ์ฐ page fault๊ฐ ๋ฐ์ํ๋ค. (๋นจ๊ฐ์์ page fault๊ฐ ๋ฌ์์ ์๋ฏธํ๋ค)
-
1, 2๋ฒ์ด ๋ค์ ์ฐธ์กฐ๋๋ค โ hit! (์ฐ๋ณด๋ผ์์ ์ฐธ์กฐํ page๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์์์ ์๋ฏธํ๋ค)
-
5๋ฒ์ด ์ฐธ์กฐ๋์ง๋ง ๋ฉ๋ชจ๋ฆฌ์ ์๊ณ (page fault), ๋น์ด์๋ page frame์ด ์๋ค
ํ์ฌ ์์ ์ดํ ๋ฏธ๋์ page reference string (
1 2 3 4
)์ ์ฐธ๊ณ ํ์ฌ ๊ฐ์ฅ ๋จผ ๋ฏธ๋์ ์ฐธ์กฐ๋ page๋ฅผ ๊ต์ฒดํ๋ค . โ 1, 2, 3, 4 ์ค ๊ฐ์ฅ ๋จผ ๋ฏธ๋์ ์ฐธ์กฐ๋๋ 4๋ฒ page๋ฅผ swap outํ๊ณ ๊ทธ ์๋ฆฌ์ 5๋ฒ page๋ฅผ ์ ์ฌํ๋ค.
Optimal ์๊ณ ๋ฆฌ์ฆ์ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ ์ฑ๋ฅ์ upper bound๋ฅผ ์ ๊ณตํ๋ค.
Optimal ์๊ณ ๋ฆฌ์ฆ์ ๊ฒฝ์ฐ ์ฃผ์ด์ง page reference string์ ๋ํด ์ด 6๋ฒ์ page fault๊ฐ ๋ฐ์ํ๋ค. ๋์ผํ page referene string์ ๋ํด ๋ชจ๋ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด๋ page fault๊ฐ 6๋ฒ ๋ณด๋ค ๋ง์ด ๋ฐ์ํ๋ค
- Optimal ์๊ณ ๋ฆฌ์ฆ์ ๋ค๋ฅธ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ๋ค์ ์ฑ๋ฅ์ ๋ํ
upper bound
๋ฅผ ์ ๊ณตํ๋ค. (Optimal ์๊ณ ๋ฆฌ์ฆ๋ณด๋ค ์ฑ๋ฅ์ด ์ข์ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ๋ง๋ค ์ ์๋ค๋ ์๋ฏธ)
๋จผ์ swap in๋ page๋ฅผ ๋จผ์ swap outํ๋ page ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
๋์ ๋ฐฉ์
FIFO Anomaly : More Frames โ Less Page Fault
page frame์ ๋๋ ค์ฃผ๋ฉด ๋ณดํต์ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ์ข์์ง๋ง FIFO ์๊ณ ๋ฆฌ์ฆ์ ์คํ๋ ค ์ฑ๋ฅ์ด ์ ํ๋๋ค (9 page fault โ 10 page fault). ์ด๋ฌํ ๊ธฐ์ดํ ํ์์ FIFO Anomaly(Belady's Anomaly)
๋ผ๊ณ ํ๋ค.
๊ฐ์ฅ ๋ ์ต๊ทผ์ ์ฌ์ฉ๋(=๊ฐ์ฅ ์ค๋ ์ ์ ์ฐธ์กฐ๋) page๋ฅผ ๋จผ์ swap outํ๋ page ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
- ๊ฐ์ฅ ์ต๊ทผ์ ์ฐธ์กฐ๋ ํ์ด์ง๊ฐ ๊ฐ๊น์ด ๋ฏธ๋์ ์ฐธ์กฐ๋ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๊ณ ํ๋จํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
FIFO ์๊ณ ๋ฆฌ์ฆ๊ณผ LRU ์๊ณ ๋ฆฌ์ฆ์ ์ฐจ์ด์
FIFO
๋ ๊ฐ์ฅ ๋จผ์ ๋ค์ด์จ page๋ฅผ ๋จผ์ swap outํ๋ค. 1๋ฒ์งธ๋ก ๋ค์ด์จ page๋ ์ต๊ทผ๊น์ง ์ฐธ์กฐํ์์๋ ๋ถ๊ตฌํ๊ณ swap out ๋์์ด ๋๋ค.
LRU
๋ ๊ฐ์ฅ ์ค๋์ ์ ์ฌ์ฉ๋ page๋ฅผ swap outํ๋ค. 1๋ฒ์งธ๋ก ๋ค์ด์จ page๋ฅผ ๊ฐ์ฅ ์ต๊ทผ์ ์ฐธ์กฐํ๋ค๋ฉด swap out ๋์์์ ์ ์ธ๋๋ค(๋ฉ์ด์ง๋ค)
๋์ ๋ฐฉ์
-
1, 2, 3, 4๋ฒ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ ๊ฒฝ์ฐ page fault๊ฐ ๋ฐ์ํ๋ค.
-
1, 2๋ฒ ํ์ด์ง๋ฅผ ๋ค์ ์ฐธ์กฐํ๋ค โ ์ด๋ฏธ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด ์๋ค!(hit)
-
5๋ฒ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ๋ค โ page fault ๋ฐ์ โ victim page๋ฅผ ์ ํํด์ผ ํ๋ค.
OPT ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ค๋ฅด๊ฒ LRU๋ Online Replacement Algorithm์ด๋ฏ๋ก ๊ณผ๊ฑฐ page reference string(
3 4 1 2
)์ ์ฐธ๊ณ ํ์ฌ vicim page๋ฅผ ์ ํํด์ผํ๋ค.๊ฐ์ฅ ์ต๊ทผ์ ์ฌ์ฉ๋ ์์๋
2 โ 1 โ 4 โ 3
์ด๋ฏ๋ก victim page๋ 3๋ฒ ํ์ด์ง์ด๋ค. (FIFO ์๊ณ ๋ฆฌ์ฆ์ ๊ฒฝ์ฐ ๊ฐ์ฅ ๋จผ์ ๋ค์ด์จ 1๋ฒ ํ์ด์ง๊ฐ victim์ด ๋๋ค.)
์ฐธ์กฐ ํ์(reference count)๊ฐ ๊ฐ์ฅ ์ ์ page๋ฅผ swap outํ๋ page ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
- ๊ณผ๊ฑฐ์ ์ฐธ์กฐ ํ์๊ฐ ๋ง์ ํ์ด์ง๋ ๋ฏธ๋์๋ ์ฐธ์กฐ๋ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๊ณ ํ๋จํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
์ต์ ์ฐธ์กฐ ํ์๋ฅผ ๊ฐ์ง page๊ฐ ์ฌ๋ฌ๊ฐ ์๋ค๋ฉด?
LFU ์๊ณ ๋ฆฌ์ฆ ์์ฒด๋ ์ต์ ์ฐธ์กฐ ํ์๋ฅผ ๊ฐ์ง ์ฌ๋ฌ page๋ค ์ค ์์๋ก victim page๋ฅผ ์ ์ ํ๋ค.
- ์ฑ๋ฅ ํฅ์์ ์ํด ์ต์ ์ฐธ์กฐ ํ์์ page๋ค ์ค ๊ฐ์ฅ ์ค๋์ ์ ์ฐธ์กฐ๋ page๋ฅผ victim์ผ๋ก ์ ์ ํ๋๋ก ๊ตฌํํ ์ ์๋ค.
์ฅ๋จ์
์ฅ์
- LRU ์๊ณ ๋ฆฌ์ฆ์ ์ง์ ์ ์ฐธ์กฐ ์์ ๋ง ํ์ธํ์ง๋ง LFU๋ ์ฅ๊ธฐ์ ์ธ ์๊ฐ ๊ท๋ชจ๋ฅผ ํ์ธํ์ฌ victim์ ์ ์ ํ๊ธฐ ๋๋ฌธ์ page์ ์ธ๊ธฐ๋(์ฐธ์กฐ ํ์)๋ฅผ ์ ํํ ๋ฐ์ํ ์ ์๋ค.
๋จ์
- LFU๋ ์ฐธ์กฐ ์์ ์ ์ต๊ทผ์ฑ์ ๋ฐ์ํ์ง ๋ชปํ๋ค. (๊ฐ๊น์ด ํ์ฌ์๋ ๊ฑฐ์ ์ฐธ์กฐ๋์ง ์๋ page์ผ ์ง๋ผ๋ ๊ณผ๊ฑฐ์ ๋ง์ด ์ฐธ์กฐ๋์๋ค๋ฉด victim์ผ๋ก ์ ์ ๋ ๊ฐ๋ฅ์ฑ์ด ์ ๋ค)
- LFU์๊ณ ๋ฆฌ์ฆ์ LRU์๊ณ ๋ฆฌ์ฆ๋ณด๋ค ๊ตฌํ์ด ๋ณต์กํ๋ค.
LRU vs LFU
page frame์ 4๊ฐ๊ฐ ์๊ณ , page reference string์ 1 1 1 1 2 2 3 3 2 4 5
์ด๋ค. ์ด๋ 1,2,3,4๋ฒ ํ์ด์ง์์ victim์ ์ ํํด์ผํ๋ค.
-
LRU
: 1๋ฒ ํ์ด์ง๋ฅผ swap outํ๋คํ์ฌ ์์ ์ ๊ธฐ์ค์ผ๋ก ๊ฐ์ฅ ์ต๊ทผ์ ์ฌ์ฉ๋ ํ์ด์ง์ ์์๋
**4 โ 2 โ 3 โ 1
** ์ด๋ฏ๋ก 1๋ฒ ํ์ด์ง๋ฅผ swap out ํ๋ค.- ๋จ์ : LRU๋ ๊ฐ์ฅ ๋ง์ง๋ง ์ฐธ์กฐ ์์ ๋ง ๊ณ ๋ คํ๊ธฐ ๋๋ฌธ์ ํ์ด์ง์ ์ด ์ฐธ์กฐ ํ์๋ฅผ ๊ณ ๋ คํ์ง ๋ชปํ๋ค.
-
LFU
: 4๋ฒ ํ์ด์ง๋ฅผ swap outํ๋ค1, 2, 3, 4๋ฒ ํ์ด์ง์ ์ฐธ์กฐ ํ์๋ ๊ฐ๊ฐ 4, 3, 2, 1๋ฒ์ด๋ค. ๋ฐ๋ผ์ ๊ฐ์ฅ ์ฐธ์กฐ ํ์๊ฐ ์ ์ 4๋ฒ ํ์ด์ง๋ฅผ swap outํ๋ค.
- ๋จ์ : ์ฐธ์กฐ ํ์๋ง ๊ณ ๋ คํ๊ธฐ ๋๋ฌธ์ ๋ฏธ๋์ ์ฐธ์กฐ๋ ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํ์ง ๋ชปํ๋ค.
LRU์ LFU ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํ
-
LRU
โ LinkedList : O(1)ํ์ด์ง๋ค์ ์ฐธ์กฐ ์๊ฐ ์์์ ๋ฐ๋ผ LinkedList ํํ๋ก ์ค์ ์ธ์ด๋ค. (์์์ ์๋๋ก ๊ฐ ์๋ก ์ฐธ์กฐ ์์ ์ด ์ต๊ทผ์ด๋ค.)
-
page๊ฐ ์ฌ์ฐธ์กฐ๋๋ค๋ฉด
์ฐธ์กฐ ์์ ์ด ๊ฐ์ฅ ์ต๊ทผ์ด ๋๋ฏ๋ก ํด๋น page๋ฅผ LinkedList์ ๋งจ ๋์ผ๋ก ์ด๋์ํจ๋ค. โ
O(1)
-
victim page๋ฅผ ์ ํํ๋ค๋ฉด
LinkedList์ ๊ฐ์ฅ ์์ ์์นํ page๋ฅผ ์ ํํ๋ฉด ๋๋ค. โ
O(1)
(LRU ์๊ณ ๋ฆฌ์ฆ์์ victim page๋ฅผ ์ ํํ ๋ ๋น๊ต ์ฐ์ฐ์ด ํ์์๋ค)
-
-
LFU
โ Heap : O(logN)LFU ์๊ณ ๋ฆฌ์ฆ์ LinkedList๋ก ๊ตฌํํ ์ ์๋ค.
-
page๊ฐ ์ฌ์ฐธ์กฐ ๋๋ค๋ฉด
์ฐธ์กฐ ํ์๊ฐ 1 ์ฆ๊ฐ๋๋ค. ์ดํ ๋๋จธ์ง page๋ค๊ณผ ๊ฐ๊ฐ ๋น๊ตํ์ฌ LinkedList๋ฅผ ์ฌ์ ๋ ฌํด์ผํ๊ธฐ ๋๋ฌธ์ ์ต์ ์ ๊ฒฝ์ฐ
O(N)
์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
๋ฐ๋ผ์ LFU ์๊ณ ๋ฆฌ์ฆ์ Heap์ผ๋ก ๊ตฌํํ๋ค. (์ฐธ์กฐ ํ์๊ฐ ๊ฐ์ฅ ์ ์ page๊ฐ root ๋ ธ๋์ ์์นํ๋ค.)
-
page๊ฐ ์ฌ์ฐธ์กฐ๋๋ค๋ฉด
์ฐธ์กฐ ํ์๊ฐ 1 ์ฆ๊ฐ๋๋ค. ์ดํ heapify๋ฅผ ํตํด Heap์ ์ฌ๊ตฌ์ฑํ๋ค โ
O(logN)
-
victim page๋ฅผ ์ ํํ๋ค๋ฉด
root ๋ ธ๋์ ์์นํ page๋ฅผ ์ ํํ๋ฉด ๋๋ค. โ
O(1)
๊ทธ๋ฆฌ๊ณ heapify๋ฅผ ํตํด Heap์ ์ฌ๊ตฌ์ฑํ๋ค โ
O(logN)
-
์บ์ฑ ๊ธฐ๋ฒ์ด๋?
์บ์ฑ ๊ธฐ๋ฒ
์ด๋ ํ์ ๋ ๋น ๋ฅธ ๊ณต๊ฐ(์บ์)์ ์์ฒญ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด ๋์๋ค๊ฐ ํ์ ์์ฒญ์ ์บ์์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์๋น์คํ๋ ๊ธฐ๋ฒ์ด๋ค.
์บ์ฑ ๊ธฐ๋ฒ์ paging ์์คํ , cache memory, buffer caching, web caching ๋ฑ ๋ค์ํ ๋ถ์ผ์์ ์ฌ์ฉ๋๋ค.
CPU - cache memory - ๋ฉ์ธ๋ฉ๋ชจ๋ฆฌ
: CPU์ ๋ฉ์ธ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ ์กด์ฌํ๋ ๊ณ์ธต์ผ๋ก CPU๊ฐ ๋ฉ์ธ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ์์ฒญํ๊ธฐ ์ ์ cache memory์ ์์ฒญํ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋์ง ํ์ธํ๋ค.ํ์ผ์์คํ - buffer caching - Disk
: ํ์ผ์์คํ ์์ Read, Write ์์ฒญ์ ๋น ๋ฅด๊ฒ ์ ๊ณตํ๊ธฐ ์ํ ์บ์ฑ ๊ธฐ๋ฒ์ด๋ค.(paging ์์คํ ๊ณผ ๋์ผํ๊ฒ ๋น ๋ฅธ ๋งค์ฒด๋ฅผ cache๋ก ์ฌ๊ธฐ๊ณ , ๋๋ฆฐ ๋งค์ฒด๋ฅผ disk๋ก ์ฌ๊ธด๋ค)์น ํด๋ผ์ด์ธํธ- web caching - ์น ์๋ฒ
: ์น ํ์ด์ง์ ๋ํ ์์ฒญ์ web cache์ ์ ์ฅํด ๋์ด ๋์ผํ ์์ฒญ์ ํ๋ฉด ์ ์ฅํ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ๋ค.
์บ์ ์ด์์ ์๊ฐ ์ ์ฝ์ด ์๋ค.
paging ์์คํ ์ ๋ฉ๋ชจ๋ฆฌ๋ผ๋ ํ์ ๋๊ณ ๋น ๋ฅธ ๊ณต๊ฐ์ ์์ฒญ๋ page๋ฅผ ์ ์ฅํด๋๊ณ , ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฐ๋์ฐผ๋ค๋ฉด Replacement ์๊ณ ๋ฆฌ์ฆ์ ํตํด page๋ฅผ ๊ต์ฒดํ๋ค.
Replacement ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋๋ ๊ณง ์บ์ ์ด์ ์๊ฐ์ ๊ฒฐ์ ํ๊ณ ์บ์ ์ด์์๋ ์๊ฐ์ ์ ์ฝ์ด ์๋ค. ๋ค์๋งํด, Replacement ์๊ณ ๋ฆฌ์ฆ์์ ์ญ์ ํ ํญ๋ชฉ์ ๊ฒฐ์ ํ๋ ์์ ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค๋ฉด ์ค์ ์์คํ ์์ ์ฌ์ฉํ ์ ์๋ค.
- buffer caching, web caching์ ๊ฒฝ์ฐ
O(1) ~ O(logN)
๋ฒ์์ ์๊ฐ๋ณต์ก๋๊น์ง ํ์ฉํ๋ค.
paging ์์คํ ์์ LRU, LFU ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ ์ ์์๊น? โ NO
CPU๊ฐ ๋งค์๊ฐ๋ง๋ค ํ๋ก์ธ์คA์ ๋ช ๋ น์ด์ ์ํํ๊ธฐ ์ํด ๋ ผ๋ฆฌ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ์ ์ฃผ์๋ก ๋ณํํด์ผ ํ๋ค.
- page table์์ ๋ช ๋ น์ด๊ฐ ํฌํจ๋ page๊ฐ valid/invalidํ์ง ํ์ธํ๋ค.
- validํ๋ฉด ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ page frame์ ์ ๋ณด๋ฅผ CPU๋ก ์ฝ์ด ๋ค์ธ๋ค. (์ด ๋ ์ฃผ์๋ณํ์ ์ด์์ฒด์ ๊ฐ ๊ด์ฌํ์ง ์๊ณ ์ค๋ก์ง ํ๋์จ์ด์ ์ผ๋ก ์ผ์ด๋๋ค.)
- invalidํ๋ฉด page fault๋ก ์ธํด trap์ด ๋ฐ์ํ๋ค. CPU ์ ์ด๊ถ์ด ํ๋ก์ธ์ค์์ ์ด์์ฒด์ ๋ก ๋์ด๊ฐ๊ณ , disk IO๋ฅผ ํตํด disk์ ์๋ page๋ฅผ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ ๋ค, ํ์์ ๋ฐ๋ผ replacement ์๊ณ ๋ฆฌ์ฆ์ด ์ํ๋๊ณ page frame์ ์ ๋ณด๋ฅผ CPU๋ก ์ฝ์ด ๋ค์ธ๋ค.
์ฌ๊ธฐ์ replacement ์๊ณ ๋ฆฌ์ฆ์ ์ํํ๋ ์ฃผ์ฒด๋ ์ด์์ฒด์ ์ด๋ค
- LRU ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค๋ฉด ์ด์์ฒด์ ๋ page๋ค์ ์ฐธ์กฐ ์์ ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก victim page๋ฅผ ์ ํํด์ผํ๋ค.
- LFU ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค๋ฉด ์ด์์ฒด์ ๋ page๋ค์ ์ฐธ์กฐ ํ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก victim page๋ฅผ ์ ํํด์ผํ๋ค.
์ด ๋, ๋ฌธ์ ์ ์ ์ด์์ฒด์ ๊ฐ page์ ์ฐธ์กฐ ์์ ์ด๋ ์ฐธ์กฐ ํ์๋ฅผ ์๋ฒฝํ๊ฒ ์ ์ ์๋ค๋ ๊ฒ์ด๋ค.
-
page fault๊ฐ ๋ฐ์ํ๋ฉด
CPU ์ ์ด๊ถ์ด ์ด์์ฒด์ ๋ก ๋์ด๊ฐ๊ธฐ ๋๋ฌธ์ disk์์ page๋ฅผ ๋ฉ๋ชจ๋ฆฌ๋ก swap inํ๊ธฐ ๋๋ฌธ์ page์ ์ ๊ทผ ์์ ์ ์ ์ ์๋ค.
-
๋ฐ๋ฉด์ ์ฐธ์กฐํ๋ ค๋ page๊ฐ validํ ๊ฒฝ์ฐ์๋
CPU ์ ์ด๊ถ์ด ์ด์์ฒด์ ๋ก ๋์ด๊ฐ์ง ์๊ณ ํ๋์จ์ด์ ์ผ๋ก๋ง ์ฃผ์ ๋ณํ์ด ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ํด๋น page์ ๋ํ ์ ๊ทผ ์์ ์ ์ด์์ฒด์ ๊ฐ ์ ์ ์๋ค.
์ฆ, paging ์์คํ
(virtual memory ์์คํ
)์์ ์ด์์ฒด์ ๋ page์ ๋ํด ๋ฐ์ชฝ์ง๋ฆฌ ์ ๋ณด๋ง ์๊ธฐ ๋๋ฌธ์ LRU, LFU ์๊ณ ๋ฆฌ์ฆ์ ์ค์ paging ์์คํ
์์ ์ฌ์ฉํ ์ ์๋ค. (buffer caching, web caching์์๋ ์ฌ์ฉ ๊ฐ๋ฅ)
๊ทธ๋์ ์ค์ paging ์์คํ ์์๋ LRU, LFU๋์ Clock ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค.
Clock ์๊ณ ๋ฆฌ์ฆ
์ reference bit๊ฐ 0์ธ page๋ฅผ ์ฐพ์ ๋๊น์ง ํฌ์ธํฐ๋ฅผ ์๊ณ๋ฐฉํฅ์ผ๋ก ํ์นธ์ฉ ์ด๋ํ์ฌ ๊ต์ฒดํ page๋ฅผ ๊ณ ๋ฅด๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. (LRU์ ๊ทผ์ฌ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก์ Second chance ์๊ณ ๋ฆฌ์ฆ, NUR(Not Used Recently), NRU(Not Recently Used) ๋ฑ์ผ๋ก ๋ถ๋ฆฐ๋ค.)
- ํฌ์ธํฐ๋ฅผ ์๊ณ๋ฐฉํฅ์ผ๋ก ์ด๋ํ๋ฉด์ reference bit๊ฐ 1์ธ ๊ฒ์ ๋ชจ๋ 0์ผ๋ก ๋ฐ๊พผ๋ค.
- page์ reference bit๋ฅผ ์์ ํ๋ ์์ ์ ์ด์์ฒด์ ๊ฐ ์๋ ํ๋์จ์ด๋ก ์ํ๋๋ค.
- ํ ๋ฐํด๋ฅผ ๋๋์์์๋(second chance) ํด๋น page์ reference bit๊ฐ 0์ด๋ฉด ๊ต์ฒด๋๋ค.
Clock ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ ๋ฐฉ์ : reference bit์ modified bit(dirty bit)
reference bit = 1
: ์ต๊ทผ์ ์ฐธ์กฐ๋(Read๋) ํ์ด์ง๋ผ๋ ์๋ฏธ์ด๋ค.modified bit = 1
: ์ต๊ทผ์ ๋ณ๊ฒฝ๋(Write๋) ํ์ด์ง๋ผ๋ ์๋ฏธ์ด๋ค.
reference bit๊ฐ 0์ธ ํ์ด์ง๋ฅผ swap outํ ๋, ๋ง์ฝ modified bit๊ฐ 1์ด๋ฉด backing store(swap area)์ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ๋ฐ์ํด์ผ ํ๊ธฐ ๋๋ฌธ์ Disk IO๊ฐ ๋๋ฐ๋๋ค.
๋ฐ๋ผ์ reference bit๊ฐ 0์ด๋ฉด์ modified bit๊ฐ 0์ธ ํ์ด์ง๋ฅผ ์ฐ์ ์ ์ผ๋ก swap outํ๋๊ฒ ํจ์จ์ ์ด๋ค.
๋์ ๋ฐฉ์
- ๊ฐ ์ฌ๊ฐํ์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋ page frame์ด๋ค
- CPU๊ฐ ํน์ page๋ฅผ ์ฐธ์กฐํ๊ฒ ๋๋ฉด ํ๋์จ์ด์ ์ํด ํด๋น page์ reference bit๊ฐ 1๋ก ์ธํ ๋๋ค.
- ์ด์์ฒด์ ๋ ํฌ์ธํฐ๋ฅผ ์ด๋ํ๋ฉด์ page์ reference bit๋ฅผ ํ์ธํ๋ค.
-
reference bit = 1์ด๋ฉด, reference bit๋ฅผ 0์ผ๋ก ์ธํ ํ๊ณ ๋ค์ page์ reference bit๋ฅผ ๊ฒ์ฌํ๋ค.
-
second chance์ ๊ฒฝ์ฐ (ํ ๋ฐํด ๋๋์์จ ๊ฒฝ์ฐ) reference bit = 0์ด๋ฉด, ํด๋น page๋ฅผ swap outํ๋ค.
์ด ๋, modified bit๊ฐ 0์ด๋ฉด ๊ทธ๋ฅ swap out ํ์ง๋ง, 1์ด๋ฉด ๋ณ๊ฒฝ๋ ๋ด์ฉ์ backing store์ ๋ฐ์ํด์ผ ํ๊ธฐ ๋๋ฌธ์ Disk IO๊ฐ ๋๋ฐ๋์ด ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ๋ค. ๋ฐ๋ผ์ modified bit๊ฐ 1์ด๋ฉด ํด๋น page๋ฅผ swap outํ์ง ์๊ณ modified bit๋ฅผ 0์ผ๋ก ๋ณ๊ฒฝํ๋ค.
-
ํ๋ก๊ทธ๋จ์ ์ํํ๊ฒ ์คํํ๊ธฐ ์ํด์ page fault๋ฅผ ์ ๊ฒ ๋ฐ์ํ๋ฉด์ ์ผ๋ จ์ ํ์ด์ง๋ค์ ๋ฉ๋ชจ๋ฆฌ์ ๋์์ ์ ์ฌ๋๋๊ฒ ์ค์ํ๋ค. ๊ฒฐ๊ตญ ๊ฐ ํ๋ก์ธ์ค์ ํ ๋น๋๋ page frame์ ์๊ฐ ์ํํ ํ๊ฒฝ์ ๊ฒฐ์ ์ง๋๋ค.
์ด ๋ ํ๋ก์ธ์ค์๊ฒ page frame์ ์ผ๋ง๋งํผ ํ ๋นํ ๊ฒ์ธ์ง์ ๋ํ ๋ฌธ์ ๋ฅผ Allocation Problem
์ด๋ผ๊ณ ํ๋ค.
Allocation(ํ ๋น)์ด ์ ํ์ํ ๊น?
CPU๋ ํ๋์ ๋ช
๋ น์ ์คํํ ๋ ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ ์ค code, data, stack์ด๋ผ๋ ๊ฐ๊ธฐ ๋ค๋ฅธ ์์ญ์ ์ฐธ์กฐํ๋ค. ๋ค์ ๋งํด, CPU๋ ๋ช
๋ น์ ์คํํ ๋ ์ฌ๋ฌ ํ์ด์ง๋ฅผ ๋์์ ์ฐธ์กฐํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ํํ ๋ช
๋ น์ด ์ํ์ ์ํด ํ ๋น๋์ด์ผ ํ ์ต์ page frame ์
๊ฐ ์กด์ฌํ๋ค.
-
์๋ฅผ ๋ค์ด, ๋ฐ๋ณต๋ฌธ์ ๊ตฌ์ฑํ๋ ํ์ด์ง๋ค์ ํ๋์ ์ต์ ํ ๋น๋์ผ๋ก ๊ฐ์ฃผํ์ฌ ํ๊บผ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น๋๋ ๊ฒ์ด ์ ๋ฆฌํ๋ค. ๋ง์ฝ ์ต์ํ์ ํ ๋น๋์ด ์ ํด์ง์ง ์๋๋ค๋ฉด, ๋งค loop๋ง๋ค page fault๊ฐ ๋ฐ์ํ ์ ์๋ค.
for ๋ฌธ์ ๊ตฌ์ฑํ๋ ํ์ด์ง๊ฐ 3๊ฐ์ผ ๋, page frame์ 3๊ฐ ํ ๋นํ๋ฉด ๋ฐ๋ณต๋ฌธ์ด ์คํ๋๋ ๋์ page fault๊ฐ ๋ฐ์ํ์ง ์๋๋ค. ํ์ง๋ง 2๊ฐ์ page frame์ ํ ๋นํ๋ฉด ์คํ๋ ๋๋ง๋ค page fault๊ฐ ๋ฐ์ํ๋ค.
Page Frame Allocation Algorithm
Equal Allocation(๊ท ๋ฑ ํ ๋น)
: ๋ชจ๋ ํ๋ก์ธ์ค์๊ฒ page frame์ ๊ท ์ผํ๊ฒ ํ ๋นํ๋คProportional Allocation(๋น๋ก ํ ๋น)
: ํ๋ก์ธ์ค ํฌ๊ธฐ์ ๋น๋กํ์ฌ page frame์ ํ ๋นํ๋คPriority Allocation(์ฐ์ ์์ ํ ๋น)
: ํ๋ก์ธ์ค์ ์ฐ์ ์์์ ๋ฐ๋ผ page frame์ ๋ค๋ฅด๊ฒ ํ ๋นํ๋ค(๋น์ฅ CPU์์ ์คํ๋ ํ๋ก์ธ์ค์ ๊ทธ๋ ์ง ์์ ํ๋ก์ธ์ค๋ก ๊ตฌ๋ถํ๋ค)
์์ ๊ฐ์ page frame ํ ๋น ์๊ณ ๋ฆฌ์ฆ์ผ๋ก page fault ๋ฐ์๋ฅ ์ด ์ต์ํ ๋ ์ ์๋๋ก page frame์ ํ ๋นํด์ผ ํ๋ค. ํ์ง๋ง Replacement ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค ๋ณด๋ฉด ์ ์ ๋ก page fault๋ฅผ ์ต์ํํ๋ ๋ฐฉํฅ์ผ๋ก page frame์ด ํ ๋น๋๋ ํจ๊ณผ๊ฐ ์๋ค.
Global Replacement vs Local Replacement
Global Replacement
: ํ์ด์ง ๊ต์ฒด ์ ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ ํ ๋น๋ page frame์ swap outํ๋ ๋ฐฉ๋ฒ์ด๋ค.- ์ฌ๋ฌ ํ๋ก์ธ์ค๋ค๊ณผ ๊ฒฝ์ํ์ฌ page frame์ ๋ง์ด ๊ฐ์ง ๋๋ ์๊ณ , ์ ๊ฒ ๊ฐ์ง ๋๋ ์๋ค.
- FIFO, LRU, LFU, Working Set, PFF ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ฉด Global Replacement ๋ฐฉ์์ผ๋ก ๋์ํ๋ค.
Local Replacement
: ํ์ด์ง ๊ต์ฒด ์ ํ๋ก์ธ์ค์๊ฒ ํ ๋น๋ page frame ๋ด์์ victim page๋ฅผ ๊ณจ๋ผ swap outํ๋ ๋ฐฉ๋ฒ์ด๋ค.- ํ๋ก์ธ์ค์ page frame์ด ๊ณ ์ ์ ์ผ๋ก ํ ๋น๋๋ค.
- FIFO, LRU, LFU ์๊ณ ๋ฆฌ์ฆ์ ํ๋ก์ธ์ค ๋ณ๋ก ์ด์ํ ๋ Local Replacement ๋ฐฉ์์ผ๋ก ๋์ํ๋ค.
ํ๋ก์ธ์ค์ ์ํํ ์ํ์ ํ์ํ ์ต์ํ์ page frame์ ํ ๋น ๋ฐ์ง ๋ชปํ ๊ฒฝ์ฐ Thrashing
์ด ๋ฐ์ํ๋ค.
X์ถ์ ๋ฉ๋ชจ๋ฆฌ์ ๋์ ์ฌ๋ผ์ ์๋ ํ๋ก๊ทธ๋จ์ ๊ฐ์(degree of multiprogramming)์ด๊ณ , Y์ถ์ CPU ์ด์ฉ๋ฅ (CPU utilization)์ด๋ค.
-
๋ฉ๋ชจ๋ฆฌ์ ํ๋ก๊ทธ๋จ ํ๋๋ง ์ฌ๋ผ์ ์์ผ๋ฉด CPU ์ด์ฉ๋ฅ ์ด ๋๋จํ ๋ฎ๋ค.
ํ๋ก๊ทธ๋จ์ด CPU๋ฅผ ์ฌ์ฉํ๋ค๊ฐ IO ์์ ์ ํ๋ฉด blocked ์ํ๊ฐ ๋์ด CPU ์์์ ์์ฌ ์ํ๊ฐ ๋๊ธฐ ๋๋ฌธ์ CPU ์ด์ฉ๋ฅ ์ด ๋ฎ๋ค.
-
๋ฉ๋ชจ๋ฆฌ์ ํ๋ก๊ทธ๋จ์ด ์ฌ๋ฌ ๊ฐ ์ฌ๋ผ์ ์๋ค๋ฉด CPU ์ด์ฉ๋ฅ ์ด ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์๋ ํ๋ก๊ทธ๋จ์ ์์ ๋ฐ๋ผ CPU ์ด์ฉ๋ฅ ์ด ์ฆ๊ฐํ๋ค.
-
๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์๋ ํ๋ก๊ทธ๋จ์ ์๊ฐ ์ด๋ ์ง์ ์ ๋๊ธฐ๋ฉด Thrashing์ด ๋ฐ์ํ์ฌ CPU ์ด์ฉ๋ฅ ์ด ๋จ์ด์ง๋ค.
Thrashing์ ๊ตด๋
๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์๋ ํ๋ก์ธ์ค๊ฐ ๋ง์์ง๋ฉด
โ ๊ฐ ํ๋ก์ธ์ค์๊ฒ page frame์ด ์ ๊ฒ ํ ๋น๋์ด page fault๊ฐ ๋น๋ฒํ ๋ฐ์ํ๋ค
โ ์ด๋ CPU ์ด์ฉ๋ฅ ์ ๋ฎ์ถ๊ณ
โ ์ด์์ฒด์ ๋ ๋ฎ์ CPU ์ด์ฉ๋ฅ ์ ๋ณด๊ณ MPD(Multiprogramming Degree)๋ฅผ ๋ํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ์ ๋ ๋ง์ ํ๋ก๊ทธ๋จ์ ์ฌ๋ฆฌ๊ฒ ๋๋ค.
โ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ํ๋ก๊ทธ๋จ์ด ๋ ๋ง์์ง๊ณ
โ ํ๋ก์ธ์ค ๋ง๋ค ํ ๋น๋ page frame ์๊ฐ ๋์ฑ ๊ฐ์ํ์ฌ
โ page fault๊ฐ ๋งค์ฐ ๋น๋ฒํด์ง๊ณ swap in/swap out์ด ๋ง์์ง๋ค (IO์์ ์ด ๋ง์์ง๋ค)
โ ๊ฒฐ๊ตญ CPU ์ด์ฉ๋ฅ ์ด ๋ฎ์์ง๊ณ
โ low throughput์ ์ผ๊ธฐํ๋ค.
์์ ๊ฐ์ ์
์ํ์ Thrashing
์ด๋ผ๊ณ ํ๋ค.
Thrashing ์๋ฐฉ๋ฒ โ Working-Set Algorithm, PFF(Page-Fault Frequency) Algorithm
MPD(Multiprogramming Degree)๋ฅผ ์กฐ์ ํ์ฌ ๊ฐ ํ๋ก๊ทธ๋จ์ด ์ํํ ์ํ์ ์ํ ์ต์ํ์ page frame์ ํ๋ณดํ ์ ์๋๋ก ํด์ค์ผ ํ๋ค. ์ด๋ฅผ ์ํด Working-Set Algorithm
๋๋ PFF Algorithm
์ด ํ์ํ๋ค.
Locality of Reference (์ฐธ์กฐ์ ์ง์ญ์ฑ)
์ฐธ์กฐ์ ์ง์ญ์ฑ
์ด๋ ํ๋ก๊ทธ๋จ์ด ํน์ ์๊ฐ ๋์ ๋ฉ๋ชจ๋ฆฌ์ ์ผ์ ์์ญ๋ง ์ง์ค์ ์ผ๋ก ์ฐธ์กฐํ๋ค๋ ํน์ฑ์ด๋ค.
- loop๋ฅผ ์คํํ ๋, loop๋ฅผ ๊ตฌ์ฑํ๋ page๋ง ์ง์ค์ ์ผ๋ก ์ฐธ์กฐ๋๊ณ function์ ์คํํ ๋, function์ ๊ตฌ์ฑํ๋ page๋ง ์ง์ค์ ์ผ๋ก ์ฐธ์กฐ ๋๋ค.
Locality Set, Working Set
ํน์ ์๊ฐ์ ์ง์ค์ ์ผ๋ก ์ฐธ์กฐ๋๋ page๋ค์ ์งํฉ์ Locality Set
์ด๋ผ๊ณ ํ๊ณ , Working-Set Algorithm์์ Locality Set์ Working Set
์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. (์ผ๋ฐ์ ์ผ๋ก Working Set์ด๋ผ๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํ๋ค)
Working-Set Model
Working Set ๋ชจ๋ธ์์๋ ํ๋ก์ธ์ค์ Working Set ์ ์ฒด๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์์ด์ผ ์ํ๋๊ณ , ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๋ชจ๋ page ์ ๋ฐ๋ฉํ ํ swap out(suspended)ํ์ฌ Thrashing์ ๋ฐฉ์งํ๋ค.
- ํน์ ํ๋ก๊ทธ๋จ์ Working Set์ด 5๊ฐ์ page์ผ๋ก ๊ตฌ์ฑ๋๋ ๊ฒฝ์ฐ์ ํ ๋น ๊ฐ๋ฅํ page์ด 3๊ฐ ๋ฟ์ด๋ผ๋ฉด, ํด๋น ํ๋ก์ธ์ค๋ ์ ์ฒด page๋ฅผ ๋ฐ๋ฉํ๊ณ disk๋ก swap out๋๋ค.
Working-Set Algorithm
ํน์ ํ๋ก์ธ์ค์ Working Set์ ๊ณผ๊ฑฐ๋ฅผ ํตํด ์ถ์ ํด์ผ ํ๋ค.
-
์๊ฐ Ti์์์ Working Set :
WS(Ti)
=Time interval [Ti - ฮ, Ti] ์ฌ์ด์ ์ฐธ์กฐ๋ ์๋ก ๋ค๋ฅธ page๋ค์ ์งํฉ
ํ๋ก์ธ์ค๊ฐ ฮ (window size)๋งํผ์ ๊ณผ๊ฑฐ ์๊ฐ๋์ ์ฐธ์กฐํ page๋ค์ Working Set์ด๋ผ ๊ฐ์ฃผํ์ฌ Working Set์ ํฌํจ๋ page๋ค์ ๋ฉ๋ชจ๋ฆฌ์์ ์ ์งํ๊ณ ํฌํจ๋์ง ์์ page๋ค์ swap out์ํจ๋ค.
-
Working Set์ ํฌ๊ธฐ๋ ๋งค๋ฒ ๋ฐ๋๋ค (
WS(t1) = {1, 2, 5, 6, 7}
โWS(t2) = {3, 4}
)๋ค์ ๋งํด, ์ฐธ์กฐ๋ page๋ฅผ ฮ์๊ฐ ๋งํผ๋ง ์ ์งํ๊ณ swap out ์ํจ๋ค.
ํ๋ก์ธ์ค๋ค์ Working Set size์ ํฉ์ด page frame์ ์๋ณด๋ค ํด ๊ฒฝ์ฐ
- ์ผ๋ถ ํ๋ก์ธ์ค๋ฅผ swap out์์ผ(MPD๋ฅผ ์ค์ฌ์) ๋จ์ ํ๋ก์ธ์ค์ Working Set์ ์ฐ์ ์ ์ผ๋ก ์ถฉ์กฑ์์ผ์ค๋ค.
Working Set์ ํฌํจ๋ page๋ค์ ๋ค ํ ๋นํ๊ณ ๋ page frame์ด ๋จ๋๋ค๋ฉด
- swap out ๋์๋ ํ๋ก์ธ์ค๋ค์๊ฒ Working Set์ ํ ๋นํ์ฌ MPD๋ฅผ ๋ํ๋ค.
ํน์ ํ๋ก๊ทธ๋จ์ Page Fault Rate์ ์กฐ์ฌํ์ฌ page frame์ ๋์ ์ผ๋ก ํ ๋นํด์ฃผ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
- ํ๋ก์ธ์ค์ page fault rate์ด ๋๋ค๋ฉด ํด๋น ํ๋ก์ธ์ค์ Working Set์ด ๋ฉ๋ชจ๋ฆฌ์ ๋ณด์ฅ๋์ด์์ง ์๋ค๊ณ ๊ฐ์ฃผํ์ฌ page frame์ ๋ ํ ๋นํด์ค๋ค.
page fault rate์ ๋ํด ์ํ๊ฐ(upper bound), ํํ๊ฐ(lower bound)๋ฅผ ๋๋ค.
- ํด๋น ํ๋ก์ธ์ค์ page fault rate์ด ์ํ๊ฐ์ ๋๊ธฐ๋ฉด page frame์ ๋ ๋ง์ด ํ ๋นํด ์ค๋ค.
- ํด๋น ํ๋ก์ธ์ค์ page fault rate์ด ํํ๊ฐ ๋ณด๋ค ์์ผ๋ฉด page frame ์๋ฅผ ์ค์ธ๋ค.
๋ฉ๋ชจ๋ฆฌ์ ๋น page frame์ด ์๋ค๋ฉด ์ผ๋ถ ํ๋ก์ธ์ค๋ฅผ disk๋ก swap out ์ํจ๋ค.
paging ์์คํ ์์ ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ์ ๋์ผํ ํฌ๊ธฐ์ page ๋จ์๋ก ์๋ฅด๊ณ , ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ๋ page์ ๋์ผํ ํฌ๊ธฐ์ page frame์ผ๋ก ์๋ฅธ๋ค.
page size๊ฐ ์์ผ๋ฉด?
- page์ ๊ฐ์๊ฐ ๋ง์์ง๊ณ , page table์ ํฌ๊ธฐ๊ฐ ์ปค์ง๋ค
- ๋ด๋ถ ์กฐ๊ฐ์ ๊ฐ์๊ฐ ๊ฐ์ํ๋ค.
- ํ์ํ ์ ๋ณด๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ์ด์ฉ์ด ํจ์จ์ ์ด๋ค
page size๊ฐ ํฌ๋ฉด?
-
Locality ํ์ฉ ์ธก๋ฉด์์๋ page size๊ฐ ํด์๋ก ์ข๋ค.
-
Disk Transfer์ ํจ์จ์ฑ ์ธก๋ฉด์์ page size๊ฐ ํด์๋ก ์ข๋ค.
ํ ๋ฒ์ ๋์คํฌ ํค๋ ์์ง์์ผ๋ก ๋ง์ ์์ ๋ด์ฉ์ ์ฝ์ด์ค๋ ๊ฒ์ด ์ข๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐํจ๊ฒฝ ๊ต์๋ ์ด์์ฒด์ ๊ฐ์
ํ์ด์ง ๊ต์ฒด๊ฐ ์ ํ์ํ๊ฐ์?
ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์๋ ๋ฌด์์ด ์๋์? ๊ฐ๊ฐ์ ํน์ง์?
FIFO์ LRU์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
LRU์ LFU์ ๋น๊ตํด๋ณด์ธ์. LRU์ LFU ์๊ณ ๋ฆฌ์ฆ์ ์ด๋ป๊ฒ ๊ตฌํ๋์๋์ง ์์๋์? ๊ฐ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๋งํด๋ณด์ธ์
ํ์ด์ง ์์คํ ์์ LRU, LFU ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ ์ ์๋์? ๊ทธ ์ด์ ๋? ๊ทธ๋ผ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ ํ์ด์ง ์์คํ ์ ์ ์ฉํ ๊น์?
Clock ์๊ณ ๋ฆฌ์ฆ์ ๋์๋ฐฉ์์ ๋งํด์ฃผ์ธ์
Thrashing์ด ๋ฌด์์ธ๊ฐ์? ์ด๋ฅผ ์๋ฐฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์
Page ์ฌ์ด์ฆ๊ฐ ์์ผ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ํฌ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?