Virtual Memory Management: Replacement Strategies for Fixed Alloc.1
Locality
โ ํ๋ก์ธ์ค๊ฐ ํ๋ก๊ทธ๋จ/๋ฐ์ดํฐ์ ํน์ ์์ญ์ ์ง์ค์ ์ผ๋ก ์ฐธ์กฐํ๋ ํ์
โ ๊ณต๊ฐ์ ์ง์ญ์ฑ (Spatial locality)
โ ์๊ฐ์ ์ง์ญ์ฑ (Temporal locality)
Locality(Example)
โ ๊ฐ์
- paging system
- page size = 1000 words
- Machine instruction size = 1 word
- ์ฃผ์ ์ง์ ์ word ๋จ์๋ก ์ด๋ฃจ์ด์ง
- ํ๋ก๊ทธ๋จ์ 4๋ฒ page์ continuous allocation ๋จ
- n = 1000
null
![](https://blog.kakaocdn.net/dn/deBrUV/btrV46xleGf/Yf3B4STP5KDoeFbLFFJXLK/img.png)
Replacement Strategies
โ Fixed Allocation
- MIN(OPT, B0) algorithm
- Random algorithm
- FIFO algorithm
- LRU(Least Recently Used) algorithm
- LFU(Least Frequently Used) algorithm
- NUR(Not Used Recently) algorithm
- Clock algorithm
- Second chance algorithm
โ Variable Allocation
- WS(Working Set) algorithm
- PFF(Page Fault Frequency) algorithm
- VMIN(Variable MIN) algorithm
Min Algorithm (OPT algorithm)
![](https://blog.kakaocdn.net/dn/s1EQw/btrV67V0Ssd/HcC9Br6F8PmGv9Zsj2mGjK/img.png)
โ 1966 Beadly๊ฐ ์ ์
โ Minimize page fault frequency(proved)
- Optimal Solution
โ ๊ธฐ๋ฒ
- ์์ผ๋ก ๊ฐ์ฅ ์ค๋ซ๋์ ์ฐธ์กฐ๋์ง ์์ page ๊ต์ฒด
- Tie-breaking rule: page ๋ฒํธ๊ฐ ๊ฐ์ฅ ํฐ/์์ ํ์ด์ง ๊ต์ฒด
โ ์คํ ๋ถ๊ฐ๋ฅํ ๊ธฐ๋ฒ (Unrealizable)
- Page reference string์ ๋ฏธ๋ฆฌ ์๊ณ ์์ด์ผ ํ๋ค
โ ๊ต์ฒด ๊ธฐ๋ฒ์ ์ฑ๋ฅ ํ๊ฐ ๋๊ตฌ๋ก ์ฌ์ฉ
Example
![](https://blog.kakaocdn.net/dn/m1S7E/btrV1gOqkRE/oTMC69qKY4QrBxtVjA9pe0/img.png)
โ Number of page faultes = 6
Random Algorithm
![](https://blog.kakaocdn.net/dn/Bxpko/btrV1U5r4wQ/KxGskTdnemwCeHZXeN29E1/img.png)
โ ๋ฌด์์๋ก ๊ต์ฒดํ page ์ ํ
โ Low ovehead
โ No policy
โ ํ๊ฐ ์งํ๋ก ์ฌ์ฉ
FIFO Algorithm
![](https://blog.kakaocdn.net/dn/uPUIK/btrV1hNijCC/hg15wRQOifhP3qLSP6wHTK/img.png)
โ First In First Out
- ๊ฐ์ฅ ์ค๋๋ page๋ฅผ ๊ต์ฒด
โ Page๊ฐ ์ ์ฌ๋ ์๊ฐ ๊ธฐ์ตํ๊ณ ์์ด์ผ ํจ
โ ์์ฃผ ์ฌ์ฉ๋๋ page๊ฐ ๊ต์ฒด ๋ ๊ฐ๋ฅ์ฑ์ด ๋์
- Locality์ ๋ํ ๊ณ ๋ ค๊ฐ ์์
โ FIFO anomaly (Belady's anomaly)
- FIFO ์๊ณ ๋ฆฌ์ฆ์ ๊ฒฝ์ฐ, ๋ ๋ง์ page frame์ ํ ๋น ๋ฐ์์๋ ๋ถ๊ตฌํ๊ณ page fault์ ์๊ฐ ์ฆ๊ฐํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค
Example
![](https://blog.kakaocdn.net/dn/H4YG1/btrV3Whp7HU/5abt86RTYEIBoUUirIw0cK/img.png)
โ Number of page faults = 10
Example (FIFO anomaly)
![](https://blog.kakaocdn.net/dn/UCvP6/btrV6cQZ0JG/h9F2MFu8RzCVV53kNw8gk1/img.png)
LRU (Least Recently Used) Algorithm
![](https://blog.kakaocdn.net/dn/3xEl0/btrV4tzuLr2/tbp6aD9w6fatOloF99Dfo0/img.png)
โ ๊ฐ์ฅ ์ค๋ซ๋์ ์ฐธ์กฐ๋์ง ์์ page ๊ต์ฒด
โ Page ์ฐธ์กฐ ์๋ง๋ค ์๊ฐ์ ๊ธฐ๋กํด์ผ ํจ
โ Locality์ ๊ธฐ๋ฐ์ ๋ ๊ต์ฒด ๊ธฐ๋ฒ
โ MIN algorithm์ ๊ทผ์ ํ ์ฑ๋ฅ
โ ์ค์ ๋ก ๊ฐ์ฅ ๋ง์ด ํ์ฉ๋๋ ๊ธฐ๋ฒ
โ ๋จ์
- ์ฐธ์กฐ์๋ง๋ค ์๊ฐ์ ๊ธฐ๋กํด์ผ ํจ(Overhead)
- ๊ฐ์ํ๋ ์ ๋ณด ์์ง์ผ๋ก ํด์ (์๊ฐ ๋์ ์์๋ง ๊ธฐ๋ก)
- Loop ์คํ์ ํ์ํ ํฌ๊ธฐ๋ณด๋ค ์์ ์์ pageframe์ด ํ ๋น๋ ๊ฒฝ์ฐ, page fault ์๊ฐ ๊ธ๊ฒฉํ ์ฆ๊ฐ
- Allocation ๊ธฐ๋ฒ์์ ํด๊ฒฐ
Example
![](https://blog.kakaocdn.net/dn/pUuJD/btrV56wzalb/u5Oo9uVkxRNXRQSGWpUVyk/img.png)
โ Number of page faults = 7
๋๊ธ