1. ์ค์ ์์ญ(swap area)
์ค์ ์์ญ์ด ๋์
๋๊ธฐ ์ด์ ์๋ ํ์ ๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ผ๋ก ์ธํด ๋ง์ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ ์ ์์๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ๋ณด์กฐ๊ธฐ์ต์ฅ์น ๊ณต๊ฐ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ด์๊ณ ์ด ๊ณต๊ฐ์ ์ค์์์ญ(swap area) ์ด๋ผ ๋ถ๋ฅธ๋ค. ์ค์์์ญ์ ์ฌ์ฉํ์ง ์๋ ํ๋ก์ธ์ค๋ฅผ ๋ณด์กฐ๊ธฐ์ต์ฅ์น ์ผ๋ถ ์์ญ์ ์์๋ก ์ ์ฅํ๋ ๊ณต๊ฐ์ด๋ฉฐ, ์ค๋ ๊ธฐ๊ฐ ์ฌ์ฉํ์ง ์๋ ํ๋ก์ธ์ค๋ ์ค์ ์์(swap out) ํ์ฌ ๋ณด์กฐ๊ธฐ์ต์ฅ์น๋ก ํ๋ก์ธ์ค ์ ๋ณด๋ฅผ ๋ณด๋ด๊ณ , ํ๋ก์ธ์ค ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ๊ฒฝ์ฐ ์ค์ ์ธ(swap in) ํ์ฌ ๋ฉ๋ชจ๋ฆฌ(RAM) ๋ก ํ๋ก์ธ์ค ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค.
์ค์ ์์ญ์ ํ์ฉํ๋ฉด ์ด์์ฒด์ (OS)๊ฐ ํ์ ๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ๋ณด๋ค ๋์ฑ ๋ง์ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ ์ ์์ด ๋์ฑ ๋ง์ ํ๋ก์ธ์ค์ ๋์ ์คํ์ด ๊ฐ๋ฅํ๋ค.

๋ค๋ง ํ๋ก์ธ์ค๊ฐ ์ค์ ์ธ(swap in) ํ๋ ๊ฒฝ์ฐ ์ค์ ์์(swap out) ํ๊ธฐ ์ ๋ฉ๋ชจ๋ฆฌ ๋ฌผ๋ฆฌ ์ฃผ์์ ๋ค๋ฅธ ์ฃผ์์ ์ ์ฌ๋ ์ ์๋ค.
2. ๋ฉ๋ชจ๋ฆฌ ์ ์ฌ ๋ฐฉ์
์ค์ ์์ญ์์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ค์-์ธ(swap-in) ๊ณผ์ ์์ ํ๋ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ(RAM) ์ ์ ์ฌํด์ผ ํ๋ค. ์ ์ฌํ๋ ๋ฐฉ์์ ํฌ๊ฒ 3๊ฐ์ง๊ฐ ์กด์ฌํ๋ฉฐ ์ต์ด ์ ํฉ(first-fit), ์ต์ ์ ํฉ(best-fit), ์ต์ ์ ํฉ(worst-fit) ์ด ์๋ค.

