CS
[OS] ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ - FIFO/LRU/LFU/MFU/NUR
D0HAN.
2021. 7. 18. 05:19
๐ก ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ
์ด์์ฒด์ ๋ ์ฃผ๊ธฐ์ต์ฅ์น๋ณด๋ค ๋ ํฐ ์ฉ๋์ ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ํด ํ๋ก๊ทธ๋จ์ ์ผ๋ถ๋ง ์ฃผ๊ธฐ์ต์ฅ์น์ ์ ์ฌํ์ฌ ์ฌ์ฉํ๋ค. ์ด๋ฅผ ๊ฐ์๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฒ์ด๋ผ ํ๋ค.
ํ์ด์ง ๊ธฐ๋ฒ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ์ด์์ฒด์ ์์ ํ์ํ ํ์ด์ง๊ฐ ์ฃผ๊ธฐ์ต์ฅ์น์ ์ ์ฌ๋์ง ์์์ ์(ํ์ด์ง ๋ถ์ฌ) ์ด๋ค ํ์ด์ง ํ๋ ์์ ์ ํํ์ฌ ๊ต์ฒดํ ๊ฒ์ธ์ง ๊ฒฐ์ ํ๋ ๋ฐฉ๋ฒ์ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ํ๋ค.
* ํ๋ ์: ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ผ์ ํ ํฌ๊ธฐ๋ก ๋๋ ๋ธ๋ก
* ํ์ด์ง: ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ผ์ ํ ํฌ๊ธฐ๋ก ๋๋ ๋ธ๋ก
โ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ์ข ๋ฅ
- OPT - Optimal : ์์ผ๋ก ๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉ๋์ง ์์ ํ์ด์ง ๊ต์ฒด
- FIFO - First In First Out
- LRU - Least Recently Used : ๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉ๋์ง ์์ ํ์ด์ง ๊ต์ฒด
- LFU - Least Frequently Used : ์ฐธ์กฐ ํ์๊ฐ ๊ฐ์ฅ ์์ ํ์ด์ง ๊ต์ฒด
- MFU - Most Frequently used : ์ฐธ์กฐ ํ์๊ฐ ๊ฐ์ฅ ๋ง์ ํ์ด์ง ๊ต์ฒด
- NUR - Not Used Recently : ์ต๊ทผ์ ์ฌ์ฉํ์ง ์์ ํ์ด์ง ๊ต์ฒด
๐ OPT(Optimal) - ์์ผ๋ก ๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉ๋์ง ์์ ํ์ด์ง ๊ต์ฒด
- ๊ฐ์ฅ ์ด์์ ์
- ํ๋ก์ธ์ค๊ฐ ์์ผ๋ก ์ฌ์ฉํ ํ์ด์ง๋ฅผ ๋ฏธ๋ฆฌ ์์์ผ ํจ -> ๋ถ๊ฐ๋ฅ
- ๋น๊ต ์ฐ๊ตฌ ๋ชฉ์ ์ ์ํด ์ฌ์ฉ๋จ
๐ FIFO(First in First out) - ๊ฐ์ฅ ๋จผ์ ๋ค์ด์จ ํ์ด์ง๋ฅผ ๊ต์ฒด
- ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ฅ ๋จผ์ ์ฌ๋ผ์จ ํ์ด์ง๋ฅผ ๋จผ์ ๋ด๋ณด๋.
- ๊ฐ๋จํ๊ณ , ์ด๊ธฐํ ์ฝ๋์ ๋ํด ์ ์ ํ ๋ฐฉ๋ฒ
- ๋ค์ด์จ ์๊ฐ์ ์ ์ฅํ๊ฑฐ๋ ์ฌ๋ผ์จ ์์๋ฅผ ํ์ ์ ์ฅ.
- ์ง๊ด์ ์ผ๋ก ์๊ฐํ ๋ ํ๋ ์์ ์๊ฐ ๋ง์์ง์๋ก ํ์ด์ง ๊ฒฐํจ์ ํ์๋ ๊ฐ์ํจ
- Belady's Anomaly(FIFO anomaly)
์ค์ ๋ก ๊ทธ๋ ์ง ์๊ฒ ๋๋ ํ์์ด ๋ํ๋ ์ ์๋ค.
๐LRU(Least Recently Used) - ๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉํ์ง ์์ ํ์ด์ง๋ฅผ ๊ต์ฒด
- ๊ฐ์ : ๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉํ์ง ์์๋ ๋ฐ์ดํฐ๋ผ๋ฉด ์์ผ๋ก๋ ์ฌ์ฉํ ํ๋ฅ ์ด ์ ์ ๊ฒ์ด๋ค.
์๊ฐ ์ง์ญ์ฑ(temporal locality)
์ฑ์ง ๊ณ ๋ คํจ.(์ต๊ทผ์ ์ฐธ์กฐ๋ ํ์ด์ง๊ฐ ๊ฐ๊น์ด ๋ฏธ๋์ ๋ค์ ์ฐธ์กฐ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ ์ฑ์ง) - ์ฌ์ฉ๋ ์๊ฐ์ ์์์๋ ๋ถ๋ถ์ ์ ์ฅํ์ฌ ๊ฐ์ฅ ์ค๋ซ๋์ ์ฐธ์กฐ๋์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐ(ํ์ด์ง๋ง๋ค ์นด์ดํฐ ํ์)
- ํ๋ก ๊ตฌํ๊ฐ๋ฅ. ์ฌ์ฉํ ๋ฐ์ดํฐ๋ฅผ ํ์์ ์ ๊ฑฐํ์ฌ ๋งจ ์๋ก๋ค์ ์ฌ๋ฆฌ๊ณ , ํ๋ ์์ด ๋ชจ์๋ ๊ฒฝ์ฐ ๋งจ ์๋์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์
- ๋จ์ : ํ๋ก์ธ์ค๊ฐ ์ฃผ๊ธฐ์ต์ฅ์น์ ์ ๊ทผํ ๋๋ง๋ค ์ฐธ์กฐ๋ ํ์ด์ง ์๊ฐ์ ๊ธฐ๋กํด์ผ ํ๋ฏ๋ก ๋ง๋ํ ์ค๋ฒํค๋๊ฐ ๋ฐ์
์นด์ดํฐ๋ ํ, ์คํ๊ณผ ๊ฐ์ ๋ณ๋์ ํ๋์จ์ด๊ฐ ํ์
* ์นด์ดํฐ : ๊ฐ ํ์ด์ง๋ณ๋ก ์กด์ฌํ๋ ๋ ผ๋ฆฌ์ ์ธ ์๊ณ(Logical Clock)๋ก, ํด๋น ํ์ด์ง๊ฐ ์ฌ์ฉ๋ ๋๋ง๋ค 0์ผ๋ก ํด๋ฆฌ์ด ์ํจ ํ ์๊ฐ์ ์ฆ๊ฐ์์ผ ์๊ฐ์ด ๊ฐ์ฅ ์ค๋๋ ํ์ด์ง๋ฅผ ๊ต์ฒด
๐ LFU(Least Frequently Used) - ์ฐธ์กฐ ํ์๊ฐ ๊ฐ์ฅ ๋ฎ์ ํ์ด์ง๋ฅผ ๊ต์ฒด
- ํ์ด์ง์ ์ฐธ์กฐ ํ์๋ก ๊ต์ฒดํ ํ์ด์ง ๊ฒฐ์
- LRU๋ ์ง์ ์ฐธ์กฐ๋ ์์ ๋ง์ ๋ฐ์ํ์ง๋ง, LFU๋ ์ฐธ์กฐํ์๋ฅผ ํตํด ์ฅ๊ธฐ์ ์๊ฐ๊ท๋ชจ์์์ ์ฐธ์กฐ์ฑํฅ ๊ณ ๋ คํ ์ ์์
- ๋จ์ : ๊ฐ์ฅ ์ต๊ทผ์ ๋ถ๋ฌ์จ ํ์ด์ง๊ฐ ๊ต์ฒด๋ ์ ์์, ๊ตฌํ ๋ ๋ณต์ก, ๋ง๋ํ ์ค๋ฒํค๋
๐ MFU(Most Frequently used) - ์ฐธ์กฐ ํ์๊ฐ ๊ฐ์ฅ ๋ง์ ํ์ด์ง ๊ต์ฒด
- ๊ฐ์ : ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ ํ์ด์ง๊ฐ ์์ผ๋ก๋ ์ฌ์ฉ๋์ง ์์ ๊ฒ์ด๋ค
๐NUR = NRU(Not Used Recently, Not Recently Used), ํด๋ญ ์๊ณ ๋ฆฌ์ฆ
- ์ต๊ทผ์ ์ฌ์ฉํ์ง ์์ ํ์ด์ง ๊ต์ฒด (LRU๋ฅผ ๊ทผ์ฌํ ์๊ณ ๋ฆฌ์ฆ)
- ๊ต์ฒด๋๋ ํ์ด์ง์ ์ฐธ์กฐ ์์ ์ด ๊ฐ์ฅ ์ค๋๋์๋ค๋ ๊ฒ์ ๋ณด์ฅํ์ง๋ ๋ชปํจ
- ์ ์ ์ค๋ฒํค๋๋ก ์ ์ ํ ์ฑ๋ฅ
- ๋์ผ ๊ทธ๋ฃน ๋ด์์ ์ ํ ๋ฌด์์
- ๊ฐ ํ์ด์ง๋ง๋ค ๋๊ฐ์ ๋นํธ
์ฐธ์กฐ ๋นํธ(Reference Bit)
์๋ณํ ๋นํธ(Modified Bit, Birty Bit)
๊ฐ ์ฌ์ฉ๋จ- ์ฐธ์กฐ ๋นํธ: ํ์ด์ง๊ฐ ์ฐธ์กฐ๋์ง ์์์ ๋ 0, ํธ์ถ๋์์ ๋ 1 (๋ชจ๋ ์ฐธ์กฐ๋นํธ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก 0์ผ๋ก ๋ณ๊ฒฝ)
- ๋ณํ ๋นํธ: ํ์ด์ง ๋ด์ฉ์ด ๋ณ๊ฒฝ๋์ง ์์์ ๋๋ 0, ๋ณ๊ฒฝ๋์์ ๋ 1
- ์ฐ์ ์์: ์ฐธ์กฐ๋นํธ > ๋ณํ๋นํธ
์ฐธ๊ณ
https://liveyourit.tistory.com/235
https://medium.com/pocs/%ED%8E%98%EC%9D%B4%EC%A7%80-%EA%B5%90%EC%B2%B4-page-replacement-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-650d58ae266b
NUR
https://j2wooooo.tistory.com/121
https://eunhyejung.github.io/os/2018/07/24/operatingsystem-study15.html