๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋?
ํ๋ก์ธ์ค๋ง๋ค ๊ฐ๊ฐ 0๋ฒ์ง๋ถํฐ์ ์ฃผ์ ๊ณต๊ฐ์ ๊ฐ์ง๊ฒ ๋๋ฉฐ, ์ด๋ค ๊ณต๊ฐ ์ค ์ผ๋ถ๋ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋๊ณ ์ผ๋ถ๋ ๋์คํฌ์ ์ค์ ์์ญ์ ์กด์ฌํ๊ฒ ๋๋ค.
1. ์๊ตฌ ํ์ด์ง
- ํ๋ก๊ทธ๋จ ์คํ ์ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ๋ชจ๋ ํ์ด์ง๋ฅผ ํ๊บผ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๋ ๊ฒ์ด ์๋๋ผ ๋น์ฅ ์ฌ์ฉ๋ ํ์ด์ง๋ง์ ์ฌ๋ฆฌ๋ ๋ฐฉ์
1) ์๊ตฌ ํ์ด์ง์ ํ์ด์ง ๋ถ์ฌ ์ฒ๋ฆฌ
- CPU๊ฐ ๋ฌดํจ ํ์ด์ง์ ์ ๊ทผํ๋ฉด ์ฃผ์ ๋ณํ์ ๋ด๋นํ๋ ํ๋์จ์ด์ธ MMU๊ฐ ํ์ด์ง ๋ถ์ฌ ํธ๋ฉ(page fault trap)์ ๋ฐ์์ํค๊ฒ ๋๋ค
- ๊ทธ๋ฌ๋ฉด CPU์ ์ ์ด๊ถ์ด ์ปค๋๋ชจ๋๋ก ์ ํ๋๊ณ , ์ด์์ฒด์ ์ ํ์ด์ง ๋ถ์ฌ ์ฒ๋ฆฌ๋ฃจํด(page fault handler)์ด ํธ์ถ๋์ด ๋ค์๊ณผ ๊ฐ์ ์์๋ก ํ์ด์ง ๋ถ์ฌ๋ฅผ ์ฒ๋ฆฌํ๋ค.
- ํด๋น ํ์ด์ง์ ๋ํ ์ ๊ทผ์ด ์ ๋ฒํ ๊ฒฝ์ฐ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์์ ๋น์ด ์๋ ํ๋ ์(free frame)์ ํ ๋น๋ฐ์ ๊ทธ ๊ณต๊ฐ์ ํด๋น ํ์ด์ง๋ฅผ ์ฝ์ด์จ๋ค
- ๋ง์ฝ ๋น์ด ์๋ ํ๋ ์์ด ์๋ค๋ฉด ๊ธฐ์กด์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์๋ ํ์ด์ง ์ค ํ๋๋ฅผ ๋์คํฌ๋ก ์ซ์๋ธ๋ค(swap out)
2) ์๊ตฌ ํ์ด์ง์ ์ฑ๋ฅ
- ์ ํจ ์ ๊ทผ์๊ฐ์ด ์งง์์๋ก ์๊ตฌ ํ์ด์ง ๊ธฐ๋ฒ์ ์ฑ๋ฅ์ ํฅ์๋๋ค
2. ํ์ด์ง ๊ต์ฒด
- ํ์ด์ง ๋ถ์ฌ๊ฐ ๋ฐ์ํ๋ฉด ์์ฒญ๋ ํ์ด์ง๋ฅผ ๋์คํฌ์์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฝ์ด์์ผ ํ๋ค
- ์ด๋ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๋น ํ๋ ์์ด ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์๋ ํ์ด์ง ์ค ํ๋๋ฅผ ๋์คํฌ๋ก ์ซ์๋ด ๋ฉ๋ชจ๋ฆฌ์ ๋น ๊ณต๊ฐ์ ํ๋ณดํ๋ ์์ ์ด ํ์ํ๊ณ ์ด๊ฒ์ ํ์ด์ง ๊ต์ฒด(page replacement)๋ผ๊ณ ํ๋ค.
1) ์ต์ ํ์ด์ง ๊ต์ฒด
๋น๋ ๋์ ์ต์ ์๊ณ ๋ฆฌ์ฆ(Belady's optimal algorithm)
- ํ์ด์ง ๋ถ์ฌ์จ์ ์ต์ํํ๊ธฐ ์ํด ํ์ด์ง ๊ต์ฒด ์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌํ๋ ํ์ด์ง ์ค ๊ฐ์ฅ ๋จผ ๋ฏธ๋์ ์ฐธ์กฐ๋ ํ์ด์ง๋ฅผ ์ซ์๋ด๋ ์๊ณ ๋ฆฌ์ฆ
- ๋ฏธ๋์ ์ด๋ค ํ์ด์ง๊ฐ ์ด๋ ํ ์์๋ก ์ฐธ์กฐ๋ ์ง ๋ฏธ๋ฆฌ ์๊ณ ์๋ค๋ ์ ์ ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ํ๊ธฐ ๋๋ฌธ์ ์ค์ ์์คํ ์์ ์จ๋ผ์ธ์ผ๋ก ์ฌ์ฉํ ์๋ ์๋ค
- ๋ค๋ง, ์ด ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ๋ํ ์ํ์ (upper bound)์ ์ ๊ณตํ๋ค
2) ์ ์ ์ ์ถ ์๊ณ ๋ฆฌ์ฆ(First In First Out: FIFO)
- ํ์ด์ง ๊ต์ฒด ์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ฅ ๋จผ์ ์ฌ๋ผ์จ ํ์ด์ง๋ฅผ ์ฐ์ ์ ์ผ๋ก ๋ด์ซ๋๋ค
- FIFO์ ์ด์ ํ์(FIFO anomaly): FIFO ์๊ณ ๋ฆฌ์ฆ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฆ๊ฐ์์ผฐ์์๋ ๋ถ๊ตฌํ๊ณ ํ์ด์ง ๋ถ์ฌ๊ฐ ์คํ๋ ค ๋์ด๋๋ ์ํฉ
3) LRU ์๊ณ ๋ฆฌ์ฆ(Least Recently Used)
- ์๊ฐ์ง์ญ์ฑ(temporal locality): ์ต๊ทผ์ ์ฐธ์กฐ๋ ํ์ด์ง๊ฐ ๊ฐ๊น์ด ๋ฏธ๋์ ๋ค์ ์ฐธ์กฐ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ ์ฑ์ง
- ์๊ฐ์ง์ญ์ฑ์ ์ด์ฉํด ํ์ด์ง ๊ต์ฒด ์ ๊ฐ์ฅ ์ค๋์ ์ ์ฐธ์กฐ๊ฐ ์ด๋ฃจ์ด์ง ํ์ด์ง๋ฅผ ์ซ์๋ธ๋ค
4) LFU ์๊ณ ๋ฆฌ์ฆ(Least Frequently Used)
- ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ์กด์ฌํ๋ ํ์ด์ง ์ค์์ ๊ณผ๊ฑฐ์ ์ฐธ์กฐ ํ์(reference count)๊ฐ ๊ฐ์ฅ ์ ์๋ ํ์ด์ง๋ฅผ ์ซ์๋ด๊ณ ๊ทธ ์๋ฆฌ์ ์๋ก ์ฐธ์กฐ๋ ํ์ด์ง๋ฅผ ์ ์ฌํ๋ค
- Incache-LFU: ํ์ด์ง๊ฐ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ํ๋ถํฐ์ ์ฐธ์กฐ ํ์๋ฅผ ์นด์ดํธํ๋ ๋ฐฉ์
- Perfect-LFU: ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์์๋์ง์ ์ฌ๋ถ์ ์๊ด์์ด ๊ทธ ํ์ด์ง์ ๊ณผ๊ฑฐ ์ด ์ฐธ์กฐ ํ์๋ฅผ ์นด์ดํธํ๋ ๋ฐฉ์
5) ํด๋ญ ์๊ณ ๋ฆฌ์ฆ(Clock)
- ํ์ด์ง ์ฐธ์กฐ ์๊ฐ ๋ฐ ์ฐธ์กฐ ํ์๋ฅผ ์ํํธ์จ์ด์ ์ผ๋ก ์ ์งํ๊ณ ๋น๊ตํด์ผ ํ๋ LRU, LFU์ ๋ฌ๋ฆฌ ํ๋์จ์ด์ ์ธ ์ง์์ ํตํด ์๊ณ ๋ฆฌ์ฆ์ ์ด์ ์ค๋ฒํค๋๋ฅผ ์ค์ธ ๋ฐฉ์
- NUR(Not Used Recently) ๋๋ NRU(Not Recently Used) ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค
- ํ์ด์ง ํ๋ ์๋ค์ ์ฐธ์กฐ๋นํธ๋ฅผ ์์ฐจ์ ์ผ๋ก ์กฐ์ฌํ๋ฉด์ 0์ธ ํ์ด์ง๋ฅผ ๊ต์ฒดํ๋ค
3. ํ์ด์ง ํ๋ ์ ํ ๋น
ํ ๋น ์๊ณ ๋ฆฌ์ฆ(allocation algorithm)
- ๊ท ๋ฑํ ๋น(equal allocation): ๋ชจ๋ ํ๋ก์ธ์ค์๊ฒ ํ์ด์ง ํ๋ ์์ ๊ท ์ผํ๊ฒ ํ ๋นํ๋ ๋ฐฉ์
- ๋น๋กํ ๋น(proportional allocation): ํ๋ก์ธ์ค์ ํฌ๊ธฐ๋ฅผ ๊ณ ๋ คํ ๊ท ๋ฑํ ๋น ๋ฐฉ์
- ์ฐ์ ์์ํ ๋น(priority allocation): ํ๋ก์ธ์ค์ ์ฐ์ ์์์ ๋ฐ๋ผ ํ์ด์ง ํ๋ ์์ ๋ค๋ฅด๊ฒ ํ ๋นํ๋ ๋ฐฉ์
4. ์ ์ญ๊ต์ฒด์ ์ง์ญ๊ต์ฒด
๊ต์ฒดํ ํ์ด์ง๋ฅผ ์ ์ ํ ๋, ๊ต์ฒด ๋์์ด ๋ ํ๋ ์์ ๋ฒ์๋ฅผ ์ด๋ป๊ฒ ์ ํ ์ง์ ๋ฐ๋ผ ๊ต์ฒด ๋ฐฉ๋ฒ์ ์ ์ญ๊ต์ฒด์ ์ง์ญ๊ต์ฒด๋ก ๊ตฌ๋ถํ๋ค.
- ์ ์ญ๊ต์ฒด(global replacement)
- ๋ชจ๋ ํ์ด์ง ํ๋ ์์ด ๊ต์ฒด ๋์์ด ๋ ์ ์๋ ๋ฐฉ๋ฒ
- ์ง์ญ๊ต์ฒด(local replacement)
- ํ์ฌ ์ํ ์ค์ธ ํ๋ก์ธ์ค์๊ฒ ํ ๋น๋ ํ๋ ์ ๋ด์์๋ง ๊ต์ฒด ๋์์ ์ ์ ํ ์ ์๋ ๋ฐฉ๋ฒ
5. ์ค๋ ์ฑ(thrashing)
์ค๋ ์ฑ์ด๋?
์ง์ค์ ์ผ๋ก ์ฐธ์กฐ๋๋ ํ์ด์ง๋ค์ ์งํฉ์ ๋ฉ๋ชจ๋ฆฌ์ ํ๊บผ๋ฒ์ ์ ์ฌํ์ง ๋ชปํด ํ์ด์ง ๋ถ์ฌ์จ(page fault rate)์ด ์์นํ๊ณ CPU ์ด์ฉ๋ฅ (CPU utilization)์ด ๋จ์ด์ง๋ ํ์
MPD(multi-programming degree): ๋ฉ๋ชจ๋ฆฌ์ ๋์์ ์ฌ๋ผ๊ฐ ์๋ ํ๋ก์ธ์ค์ ์
MPD๋ฅผ ์ ์ ํ ์กฐ์ ํด CPU ์ด์ฉ๋ฅ ์ ๋์ด๋ ๋์์ ์ค๋ ์ฑ ๋ฐ์์ ๋ฐฉ์งํ๋ ๋ฐฉ๋ฒ
- ์ํน์
์๊ณ ๋ฆฌ์ฆ(working-set algorithm)
- ์ง์ค์ ์ผ๋ก ์ฐธ์กฐ๋๋ ํ์ด์ง๋ค์ ์งํฉ์ ์ง์ญ์ฑ ์งํฉ(locality set)์ด๋ผ๊ณ ํ๋ค
- ์ํน์ ์๊ณ ๋ฆฌ์ฆ์ ์ด๋ฌํ ์ง์ญ์ฑ ์งํฉ์ด ๋ฉ๋ชจ๋ฆฌ์ ๋์์ ์ฌ๋ผ๊ฐ ์ ์๋๋ก ๋ณด์ฅํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์๊ณ ๋ฆฌ์ฆ์ ๋งํ๋ค
- ํ์ด์ง ๋ถ์ฌ ๋น๋ ์๊ณ ๋ฆฌ์ฆ(page-fault frequency scheme)
- ํ์ด์ง์ ๋ถ์ฌ์จ์ ์ฃผ๊ธฐ์ ์ผ๋ก ์กฐ์ฌํ๊ณ ์ด ๊ฐ์ ๊ทผ๊ฑฐํด์ ๊ฐ ํ๋ก์ธ์ค์ ํ ๋นํ ๋ฉ๋ชจ๋ฆฌ ์์ ๋์ ์ผ๋ก ์กฐ์ ํ๋ค
'์คํฐ๋ > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ์ ์ ๋ณด๊ธฐ์ ์ ์๋ฆฌ] 10์ฅ ์น์บ์ฑ ๊ธฐ๋ฒ (0) | 2023.04.13 |
---|---|
[์ด์์ฒด์ ์ ์ ๋ณด๊ธฐ์ ์ ์๋ฆฌ] 9์ฅ ๋์คํฌ ๊ด๋ฆฌ (0) | 2023.04.07 |
[์ด์์ฒด์ ์ ์ ๋ณด๊ธฐ์ ์ ์๋ฆฌ] 7์ฅ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ (1) | 2023.03.25 |
[์ด์์ฒด์ ์ ์ ๋ณด๊ธฐ์ ์ ์๋ฆฌ] 6์ฅ CPU ์ค์ผ์ค๋ง (0) | 2023.03.17 |
[์ด์์ฒด์ ์ ์ ๋ณด๊ธฐ์ ์ ์๋ฆฌ] 5์ฅ ํ๋ก์ธ์ค ๊ด๋ฆฌ (0) | 2023.03.10 |
๋๊ธ