Demand Paging ๊ธฐ๋ฒ
์์ฒญ์ด ์์ ๋(์ค์ ๋ก ํ์ํ ๋) ๊ทธ ํ์ด์ง๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๋ ๋ฐฉ๋ฒ์ด๋ค.
์ค์ ๋ก ๋๋ถ๋ถ์ ์์คํ ์ Paging ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค. ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋ ๊ทธ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ์ฃผ์ ๊ณต๊ฐ์ ํ์ด์ง๋ฅผ ํ๊บผ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๋ ๊ฒ์ด ์๋๋ผ, Demand Paging ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ์ด๋ ํ ํ์ด์ง๊ฐ ์์ฒญ์ด ๋์์ ๋๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฐ๋ค.
์ฅ์
- I/O ์ ๊ฐ์
- ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๊ฐ์
- ๋น ๋ฅธ ์๋ต์๊ฐ
- ๋ ๋ง์ ์ฌ์ฉ์ ์์ฉ
Valid/Invalid ์ฌ์ฉ
ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ๋ ํ์ด์ง๋ค ์ค์์ ๋น์ฅ ํ์ํ ๋ถ๋ถ์ Demand Paging์ ์ํด์ ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๋ค. ๊ทธ๋ ์ง ์์ ๋ถ๋ถ์ Backing Store(Swap area)์ ๋ด๋ ค๊ฐ ์๊ฒ ๋๋ค.
๋ฐ๋ผ์ Invalid์ ์๋ฏธ๋ ํ์ด์ง๊ฐ ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๊ฒฝ์ฐ, ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉํ์ง ์๋ ์ฃผ์ ์์ญ์ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํ๊ฒ ๋๋ค.
Page fault
์ฃผ์ ๋ณํ ์ ํ๋ก๊ทธ๋จ์ด ์์ฒญํ ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๊ฒฝ์ฐ์ page fault๊ฐ ๋ฐ์ํ ์ ์๋ค. ์ด๋ ์ฃผ์ ๋ณํ ์์ Invalid bit๊ฐ set๋์ด ์๋ ๊ฒฝ์ฐ๋ฅผ ๋งํ๋ค.
page fault๋ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋ฐ์ํ์ง ์์ง๋ง, ๋ฐ์ํ ๊ฒฝ์ฐ์ ์ด์์ฒด์ ์ ํ๋์จ์ด์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์๊ฐ์ด ๋งค์ฐ ์ค๋ ๊ฑธ๋ฆฌ๋ฏ๋ก ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ๋ค.
page fault ์ฒ๋ฆฌ ๋ฃจํด
- invalid page๋ฅผ ์ ๊ทผํ๋ฉด ์ฃผ์ ๋ณํ์ ํด์ฃผ๋ ํ๋์จ์ด MMU๊ฐ trap์ ๋ฐ์์ํจ๋ค. (page fault trap)
- CPU๊ฐ ์๋์ ์ผ๋ก ์ด์์ฒด์ ์ ๋์ด์ ์ปค๋ ๋ชจ๋๋ก ๋ค์ด๊ฐ์ page fault handler๊ฐ ์คํ๋๋ค.
- page fault๋ฅผ ์ฒ๋ฆฌํ๋ค.
- ์ฃผ์๋ ์ ๊ทผ ๊ถํ์ด ์๋ชป๋์ด ์์ง ์์์ง ํ์ธํ๋ค. ์ ์์ด๋ผ๋ฉด ์ทจ์ํ๋ค. (abort)
- ๋ฉ๋ชจ๋ฆฌ์์ ๋น ํ์ด์ง ํ๋ ์์ ์ฐพ์ ๊ฐ์ ธ์จ๋ค. ๋ง์ฝ ๋น ํ์ด์ง๊ฐ ์๋ค๋ฉด ์ด๋ ํ ํ์ด์ง๋ฅผ ๋บ์ด์จ๋ค. (replace)
- ํด๋น ํ์ด์ง๋ฅผ ๋์คํฌ์์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฝ์ด์จ๋ค. (๋๋ฆฐ ์์
์ด๋ค.)
- ๋์คํฌ I/O๊ฐ ๋๋๊ธฐ ์ ์ ์ด ํ๋ก์ธ์ค๋ CPU๋ฅผ ์ ์ ๋นํ๋ค. (block)
- ๋์คํฌ read๊ฐ ๋๋๋ฉด page table entry์ valid์ ํ์ด์ง ํ๋ ์ ๋ฒํธ๋ฅผ ๊ธฐ๋กํ๋ค.
- Ready Queue์ ํ๋ก์ธ์ค๋ฅผ ์ค ์ธ์ฐ๋ฉฐ Job Queue๋ก ๋๋ ค๋ณด๋ธ๋ค.
- ์ด ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ก๊ณ ๋ค์ ์ฌ๊ฐ๋๋ค. (running)
- trap ์ ์ค๋จ๋์๋ instruction์ด ์ฌ๊ฐ๋๋ค.
Replacement Alogrithm
ํ์ด์ง ๊ต์ฒด ์์ ์ ํด์ฃผ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋งํ๋ฉฐ, ๊ฐ๋ฅํ page fault rate์ ์ต์ํํ๋ ๊ฒ์ด ๋ชฉํ์ด๋ค.
์ฃผ์ด์ง page reference string์ ๋ํด page fault๋ฅผ ์ผ๋ง๋ ๋ด๋์ง ์กฐ์ฌํ์ฌ ์๊ณ ๋ฆฌ์ฆ์ ํ๊ฐํ๋ค.
Page replacement
๋น ํ์ด์ง๊ฐ ์๋ ๊ฒฝ์ฐ ์ด๋ค ํ์ด์ง๋ฅผ ๋นผ์์์ฌ์ง ๊ฒฐ์ ํด์ผ ํ๋ค. ๊ณง๋ฐ๋ก ์ฌ์ฉ๋์ง ์์ ํ์ด์ง๋ฅผ ์ซ์๋ด๋ ๊ฒ์ด ์ข๋ค.
page reference string
์๊ฐ ์์์ ๋ฐ๋ผ์ ํ์ด์ง๋ค์ ์๋ก ๋ค๋ฅธ ๋ฒํธ๋ฅผ ๋ถ์ฌ ํ์ด์ง๋ค์ด ์ฐธ์กฐ๋ ์์๋ฅผ ๋์ดํด ๋ ๊ฒ
1๏ธโฃ Optimal(OPT, MIN)
Opimal ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ฅ ๋จผ ๋ฏธ๋์ ์ฐธ์กฐ๋๋ ํ์ด์ง๋ฅผ ๊ต์ฒดํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. page fault๋ฅผ ๊ฐ์ฅ ์ต์ํํ๋ฉฐ, ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ ์ค์์ ๊ฐ์ฅ ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
๋ฏธ๋์ ์ฐธ์กฐ ํ์ด์ง๋ฅผ ์ ์ ์์ง๋ง ์ด ์๊ณ ๋ฆฌ์ฆ์์๋ page reference string์ ๋ค ์๋ค๊ณ ๊ฐ์ ํ๋ค. ์ค์ ์์คํ ์ ์จ๋ผ์ธ ํ๊ฒฝ์์ ์ฌ์ฉํ ์ ์๊ณ , ์คํ๋ผ์ธ ํ๊ฒฝ์์ ์ด ์๊ณ ๋ฆฌ์ฆ์ ์ด์ํ๋ค.
๋ฐ๋ผ์ Opimal ์๊ณ ๋ฆฌ์ฆ์ ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ๋ํ upper bound๋ฅผ ์ ๊ณตํ๋ ์ญํ ์ ํ๋ค.
2๏ธโฃ FIFO(First In First Out)
๊ฐ์ฅ ๋จผ์ ๋ค์ด์จ ํ์ด์ง๋ฅผ ๊ต์ฒดํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
ํน์ดํ๊ฒ๋ FIFO ์๊ณ ๋ฆฌ์ฆ์ ํ์ด์ง ํ๋ ์์ด ๋์ด๋๋ฉด page fault๊ฐ ๋์ด๋๋ FIFO Anomaly ํ์์ด ๋ฐ์ํ ์ ์๋ค.
3๏ธโฃ LRU(Least Recently Used)
๊ฐ์ฅ ์ค๋ ์ ์ ์ฐธ์กฐ๋ ํ์ด์ง๋ฅผ ๊ต์ฒดํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
LRU ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํ
ํ์ด์ง๋ค์ ์ฐธ์กฐ๋ ์๊ฐ ์์์ ๋ฐ๋ผ์ Linked List๋ก ์ค ์ธ์ด๋ค.
์๋ก์ด ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ํ๊ฑฐ๋ ์ด๋ฏธ ์กด์ฌํ๋ ํ์ด์ง ์ค์์ ๋ค์ ์ฌ์ฉ์ด ๋๋ฉด ๋งจ ๋ค๋ก ์ด๋์ํจ๋ค.
์๊ฐ ๋ณต์ก๋๋ O(1)์ด ๋๋ค.
4๏ธโฃ LFU(Least Frequently Used)
์ฐธ์กฐ ํ์๊ฐ ๊ฐ์ฅ ์ ์ ํ์ด์ง๋ฅผ ๊ต์ฒดํ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, ๊ฐ์ฅ ๋ ๋น๋ฒํ๊ฒ ์ฌ์ฉ๋ ํ์ด์ง๋ฅผ ๊ต์ฒดํ๋ค.
์ฐธ์กฐ ํ์๊ฐ ๊ฐ์ฅ ์ ์ ํ์ด์ง๊ฐ ์ฌ๋ฌ ๊ฐ ์์ ๊ฒฝ์ฐ์๋ ๊ต์ฒดํ ํ์ด์ง๋ฅผ ์๊ณ ๋ฆฌ์ฆ ์์ฒด์์ ์์๋ก ์ ์ ํ๊ธฐ๋ ํ์ง๋ง, ์ค์ ํ์ฉํ ๋์๋ ์ฑ๋ฅ ํฅ์์ ์ํด ๊ฐ์ฅ ์ค๋ ์ ์ ์ฐธ์กฐ๋ ํ์ด์ง๋ฅผ ์ง์ฐ๊ฒ ๊ตฌํํ ์ ์๋ค.
LFU ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํ
Heap์ ์์ ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ฉฐ, ํ์ด์ง๋ฅผ ๋น๊ตํ ๋์๋ ํธ๋ฆฌ ๊ฒฝ๋ก๋ฅผ ์ํํ๋ฉฐ ๋น๊ตํ๊ณ ๊ต์ฒดํ๋ค.
์๊ฐ ๋ณต์ก๋๋ O(logN)์ด ๋๋ค.
์บ์ฑ ๊ธฐ๋ฒ
ํ์ ๋ ๋น ๋ฅธ ๊ณต๊ฐ(์บ์)์ ์์ฒญ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด ๋์๋ค๊ฐ ํ์ ์์ฒญ ์ ์บ์๋ก๋ถํฐ ์ง์ ์๋น์คํ๋ ๋ฐฉ๋ฒ์ด๋ค. ํ์ด์ง ์์คํ ์ด์ธ์๋ cache memory, buffer caching, web caching ๋ฑ ๋ค์ํ ๋ถ์ผ์์ ์ฌ์ฉ๋๋ค.
Paging System์์ LRU, LFU ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํ ์ด์
์ด์์ฒด์ ๋ ํ์ด์ง ์์คํ ์์์ ํ์ด์ง ์ฌ์ฉ ์๊ฐ ๋ฑ์ ์ ๋ณด๋ฅผ ์ ๋ถ ๋ค ์ ์ ์๋ค.
์ด์์ฒด์ ๋ page fault๊ฐ ๋ฐ์ํ์ ๋, ์ฆ ๋์คํฌ์ ์ ๊ทผํ ๋์๋ง ์ ๋ณด๋ฅผ ์ ์ ์์ง๋ง ์ด๋ฏธ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ ์๋ ํ์ด์ง๋ค์ ๋ํด์๋ ์ด์์ฒด์ ์ ๊ฐ์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ ์ ์๋ค.
Clock Algorithm
ํ์ด์ง ์์คํ ์ LRU๋ฅผ ๊ทผ์ฌ์ํจ ์๊ณ ๋ฆฌ์ฆ์ธ ํด๋ฝ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค.
ํด๋ฝ ์๊ณ ๋ฆฌ์ฆ์ Circular Linked List๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ ์ต๊ทผ ์ฌ์ฉ๋ ํ์ด์ง๋ reference bit๊ฐ 1๋ก ํ์๋์ด ์๊ณ , ์ต๊ทผ ์ฌ์ฉ๋์ง ์์ ํ์ด์ง๋ 0์ผ๋ก ํ์๋์ด ์๋ค.
ํด๋ฝ ์๊ณ ๋ฆฌ์ฆ์ reference bit๋ฅผ ์ฌ์ฉํด์ ๊ต์ฒด ๋์ ํ์ด์ง๋ฅผ ์ ์ ํ๋ค. ์ฃผ์ ๋ณํ ์ ํด๋น ํ์ด์ง๊ฐ ์ฌ์ฉ(์ฐธ์กฐ) ๋์๋ค๋ฉด ํ๋์จ์ด๊ฐ reference bit๋ฅผ 1๋ก ๋ณ๊ฒฝํ๋ค. ํ๋์จ์ด๊ฐ ํด๋น ํ์ด์ง๋ฅผ ์ฃผ์ ๋ณํํด์ CPU๊ฐ ๊ฐ์ ธ๊ฐ์ ๋๋ฅผ ๋งํ๋ค.
๋ํ, ์ด์์ฒด์ ๊ฐ ํ์ด์ง๋ฅผ ๊ต์ฒดํ๋ ค๊ณ ํ ๊ฒฝ์ฐ์ ํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํค๊ณ ์๋ ํ์ด์ง์ reference bit๊ฐ 1์ผ ๋ 0์ผ๋ก ๋ณ๊ฒฝํ๊ณ , ํฌ์ธํฐ๋ฅผ ๋ค์์ผ๋ก ์ด๋์ํจ๋ค. ํ ๋ฐํด ๋์์์๋ bit๊ฐ 0์ด๋ฉด ๊ทธ๋ ๊ทธ ํ์ด์ง๋ฅผ ๊ต์ฒดํ๋ค. (second chance)
ํด๋ฝ ์๊ณ ๋ฆฌ์ฆ ๊ฐ์
ํด๋ฝ ์๊ณ ๋ฆฌ์ฆ์ reference bit๊ณผ modified bit์ ํจ๊ป ์ฌ์ฉํ๋ค.
- reference bit: ์ต๊ทผ์ ์ฐธ์กฐ๋ ํ์ด์ง
- modified bit: ์ต๊ทผ์ ๋ณ๊ฒฝ๋ ํ์ด์ง(I/O๋ฅผ ๋๋ฐํ๋ ํ์ด์ง)
๋ฉ๋ชจ๋ฆฌ ํ์ด์ง๊ฐ ์ฌ์ฉ๋๋ ๊ฒ์ CPU๊ฐ ๋ฉ๋ชจ๋ฆฌ ์์น๋ฅผ ์ฝ์ด์ค๊ณ , ์ฐ๋ ๋ ๊ฐ์ง ์ํฉ์ด ์กด์ฌํ๋ค.
- Read: ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ๋ค์ CPU๊ฐ ํด๋น ํ์ด์ง๋ฅผ ์ ๊ทผํ๋ฉด reference bit์ 1๋ก ๋ง๋ค์ด์ค๋ค.
- Write: CPU๊ฐ ํด๋น ํ์ด์ง๋ฅผ ์ฝ์ผ๋ฉด ํด๋น ํ์ด์ง์ ๋ํ reference bit์ modified bit ๋ชจ๋ 1๋ก ๋ง๋ค์ด์ค๋ค.
ํด๋ฝ ์๊ณ ๋ฆฌ์ฆ์์ modified bit์ ์ฌ์ฉํ๋ ์ด์ ๋ ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ์ดํ Write๊ฐ ๋ฐ์ํ์ ๋ ๋ฉ๋ชจ๋ฆฌ์์ ์ซ๊ฒจ๋๊ณ ์์ ๋ด์ฉ์ ๋์คํฌ์์๋ Writeํด์ฃผ์ด์ผ ํ๋ค. ๋ฐ๋ผ์ Write ๋ฐ์ ์ฌ๋ถ๋ฅผ ์ํด์ ์ฌ์ฉ๋๋ค.
ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ์ดํ์ Write๊ฐ ์ ์ด๋ ํ ๋ฒ ๋ฐ์ํ์ ๋๋ modified bit๋ ๊ณ์ 1๋ก ์ธํ ๋์ด ์์ ๊ฒ์ด๋ค.
Page frame์ Allocation
๊ฐ๊ฐ์ ํ๋ก์ธ์ค์ ์ต์ํ์ page frame์ ํ ๋นํ๋ ๊ฒ์ ๋งํ๋ค.
Allocation์ ํ์์ฑ
๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ ๋ช ๋ น์ด ์ํ ์ ๋ช ๋ น์ด, ๋ฐ์ดํฐ ๋ฑ์ ์ฌ๋ฌ ํ์ด์ง๋ฅผ ๋์์ ์ฐธ์กฐํ๋๋ฐ ๋ช ๋ น์ด ์ํ ์ ์ต์ํ ํ ๋น๋์ด์ผ ํ๋ frame์ ์๊ฐ ์๋ค.
๋ํ Loop๋ฅผ ๊ตฌ์ฑํ๋ ํ์ด์ง๋ค์ ํ๊บผ๋ฒ์ ํ ๋น๋๋ ๊ฒ์ด ์ ๋ฆฌํ๋ค. ์ต์ํ์ ํ ๋น์ด ์์ผ๋ฉด ๋งค Loop๋ง๋ค page fault๊ฐ ๋ฐ์ํ ์๋ ์๊ธฐ ๋๋ฌธ์ด๋ค.
Allocation Scheme
- Equal Allocation: ๋ชจ๋ ํ๋ก์ธ์ค์ ๋๊ฐ์ ๊ฐ์ ํ ๋น
- Proportional Allocation: ํ๋ก์ธ์ค ํฌ๊ธฐ์ ๋น๋กํ๋ ํ ๋น
- Priority Allocation: ํ๋ก์ธ์ค์ ์ฐ์ ์์(์์ฃผ ์ฌ์ฉ๋๋ ๋น๋)์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ํ ๋น
Global replacement์ Local replacement
Global replacement
๊ฐ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํ์ง ์๊ณ , ์ฌ์ฉ๋๊ณ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ง๊ฒ ์ฌ์ฉ๋๊ฒ๋ ํ๋ ๊ต์ฒด ๋ฐฉ์์ผ๋ก, ๊ฐ ํ๋ก์ธ์ค๋ณ ํ ๋น๋์ด ์๋์ผ๋ก ์กฐ์ ๋๋ค.
FIFO, LRU, LFU ๋ฑ์ ์๊ณ ๋ฆฌ์ฆ์ global๋ก ์ฌ์ฉ ์ ํด๋น๋๋ค.
Local replacement
ํ๋ก์ธ์ค๋ง๋ค ํ ๋นํ ๋ค์ ์์ ์๊ฒ ํ ๋น๋ frame ๋ด์์๋ง ๊ต์ฒดํ๋ ๋ฐฉ๋ฒ์ด๋ค.
FIFO, LRU, LFU ๋ฑ์ ์๊ณ ๋ฆฌ์ฆ์ ํ๋ก์ธ์ค๋ณ๋ก ์ด์ ์ ํด๋น๋๋ค.
Thrashing
ํ๋ก์ธ์ค์ ์ํํ ์ํ์ ํ์ํ ์ต์ํ์ page frame ์๋ฅผ ํ ๋น ๋ฐ์ง ๋ชปํ ๊ฒฝ์ฐ์ ๋ฐ์ํ๋ฉฐ page fault๊ฐ ๋น๋ฒํ๊ฒ ๋ฐ์ํ๋ ํ์์ด๋ค.
์ค๋ ์ฑ์ด ๋ฐ์ํ๋ฉด CPU ์ด์ฉ๋ฅ ์ด ๋ฎ์์ง๋ค.
Thrashing ๋ฐฉ์ง
ํ๋ก๊ทธ๋จ์ ํ์ํ ์ต์ํ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ณด์ฅํด์ฃผ๋ ๊ฒ์ด ํต์ฌ์ด๋ค.
- Working-set Model
- PFF(Page-Fault Frequency)
Working-set Model
ํ๋ก์ธ์ค๋ ํน์ ์๊ฐ ๋์ ํน์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ง์ค์ ์ผ๋ก ์ฐธ์กฐํ๋ ๊ฒฝํฅ์ด ์๋ค. ์ด๋ฌํ ํ์์ Locality of reference๋ผ๊ณ ํ๋ฉฐ, ์ง์ค์ ์ผ๋ก ์ฐธ์กฐ๋๋ page๋ค์ ์งํฉ์ Locality set์ด๋ผ๊ณ ํ๋๋ฐ Working set๊ณผ ๋์ผํ ๊ฐ๋ ์ด๋ค.
Working set Model์์๋ ์ด๋ฌํ Locality ํน์ง์ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ ํ๋ก์ธ์ค๊ฐ ์ผ์ ์๊ฐ ๋์ ์ํํ๊ฒ ์ํ๋๊ธฐ ์ํด ํ๊บผ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์์ด์ผ ํ๋ page๋ค์ ์งํฉ์ Working set์ด๋ผ๊ณ ์ ์ํ๋ค.
Working-set Algorithm
ํน์ window ํฌ๊ธฐ ์ด๋ด์ ์๋ page๋ง์ Working set์ด๋ผ๊ณ ๊ฐ์ฃผํด์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์งํ๊ณ , ๊ทธ๋ ์ง ์์ ๊ฒ์ ๋ฒ๋ฆฐ๋ค.
์๊ฐ์ ๋ฐ๋ผ์ ํ์ํ Working set์ด ๋ณํ๋ ๊ฒ์ ๋ฐ์ํ๋ฉฐ, ๋งค์์ ์ํํ๊ฒ ์คํ๋๊ธฐ ์ํด์ ํ์ํ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ๋ณด์ฅํด์ค์ผ๋ก์จ ์ค๋ ์ฑ์ ๋ฐฉ์งํ ์ ์๋ค.
PFF
๊ฐ ํ๋ก์ธ์ค์ page fault rate๋ฅผ ์ฒดํฌํ๋ฉด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ํ ๋นํ ์ง ๊ฒฐ์ ํ๋ค.
page fault rate์ ์ํ๊ฐ๊ณผ ํํ๊ฐ์ ๋์ด ์ํ๊ฐ์ด ๋์ผ๋ฉด frame์ ๋ ํ ๋นํ๊ณ , ํํ๊ฐ ์ดํ์ด๋ฉด ํ ๋น frame์๋ฅผ ์ค์ธ๋ค.
๋น frame์ด ์์ผ๋ฉด ์ผ๋ถ ํ๋ก์ธ์ค๋ฅผ swap outํ๋ค.
Page size์ ๊ฒฐ์
Page size๋ฅผ ๊ฐ์์ํฌ ๋ ์ฅ์
- ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ์๊ฒ ์ชผ๊ฐ๋ฏ๋ก ํ์ด์ง ์๊ฐ ์ฆ๊ฐํ๋ค.
- ๋ด๋ถ ์กฐ๊ฐ ๋ฐ์๋ฅ ์ด ๊ฐ์ํ๋ค.
- ํ์ํ ์ ๋ณด๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ๋ฉ๋ชจ๋ฆฌ ์ด์ฉ์ด ํจ์จ์ ์ด๋ค.
๋จ์
- ํ์ด์ง ํ ์ด๋ธ์ ํฌ๊ธฐ๊ฐ ์ฆ๊ฐํ๋ค.
- ๋์คํฌ transfer์ ํจ์จ์ฑ์ด ๊ฐ์ํ๋ค.
- Locality์ ํ์ฉ ์ธก๋ฉด์์ ๋นํจ์จ์ ์ด๋ค.
ํธ๋ ๋๋ ํ์ด์ง ํฌ๊ธฐ๋ฅผ ํฌ๊ฒ ๊ฐ์ง๋ค.(4Kb)