page๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋นํ๋ ํ๋ ์ ํ ๋น์ ๋ํด ์์๋ณธ๋ค.
1. Global VS Local Replacement
- Global Replacement
- ๋ฉ๋ชจ๋ฆฌ ์์ ๋ชจ๋ ํ๋ก์ธ์ค ํ์ด์ง์ ๋ํ ๊ต์ฒด ์์ ์ ์ํํ๋ค.
- ์์์ ๋ฐฐ์ด FIFO, OPT, LRU ๋ฑ์ Victim์ ์ ํ ๋, ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์ ธ ์๋ frame์ ๋ค ํ์ธ ํ์ ๊ต์ฒด๋ฅผ ์ํํ๋ค.
- Local Replacement
- ๋ฉ๋ชจ๋ฆฌ ์์ ์๊ธฐ ์์ ์ ํ๋ก์ธ์ค ํ์ด์ง์ ๋ํด์๋ง ๊ต์ฒด ์์ ์ ์ํํ๋ค.
- ์ง๊ธ ์์ฒญ์ด ๋ค์ด์จ page๊ฐ p1์ด๋ผ๋ฉด, ๋ฉ๋ชจ๋ฆฌ์์ ์ฌ๋ผ๊ฐ ์๋ frame ์ค p1 frame๋ง ๊ต์ฒด์ ๋์์ผ๋ก ๊ฐ์ฃผํ๋ค.
๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ํจ์จ์ ์ผ๋ฐ์ ์ผ๋ก Global Replacement๊ฐ ์ข๋ค.
2. ํ๋ ์ ํ ๋น(Allocation of Frames)
์ด๋ป๊ฒ ํ ๋นํ๋ ๊ฒ์ด ์ข์์ง์ ๋ํ ๊ณ ๋ฏผ์ ํด๋ณธ๋ค.
2.1. ์ฐ๋ ์ฑ(Thrashing)
์ผ๋ฐ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๋ ํ๋ก์ธ์ค ๊ฐ์๊ฐ ์ฆ๊ฐํ ์๋ก CPU์ ์ด์ฉ๋ฅ ์ ์ฌ๋ผ๊ฐ ๊ฒ์ด๋ผ ์์ํ๋ค. ์๋ํ๋ฉด ํ๋ก์ธ์ค๊ฐ ๋ง์ ์๋ก CPU์ ํ ์ผ ์ญ์ ์ฆ๊ฐํ๊ธฐ๋๋ฌธ์ด๋ค. ์ด๋ ์ผ์ ๋ฒ์๊น์ง๋ ๋ง๋ ์์์ด์ง๋ง, ๊ทธ ๋ฒ์๋ฅผ ๋์ด์๋ฉด ์คํ๋ ค CPU ์ด์ฉ๋ฅ ์ด ๊ฐ์ํ๋ ํ์์ด ๋ํ๋๋ค.
์ ๊ทธ๋ฆผ์ ์ด๋ฌํ ํ์์ ๊ทธ๋ํ๋ก ๋ํ๋ธ ๊ฒ์ด๋ค. ์ด์ ๊ฐ์ ํ์์ด ๋ฐ์ํ๋ ์ด์ ๋ ํ๋ก์ธ์ค๊ฐ ์ฆ๊ฐํ ์๋ก ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ๋น์ด์๋ ํ๋ ์ ๊ฐ์๋ ์ค์ด๋ค๊ฒ ๋๊ณ ๊ฒฐ๊ตญ ๋ชจ๋ ํ๋ ์์ด ๊ฐ๋ ์ฐจ๊ฒ ๋๋ค. ๊ทธ ํ์๋ ๊ณ์ ํ๋ก์ธ์ค๊ฐ ์ฆ๊ฐํ๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ์ backing store ์ฌ์ด์ page in/out ์์ ์ด ๋ฐ์ํ๋๋ฐ, ํ๋ก์ธ์ค๊ฐ ๋ง์์ง์๋ก ์ด ์์ ์ญ์ ์ฆ๊ฐํ๋ค. page in/out์ ๋์คํฌ I/O ์์ ์ผ๋ก CPU๋ฅผ ์ฌ์ฉํ์ง ์๋ ์์ ์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ด ์์ ์ด ๋ง์์ง์๋ก CPU๋ ๊ทธ๋์ ์๋ฌด๊ฒ๋ ํ์ง ์๊ฒ ๋๋ค.
์ ๊ทธ๋ํ์์๋ ๋์์๋ฏ์ด, I/O ์์ ์ด ์ฆ๊ฐํ์ฌ CPU ์ด์ฉ๋ฅ ์ด ๋จ์ด์ง๋ ํ์์ Thrashing ์ด๋ผ ํ๋ค.
2.1.1 ํด๊ฒฐ ๋ฐฉ๋ฒ
์ฐ๋ ์ฑ์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ ๋ ๊ฐ์ง๊ฐ ์๋ค.
- Global Replacement๋ณด๋ค Local Replacement๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
- ํ์ง๋ง ์ด ๊ฒฝ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ํจ์จ์ด ๋จ์ด์ง๋ ๋จ์ ์ด ์๋ค.
- ํ๋ก์ธ์ค๋น ์ถฉ๋ถํ/์ ์ ํ ์์ ํ๋ ์(๋ฉ๋ชจ๋ฆฌ)์ ํ ๋นํ๋ค.
๊ทธ๋ ๋ค๋ฉด, ์ ์ ํ ํ๋ ์์ ์๋ ์ด๋ป๊ฒ ์ ํ๋ ๊ฒ์ผ๊น?
2.2 ํ๋ ์ ํ ๋น์ ๋ฐฉ๋ฒ
ํ๋ ์ ํ ๋น์ ํฌ๊ฒ ์ ์ ํ ๋น๊ณผ ๋์ ํ ๋น์ผ๋ก ๋๋๋ค.
2.2.1 ์ ์ ํ ๋น(Static Allocation)
- ๋์ผ ํ ๋น(Equal Allocation)
- ๋ชจ๋ ํ๋ก์ธ์ค์๊ฒ ๋๊ฐ์ ์์ ํ๋ ์์ ํ ๋นํ๋ค. ์ด ๋ฐฉ์์ ํ๋ก์ธ์ค์ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋งค์ฐ ๋นํจ์จ์ ์ด๋ค.
- ๋น๋ก ํ ๋น(Proportional Allocation)
- ํ๋ก์ธ์ค์ ํฌ๊ธฐ์ ๋ฐ๋ผ ํ๋ ์์ ํ ๋นํ๋ค. ์ด ๋ฐฉ์ ์ญ์ ๋จ์ ์ด ์๋ค. ํ๋ก์ธ์ค ํฌ๊ธฐ๊ฐ ํฌ๋๋ผ๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์ด ๋ฐฉ์ ๋ํ ๋นํจ์จ์ ์ด๋ค.
์ด์ฒ๋ผ ์ ์ ํ ๋น์ ํ๊ณ๊ฐ ๋๋ ทํ๋ค. ๋ฐ๋ผ์ ๋์ ํ ๋น์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
2.2.2 ๋์ ํ ๋น(Dynamic Allocation)
2.2.2.1 Working Set Model
ํ๋ก์ธ์ค๊ฐ ์คํ ์ค์ผ ๋ ์ด๋ ํ์ด์ง๋ฅผ ์ฌ์ฉํ๋์ง ์คํํ ๊ฒฐ๊ณผ์์ Locality ์ฑ์ง์ด ์ฑ๋ฆฝํ๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ ์ ์์๋ค. ์ฆ, ํน์ ์๊ฐ ๋์ ์ฐธ๊ณ ํ๋ ๋ถ๋ถ์ ์ผ๋ถ๋ถ์ด๋ค.
์ ๊ทธ๋ํ๋ ํ๋ก์ธ์ค๊ฐ ์คํ ์ค์ ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ๋์ง ํ์ํ ๊ฒ์ผ๋ก, ํน์ ์๊ฐ์๋ ์ผ์ ๋ฒ์์ ํ์ด์ง๋ฅผ ์ฃผ๋ก ์ฐธ์กฐํ๋ ๊ฒ์ ์ ์ ์๋ค. ์ด๋ฌํ ์ฑ์ง์ ์บ์์์๋ ๋ณผ ์ ์๋ค. ์ด๋ฅผ ํตํด ํน์ ์๊ฐ์ ๋ฐ๋ผ ์ฌ์ฉํ๋ ํ์ด์ง์ ๊ฐ์๋งํผ ํ๋ ์์ ํ ๋นํด์ค ์ ์๋ค.
๊ทธ๋ฐ๋ฐ ์ด๋ป๊ฒ locality๋ฅผ ์กฐ์ฌํ ์ ์์๊น? ์ฌ๊ธฐ์ ์น๋ช ์ ์ธ ๋จ์ ์ด ์๋ค. ๋ฐ๋ก ํ๋ก์ธ์ค๋ฅผ ๋ฏธ๋ฆฌ ์ํํด๋ด์ผ ํ ์ ์๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ํ๋ก์ธ์ค๋ฅผ ์ํํ ๋๋ง๋ค ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด ๋ฌ๋ผ์ง ์ ์์ผ๋ฏ๋ก, Locality๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ ๋นํ์ค์ ์ด๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋์จ ๊ฒ์ด working set ์ด๋ค. working set์ ์์ locality์ ๋ฐฉ์๊ณผ ์ ์ฌํ๋ฐ, ๋ฏธ๋๊ฐ ์๋ ๊ณผ๊ฑฐ๋ฅผ ๋ณด๋ ๊ฒ์ด๋ค.
์ ๊ทธ๋ฆผ์ working set์ ์ฌ์ฉํ๋ ๋ชจ์ต์ด๋ค. working set์ ํ์ฌ ์๊ฐ์์ ์ผ์ ์๊ฐ() ์ด์ ๋์ ์ฌ์ฉ๋์๋ ํ์ด์ง์ ์งํฉ์ด๋ค. (๋ธํ)๋ ์ด์์ฒด์ ๋ด๋ถ์์ ์ ํ๋ ๊ธฐ์ค์ ๋ฐ๋ผ ๋ค๋ฅด๋ฉฐ, ์ด๋ฅผ working set window ๋ผ ํ๋ค. ๋ง์ง๋ง์ผ๋ก working set์ ๊ฐ์๋งํผ ํ๋ ์์ ํ ๋นํ๋ค.
๋ง์ฝ ํ์ฌ ์๊ฐ์ด t1์ด๋ผ๋ฉด working set = {1, 2, 5, 6, 7}์ด๋ค. ์ด ๋ working set์ ๊ฐ์๋ ์ด 5๊ฐ์ด๋ฏ๋ก ํ๋ ์ ์ญ์ 5๊ฐ๋ฅผ ํ ๋นํด์ฃผ๋ฉด ๋๋ค.
2.2.2.2 Page-Fault Frequency(PFF)
ํ์ด์ง ๋ถ์ฌ์ ๋น์จ์ ํ๋ก์ธ์ค์ ํ ๋น๋ ํ๋ ์์ ์์ ๋ฐ๋น๋กํ๋ค. ์ฆ, ํ ๋น๋ ํ๋ ์์ ์๊ฐ ์ ์์๋ก ํ์ด์ง ๋ถ์ฌ ๋น์จ์ ๋์ด๋๋ค.
์ ๊ทธ๋ฆผ์ ์ด์ ๊ฐ์ ํ์์ ๊ทธ๋ํ๋ก ๋ํ๋ธ ๊ฒ์ด๋ค. ์ธ๋ก์ถ์ ํ์ด์ง ๋ถ์ฌ ๋น์จ์ด๊ณ , ๊ฐ๋ก์ถ์ ํ ๋น๋ ํ๋ ์์ ์์ด๋ค. ์ฌ๊ธฐ์ ์ด์์ฒด์ ๋ด๋ถ์์ ํด๋น ํ๋ก์ธ์ค์ ํ์ด์ง ๋ถ์ฌ ํ์๋ฅผ ๊ณ์ ๊ฒ์ฌํ๋ค. ๊ทธ๋ฌ๋ฉด ์์ ๊ฐ์ ๊ทธ๋ํ์ฒ๋ผ ๋์ค๋๋ฐ, ์ฌ๊ธฐ์ **์ํ์ (upper bound)๊ณผ ํํ์ (lower bound)**๋ฅผ ์ค์ ํ๋ค.
๋ง์ฝ ์ํ์ ๋ณด๋ค ๋ง์ ํ์ด์ง ๋ถ์ฌ๊ฐ ๋ฐ์ํ๋ฉด ํ๋ ์์ ๋ ๋ง์ด ํ ๋นํด์ฃผ๊ณ , ํํ์ ๋ณด๋ค ์ ๊ฒ ํ์ด์ง ๋ถ์ฌ๊ฐ ๋ฐ์ํ๋ฉด ํ ๋น๋ ํ๋ ์ ๊ฐ์๋ฅผ ์ค์ฌ์ค๋ค.
3. ํ์ด์ง ํฌ๊ธฐ(Page Size)
ํ์ฌ ํ์ด์ง์ ์ผ๋ฐ์ ์ธ ํฌ๊ธฐ๋ 4KB ~ 4MB ์ด๋ค. ์ด๋ ๊ณผ๊ฑฐ์์๋ถํฐ ์ ์ ์ปค์ ธ์๊ณ , ํ์ฌ์๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ ์ฆ๊ฐํ๋ฉด์ ์ปค์ง๊ณ ์๋ค.
ํ์ด์ง ํฌ๊ธฐ์ ๋ฐ๋ผ ์ฑ๋ฅ์๋ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์ง ์์๋ณด์.
3.1 ํ์ด์ง ํฌ๊ธฐ์ ๋ฐ๋ฅธ ์ฑ๋ฅ
- ๋ด๋ถ๋จํธํ
- ๋ด๋ถ๋จํธํ๋ฅผ ์ค์ด๋ ค๋ฉด ํ์ด์ง ํฌ๊ธฐ๋ ์์ ๊ฒ์ด ์ข๋ค.
- Page-in, page-out ์๊ฐ
- ํ์ด์ง์ in/out ์๊ฐ์ ๊ฒฐ์ ํ๋ ๊ฐ์ฅ ํฐ ์์ธ์ ํ๋๋์คํฌ ๊ธฐ์ค์ผ๋ก ํ๋๋์คํฌ์ ํค๋๊ฐ ์์ง์ด๋ ์๊ฐ์ด๋ค.(seek time) ํ์ด์ง ํฌ๊ธฐ๊ฐ ํฌ๋ฉด ํด์๋ก ํ ๋ฒ์ seek time๋ง๋ค ํฐ ํ์ด์ง๋ฅผ ์ฝ์ ์ ์์ผ๋ฏ๋ก, ํ์ด์ง ๋ถ์ฌ ๋น๋๊ฐ ์ค์ด๋ ๋ค.(๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ์๊ฐ์ ํฌ๊ธฐ์ ๋ฐ๋ผ ์ฐจ์ด๊ฐ ๋งค์ฐ ์ ๋ค.)
- ํ์ด์ง ํ
์ด๋ธ ํฌ๊ธฐ
- ํ์ด์ง ํฌ๊ธฐ๊ฐ ํด์๋ก ํ์ด์ง ๊ฐ์๊ฐ ์ค์ด๋ค๊ธฐ ๋๋ฌธ์ ๊ทธ๋งํผ ํ์ด์ง ํ ์ด๋ธ ํฌ๊ธฐ๋ ์ค์ผ ์ ์๋ค.
- Memory resolution(ํด์๋)
- Memory resolution์ ํด๋น ๋ฉ๋ชจ๋ฆฌ์ ํ์ํ ๋ฐ์ดํฐ๊ฐ ์๋ ํ๋ฅ ์ด๋ค. ์ด๋ ํ์ด์ง ํฌ๊ธฐ๊ฐ ์์์๋ก resolution์ ๋์ผ ์ ์๋ค. ๋ง์ฝ ํ์ด์ง ํฌ๊ธฐ๊ฐ ํฌ๋ฉด ๋ค๋ฅธ ํ์์๋ ๋ถ๋ถ์ด ์์ ํ๋ฅ ์ด ํฌ๊ธฐ ๋๋ฌธ์ด๋ค.
- Page fault ๋ฐ์ ํ๋ฅ
- Page fault ๋ฐ์ ํ๋ฅ ์ ์ค์ด๋ ค๋ฉด ํ์ด์ง ํฌ๊ธฐ๊ฐ ํฐ ๊ฒ์ด ์ข๋ค. ์ด๋ locality ์ฑ์ง๊ณผ๋ ๊ด๋ จ์ด ์๋๋ฐ, ๋๋ถ๋ถ ํ๋ก์ธ์ค๋ ํ์ํ ๋ถ๋ถ์ด ์ผ์ ๋ฒ์ ์ด๋ด์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฏ๋ก ํ์ด์ง ํฌ๊ธฐ๊ฐ ํด์๋ก ํ์ํ ๋ถ๋ถ์ด ์์ ํ๋ฅ ์ด ํฌ๋ค.
big | small |
---|---|
Page fault ๋ฐ์ ํ๋ฅ โผ | ๋ด๋ถ ๋จํธํ โผ |
ํ์ด์ง ํ ์ด๋ธ ํฌ๊ธฐ โผ | Page-in, page-out ์๊ฐ โผ |
Memory resolution(ํด์๋) โฒ |
3.2 ํ์ด์ง ํ ์ด๋ธ
๋ฐ๋์ฒด ๊ธฐ์ ์ ๋ฐ๋ฌ๋ก TLB ์ญ์ CPU์ ๋ด์ฅ ์นฉ ํํ๋ก ๋ง๋ค์ด์ ธ์๋ค.
Reference
- KOCW ์ํฌ์ฌ ๊ต์๋ - ์ด์์ฒด์
- ์ํฌ์ฌ ๊ต์๋ ๋ธ๋ก๊ทธ(์ํ ๊ธฐ์ถ ๋ฌธ์ )
- codemcd ๋์ ์ ๋ฆฌ๊ธ
- Operating System Concepts, 9th Edition - Abraham Silberschatz