Virtual Memory Management: Replacement Strategies for Fixed Alloc. 2
LFULeast Frequently Used) Algorithm
![](https://blog.kakaocdn.net/dn/ckwwML/btrWTKfWku5/tQRSJrp0cGyW89RDZc9Dy0/img.png)
โ ๊ฐ์ฅ ์ฐธ์กฐ ํ์๊ฐ ์ ์ page ๊ต์ฒด
- Tie-braking rule: LRU
โ page ์ฐธ์กฐ ์๋ง๋ค, ์ฐธ์กฐ ํ์๋ฅผ ๋์ ์์ผ์ผํจ
โ Locality ํ์ฉ
- LRU ๋๋น ์ ์ overhead
โ ๋จ์
- ์ต๊ทผ ์ ์ฌ๋ ์ฐธ์กฐ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ page๊ฐ ๊ต์ฒด๋ ๊ฐ๋ฅ์ฑ
- ์ฐธ์กฐ ํ์ ๋์ overhead
Example
![](https://blog.kakaocdn.net/dn/FBFPY/btrWREALzLQ/iW40XW2zD0JLhunbdgQMcK/img.png)
โ Number of page faults = 7
NUR(Not Used Recently) Algorithm
![](https://blog.kakaocdn.net/dn/cqq9IC/btrWRQgG5HM/YqnFZKTOJ3CWlsIHvkDeeK/img.png)
โ LRU approximation shceme
- LRU๋ณด๋ค ์ ์ overhead๋ก ๋น์ทํ ์ฑ๋ฅ ๋ฌ์ฑ ๋ชฉ์
โ Bit vector ์ฌ์ฉ
- Reference bit vector(r), Updated bit vector(m)
- reference bit๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ์ด๊ธฐํ ๋๋ ํน์ฑ ์ด์ฉ
โ ๊ต์ฒด ์์
- (r, m) = (0, 0)
- (r, m) = (0, 1)
- (r, m) = (1, 0)
- (r, m) = (1, 1)
- update bit ์ง์(memory write back)
Clock Algorithm
![](https://blog.kakaocdn.net/dn/H1TXD/btrWRQ8RsoZ/RwT4rw8aOWkfkiNgb0ksl1/img.png)
โ IBM VM/370 OS
โ Reference bit ์ฌ์ฉํจ
- ์ฃผ๊ธฐ์ ์ด๊ธฐํ ์์
โ Page frame๋ค์ ์์ฐจ์ ์ผ๋ก ๊ฐ๋ฆฌํค๋ pointer(์๊ณ๋ฐ๋)์ ์ฌ์ฉํ์ฌ ๊ต์ฒด๋ page ๊ฒฐ์
์ค๋ช
โ Pointer๋ฅผ ๋๋ฆฌ๋ฉด์ ๊ต์ฒด page ๊ฒฐ์
- ํ์ฌ ๊ฐ๋ฆฌํค๊ณ ์๋ page์ reference bit(r) ํ์ธ
- r = 0 ์ธ ๊ฒฝ์ฐ, ๊ต์ฒด page๋ก ๊ฒฐ์
- r = 1์ธ ๊ฒฝ์ฐ, reference bit ์ด๊ธฐํ ํ pointer ์ด๋
โ ๋จผ์ ์ ์ฌ๋ page๊ฐ ๊ต์ฒด๋ ๊ฐ๋ฅ์ฑ์ด ๋์
- FIFO์ ์ ์ฌ
โ Reference bit๋ฅผ ์ฌ์ฉํ์ฌ ๊ต์ฒด ํ์ด์ง ๊ฒฐ์
- Locaity ๋ฐ์
- LRU(or NRU)์ ์ ์ฌ
Example
![](https://blog.kakaocdn.net/dn/dx8rai/btrW0Og4vE4/KkpOoKQdYr70CTh3uFvO11/img.png)
Second Chance Algorithm
![](https://blog.kakaocdn.net/dn/eeFUON/btrWR8alHtH/PPYKskdDKOVuKKTmdrbUxK/img.png)
โ Clock algorithm ๊ณผ ์ ์ฌ
โ Update bit(m)๋ ํจ๊ป ๊ณ ๋ คํจ
- ํ์ฌ ๊ฐ๋ฆฌํค๊ณ ์๋ page์ (r, m) ํ์ธ
- (0, 0): ๊ต์ฒด page๋ก ๊ฒฐ์
- (0, 1): -> (0, 0), write-back (cleaning) list์ ์ถ๊ฐ ํ ์ด๋
- (1, 0): -> (0, 0)ํ ์ด๋
- (1, 1): -> (0, 1)ํ ์ด๋
Example
![](https://blog.kakaocdn.net/dn/bbtnXd/btrW0OVFHhl/THLMKeAtUkkyY6LS0Ejkw1/img.png)
Other Algorithms
โ Additional-reference-bits algorithm
- LRU approximation
- ์ฌ๋ฌ ๊ฐ์ reference bit
- ๊ฐ time-interval์ ๋ํ ์ฐธ์กฐ ์ฌ๋ถ ๊ธฐ๋ก
- History register for each page
โ MRU(Most Recently Used) Algorithm
- LRU์ ์ ๋ฐ๋ ๊ธฐ๋ฒ
โ MFU(Most Frequently Used) Algorithm
- LFU์ ์ ๋ฐ๋ ๊ธฐ๋ฒ
๋๊ธ