์ต์ด ์ ํฉ(first-fit)
- ํ๋ก์ธ์ค๊ฐ ์ ์ฌ๋ ์ ์๋ ๊ณต๊ฐ์ ๋ฐ๊ฒฌํ๋ ์ฆ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋ก์ธ์ค๋ฅผ ๋ฐฐ์นํ๋ ๋ฐฉ์์ด๋ค.
- ๊ฒ์ ์๊ฐ์ ์ต์ํํ ์ ์์ผ๋ฉฐ ๊ฒฐ๊ณผ์ ์ผ๋ก ๋น ๋ฅธ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ๊ฐ๋ฅํ ์ฅ์ ์ด ์๋ค.
์ต์ ์ ํฉ(best-fit)
- ํ๋ก์ธ์ค๊ฐ ์ ์ฌ๋ ์ ์๋ ๋น ๊ณต๊ฐ ์ค ๊ฐ์ฅ ์์ ๊ณต๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ๋ฐฐ์นํ๋ ๋ฐฉ์์ด๋ค.
- ๊ฐ์ฅ ์์ ๊ณต๊ฐ์ ํ ๋นํ๋ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ ๋ด๋ถ ๋จํธํ๋ฅผ ์ต์ํํ ์ ์๋ ์ฅ์ ์ด ์๋ค.
์ต์ ์ ํฉ(worst-fit)
- ํ๋ก์ธ์ค๊ฐ ์ ์ฌ๋ ์ ์๋ ๋น ๊ณต๊ฐ ์ค ๊ฐ์ฅ ํฐ ๊ณต๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ๋ฐฐ์นํ๋ ๋ฐฉ์์ ๋งํ๋ค.
- ์ด ๋ฐฉ์์ ๋ชฉํ๋ ํฐ ํ๋ก์ธ์ค๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ํฐ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ญ์ ๊ฐ๋ฅํ ์ ์งํ ์ ์๋ ์ฅ์ ์ด ์๋ค.
3. ์ธ๋ถ ๋จํธํ(external fragmentation)
ํ๋ก์ธ์ค๋ฅผ ์ ์ฌํ๋ค ๋ณด๋ฉด ์์ ์ฌ์ ๊ณต๊ฐ์ผ๋ก ์ธํด ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ญ๋น๋๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด๋ฌํ ์์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ผ๋ก ์ธํด ํ๋ก์ธ์ค๋ฅผ ์ ์ฌํ์ง ๋ชปํ๊ณ ๋ญ๋น๋๋ ๊ณต๊ฐ์ ์ธ๋ถ ๋จํธํ(external fragmentation) ๋ผ ๋ถ๋ฅธ๋ค. ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋์
๋๊ธฐ ์ด์ ์๋ ์์ถ(compaction) ์ ํตํด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ ํ๋ค. ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ๋ฐฐ์นํ์ฌ ํฉ์ด์ง ๊ณต๊ฐ์ ํ๋๋ก ๋ชจ์ผ๋ ๋ฐฉ์์ด๋ค. ํ์ง๋ง ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ๋ฐฐ์นํ๋ ๋์ ์์คํ
์ ์ค์งํด์ผ ํ๋ ์ค๋ฒํค๋(overhead)๊ฐ ๋ฐ์ํ๋ ๋จ์ ์ด ์์๋ค. ํ์ง๋ง ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ(virtual memory) ๊ณผ ํ์ด์ง(paging) ๊ธฐ๋ฒ์ด ๋์
๋๋ฉด์ ์์คํ
์ด ์ค์ง๋๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.

4. ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ(Virtual Memory)
(1) ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ & ํ์ด์ง
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ์คํํ๊ณ ์ ํ๋ ํ๋ก์ธ์ค ์ผ๋ถ๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๋ ๋ฐฉ๋ฒ์ด๋ค. ํ๋ก์ธ์ค ์ผ๋ถ๋ง ์ ์ฌํ๊ธฐ ๋๋ฌธ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์ด ํฌ๊ธฐ๋ฅผ
๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ณด๋ค ํฐ ํ๋ก์ธ์ค ์คํ์ด ๊ฐ๋ฅํ๊ณ ์์ ์ด์ผ๊ธฐํ ์ธ๋ถ ๋จํธํ๋ฅผ ๊ฐ์ ํ ์ ์์ด ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๊ฒ ๋์๋ค.
๊ทธ๋ ๋ค๋ฉด ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ์ด๋ป๊ฒ ํ๋ก์ธ์ค ์ผ๋ถ๋ง ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฌํ ์ ์์์๊น?
๋ฐ๋ก ํ์ด์ง ๊ธฐ๋ฒ(paging) ์ด๋ค. ํ์ด์ง ๊ธฐ๋ฒ์ ํ์ด์ง(page) ๋ผ๋ ์ผ์ ๋จ์๋ก ์๋ฅธ ํ๋ก์ธ์ค์ ๋ ผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ๊ณผ ํ๋ ์(frame) ์ด๋ผ๋ ์ผ์ ๋จ์๋ก ์๋ฅธ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. ํ๋ก์ธ์ค์ ํ์ํ ํ์ด์ง๋ฅผ ์ค์-์ธ(swap-in) ํ๋ ๊ณผ์ ์ ํ์ด์ง-์ธ(page-in), ๋ฐ๋๋ก ๋ด๋ณด๋ด๋ ๊ณผ์ ์ ํ์ด์ง-์์(page-out) ์ด๋ผ ํ๋ค.
(2) ํ์ด์ง ํ ์ด๋ธ
๋ฉ๋ชจ๋ฆฌ๋ก ์์ ์กฐ๊ฐ์ ๊ฐ์ ธ์ค๋๋ผ๋ ๋ถ์ฐ์์ ์ธ ๋ฐฐ์น๋ก ์ธํด CPU ๊ฐ ์คํํ ๋ช ๋ น์ด๋ฅผ ์ฐพ๊ธฐ ์ด๋ ค์ด ๋จ์ ์ด ์์๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ์ด์ง ํ ์ด๋ธ(page table) ์ด ๋์ ๋์๋ค. ํ์ด์ง ํ ์ด๋ธ์ ๋ถ์ฐ์์ ์ธ ํ๋ ์์ ๋ฌผ๋ฆฌ ์ฃผ์๋ฅผ CPU ๊ฐ ์คํํ ๋ช ๋ น์ด๋ฅผ ์ฐพ๋๋ฐ ๋์์ ์ฃผ๋ ํ ์ด๋ธ์ด๋ค. ๋ฌผ๋ฆฌ ์ฃผ์๊ฐ ๋ถ์ฐ์์ ์ผ๋ก ๋ฐฐ์น๋์ด ์๋๋ผ๋ ๋ ผ๋ฆฌ ์ฃผ์๋ ์ฐ์์ ์ผ๋ก ๋ฐฐ์นํ์ฌ ํ์ฌ ์ด๋ค ํ์ด์ง๊ฐ ์ด๋ค ํ๋ ์์ ํ ๋น๋์ด ์๋์ง ์ ์ ์์ด CPU ๊ฐ ์คํํ ๋ช ๋ น์ด๋ฅผ ์ฝ๊ฒ ์ ์ ์๋ค.
ํ์ด์ง ํ ์ด๋ธ์ ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํ ๋น๋๋ฉฐ, ๊ฐ ํ๋ก์ธ์ค๋ ๊ฐ ํ์ด์ง ํ ์ด๋ธ์ ๊ฐ์ง๊ณ ์๋ค. ๋ํ CPU ๋ ์์ ์ค์ธ ํ๋ก์ธ์ค์ ํ์ด์ง ํ ์ด๋ธ์ CPU Register ์ข ๋ฅ ์ค ํ๋์ธ PTBR(Page Table Base Register) ์ ๊ณต๊ฐ์ ํตํด ์ฐธ์กฐํ๊ณ ์๋ค.
ํ์ง๋ง ํ์ด์ง ํ ์ด๋ธ์ด ๋ง๋ฅ์ ์๋๋ค. ํ์ด์ง ํ ์ด๋ธ์ ํตํด ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผ์ ์ํด์ 2๋ฒ์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ํด์ผ ํ๋ ๋ฌธ์ ๊ฐ ์๋ค.
์ฒซ ๋ฒ์งธ๋ก ํ์ด์ง ํ ์ด๋ธ์ ์ฐธ์กฐํ๊ณ , ๋ ๋ฒ์งธ๋ก ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐธ์กฐํด์ผ ํด์ผ๋๋ ๋ฒ๊ฑฐ๋ก์์ด ์์๋ค.

(3) TLB(Translation Lookaside Buffer)
ํ์ด์ง ํ ์ด๋ธ์ ์ด์ฉํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐํ ๋๋ง๋ค 2๋ฒ์ฉ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํด์ผ ํ๋ ๋ฌธ์ ๊ฐ ์์๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด page table ์ CPU cache memory ์ ์บ์ฑํ์๋ค. ์บ์ฑํ ๋ฉ๋ชจ๋ฆฌ์ ์์ญ์ TLB(Translation Lookaside Buffer) ์ด๋ค. ๋ง์ฝ CPU ๊ฐ ์ฐธ์กฐํ๊ณ ์ ํ๋ ๋ ผ๋ฆฌ ์ฃผ์๊ฐ ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ, ํ์ด์ง ํ ์ด๋ธ์ ์ ๊ทผํ๊ณ ํ์ด์ง ํ ์ด๋ธ ์ ๋ณด๋ฅผ ์บ์ฑํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ ์์ ์ ์งํํ ๋, ์บ์ฑ๋ ๊ฐ์ ํ์ฉํ์ฌ ์ฌ์ฉํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ง ์ฐธ์กฐํ๋ค.

(4) ํ์ด์ง ํดํธ (page fault)
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ํ์ํ ๋ฉ๋ชจ๋ฆฌ๋ง ํ ๋นํ๊ธฐ ๋๋ฌธ์ ํ์ด์ง-์ธ(page-in), ํ์ด์ง-์์(page-out) ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค. ์ด ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค๋ณด๋ฉด ํ์ด์ง์ ์๋ง๋ ํ๋ ์์ด ํ ๋น๋์ด ์์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋๋ฐ ์ด๋ฅผ ํ์ด์ง ํดํธ(page fault) ๋ผ ํ๋ค. ํ์ด์ง ํดํธ๊ฐ ๋ฐ์ํ๋ฉด ํด๋น ํ์ด์ง๋ฅผ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ(virtual memory) ์์ ์ฐพ์์ผ ํ๊ณ ๊ทธ๋งํผ์ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ๋ค. ํ์ด์ง ํดํธ์ ๊ด๋ จ๋ ๋ด์ฉ์ ๋ค์์ ๋ฐ๋ก ํ๋ฒ ๋ค๋ฃจ๋๋ก ํด๋ณด์.
Reference
'๐ computer-science' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ์บ์ ์ ๋ฆฌ (Cache Summary) (0) | 2025.03.09 |
|---|---|
| ํด์ ํ ์ด๋ธ(Hash Table) (0) | 2024.02.19 |
| Multi Programming, Processing, Tasking, Threading (0) | 2024.02.16 |
| thread type & model (0) | 2024.02.15 |
