๋ฉ๋ชจ๋ฆฌ
๋ฉ๋ชจ๋ฆฌ
์ ์
๋ฉ๋ชจ๋ฆฌ๋ ๊ฐ์ ์ฃผ์๋ฅผ ๊ฐ์ง ๋ฐ์ดํธ๋ค์ ํฐ ๋ฐฐ์ด์ด๋ค. CPU๋ ํ๋ก๊ทธ๋จ ์นด์ดํฐ๋ฅผ ์ด์ฉํด ๋ฉ๋ชจ๋ฆฌ์์ ๋ช ๋ น์ด๋ฅผ fetchํ๊ณ , ๋ช ๋ น์ด๋ ๋ฉ๋ชจ๋ฆฌ๋ก์ load/store๋ฅผ ์ ๋ฐํ๋ค.
๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ๋ถ๋ฆฌ์ ๋ณดํธ
๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฌ์ง๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, Base Register๊ณผ Limit Register์ผ๋ก ๊ฐ ํ๋ก์ธ์ค๋ง๋ค ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ณด์ฅํด์ผ ํ๋ค.
- Base Register : ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์์ ์ฃผ์
- Limit Register : ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ก๋ฆฌ ์์ญ์ ํฌ๊ธฐ

CPU๋ ์ ์ ๋ชจ๋์์ ์์ฑ๋๋ ๋ชจ๋ ์ฃผ์๋ฅผ ๋ ๋ ์ง์คํฐ์ ๋น๊ตํ๊ณ , ๋ชจ๋ ์ฐธ์ผ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ค.

์ฃผ์ ๋ฐ์ธ๋ฉ
ํ๋ก๊ทธ๋จ์ ๋์คํฌ์ ์คํ๊ฐ๋ฅํ ์ด์ง ํ์ผ ํํ๋ก ์ ์ฅ๋๋ค. ์ด๋ฅผ ์คํํ๊ธฐ ์ํด์ ๋ฉ๋ชจ๋ฆฌ๋ก ๊ฐ์ ธ์์ง๋ค. ์์ค ์ฝ๋์๋ ๋ณดํต Symbolic ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์์ค ์ฝ๋๋ฅผ ์ปดํ์ผ๋ฌ๊ฐ ์ปดํ์ผํ์ฌ ์ค๋ธ์ ํธ ํ์ผ๋ก ๋ณํ์ ํ ๋, Symbolic ์ฃผ์๊ฐ relocatable ์ฃผ์๋ก ๋ณํ๋๋ค. ์ดํ ๋ง์ปค ํน์ ๋ก๋๊ฐ relocatable ์ฃผ์๋ฅผ absolute ์ฃผ์๋ก ๋ณํํ๋ค.
-
Symbolic Address : ํ๋ก๊ทธ๋๋จธ๊ฐ ์์ค ์ฝ๋์์ ์ฌ์ฉํ๋ ์ด๋ฆ์ผ๋ก ๋ ์ฃผ์
int count = 0; // 'count' ๋ผ๋ ์ฌ๋ณผ void main() { // 'main' ์ด๋ผ๋ ์ฌ๋ณผ count = count + 1; printf("%d", count); // 'printf' ๋ผ๋ ์ฌ๋ณผ } -
Relocatable Address : ์ด ๋ชจ๋์ ์์์ ์ผ๋ก๋ถํฐ N ๋ฐ์ดํธ ๋จ์ด์ง ์์น ํํ์ ์๋ ์ฃผ์
๋ชจ๋ ๋ด๋ถ ์คํ์ ์ฌ๋ณผ ํฌ๊ธฐ +0 main 120 bytes +120 count 4 bytes +124 buffer 256 bytes -
Absolute Address : ๋ง์ปค ํน์ ๋ก๋๊ฐ Relocatable ์ฃผ์๋ฅผ ์ค์ ๋ฉ๋ชจ๋ฆฌ ์์น๋ก ํ์ ํ ์ฃผ์
- ๋ง์ปค ํน์ ๋ก๋๊ฐ ์ ๋ชจ๋์ ์ฃผ์ 74000๋ฒ์ง๋ก ์ ์ฌํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๋ฉด ์๋์ ๊ฐ์ด ๋ฉ๋ชจ๋ฆฌ ์์น๊ฐ ํ์ ๋๋ค.
์ด์ (relocatable) โ ์ดํ (absolute) +0 74000 (main) +120 74120 (count) +124 74124 (buffer)

๋ ผ๋ฆฌ ์ฃผ์ vs ๋ฌผ๋ฆฌ ์ฃผ์
- ๋
ผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ : ํ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ ์ ์๋ ๋
ผ๋ฆฌ ์ฃผ์๋ค์ ๊ณต๊ฐ
- ๋ ผ๋ฆฌ ์ฃผ์ : CPU๊ฐ ์์ฑํ๋ ์ฃผ์, ํ๋ก๊ทธ๋จ์ด ๋ณด๋ ์ฃผ์
- ๋ฌผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ : ์์คํ
์ด ์ค์ ๋ก ์กด์ฌํ๋ ๋ฌผ๋ฆฌ ์ฃผ์๋ค์ ์งํฉ
- ๋ฌผ๋ฆฌ ์ฃผ์ : ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ํ๋์จ์ด ์ฃผ์, ๋ฉ๋ชจ๋ฆฌ ์นฉ์ ์ ๋ฌ๋๋ ์ฃผ์
MMU
Memory Managment Unit์ ์ฝ์ด๋ก ๋ ผ๋ฆฌ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํ์ ์ํํ๋ ํ๋์จ์ด ์ฅ์น์ด๋ค.

์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น
์ ํ๋ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ๋ฌ ํ๋ก์ธ์ค์ ๋ํด ํจ์จ์ ์ผ๋ก ํ ๋นํ ์ ์๋ ๋ฐฉ๋ฒ์ด ๋ฌด์์ผ๊น? ์ผ๋ฐ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ ๋ ํํฐ์ ์ผ๋ก ๋๋๊ฒ ๋๋ค.
- OS ์์ญ
- ์ฌ์ฉ์ ํ๋ก์ธ์ค ์์ญ
์ฌ๋ฌ ์ฌ์ฉ์ ํ๋ก์ธ์ค๊ฐ ๋์์ ๋ฉ๋ชจ๋ฆฌ์ ์์ฃผํ ์ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์, ๋๊ธฐ ์ค์ธ ํ๋ก์ธ์ค์๊ฒ ์ด๋ป๊ฒ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํด์ผํ ์ง๊ฐ ๋ฌธ์ ์ด๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ ์ค ํ๋๊ฐ ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด๋ค.
์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ๊ฐ ํ๋ก์ธ์ค๋ ํ๋์ ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ๊ฐ์ ํต์งธ๋ก ๋ค์ด๊ฐ๊ณ , ๊ทธ๋ค์ ํ๋ก์ธ์ค๋ ๋ฐ๋ก ์ด์ด์ง๋ ๋ค๋ฅธ ์ฐ์ ๊ตฌ๊ฐ์ ๋ค์ด๊ฐ๋ ๊ฒ์ด๋ค. ํ๋ก์ธ์ค๊ฐ ๋ค์ ํ๋ก์ธ์ค ๋ค์ ์์นํด์ผํ๊ธฐ ๋๋ฌธ์ ์ฃผ์ ๊ณต๊ฐ ์นจ๋ฒ์ ๋ง์์ผํ๊ณ , Relocation Register๊ณผ Limit Register ๋ ๋ ์ง์คํฐ๋ฅผ ํ์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ๋ณดํธ๋ฅผ ์ํํ๋ค. ๋ํ, ๋ณํ ๋ก์ง๋ ๋์์ ์ํํ๋ค.

Variable-Partition
๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ๋ณ ํฌ๊ธฐ ํํฐ์ ์ผ๋ก ๋๋์ด, ๊ฐ ํํฐ์ ์ ์ ํํ ํ๋์ ํ๋ก์ธ์ค๋ฅผ ํ ๋นํ๋ ๋ฐฉ์์ด๋ค. ์ฌ์ง ์ฒ๋ผ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ฐ๋ณ ํฌ๊ธฐ ํํฐ์ ์ผ๋ก ๋๋๊ณ ๊ฐ ๊ณต๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ์ ์ฌํ๋ค. ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๋ฉด ๋ฉ๋ชจ๋ฆฌ์๋ ๊ณต๊ฐ์ด ์๊ธฐ๊ณ ์ด ๊ณต๊ฐ์ hole์ด๋ผ๊ณ ํ๋ค. ๋ค์์ ์คํ๋ ํ๋ก์ธ์ค๋ ์ด์์ฒด์ ๊ฐ ํด๋น ํ๋ก์ธ์ค๋ฅผ ์ ์ฌํ ์ ์๋ hole๋ฅผ ์ฐพ์ ํ ๋นํด์ค๋ค.

Dynamic Storage Allocation Problem
ํ๋ก์ธ์ค์ ํฌ๊ธฐ๋ ์ ๊ฐ๊ฐ์ด๊ณ , hole ํฌ๊ธฐ ๋ํ ์ ๊ฐ๊ฐ์ด๋ค. ์ด ๊ณผ์ ์์ ์ ์ ํ ํฌ๊ธฐ์ hole๋ฅผ ์ฐพ์ ๊ณผ์ ์์ ๋ํ์ ์ธ ์ธ ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ์ด ์ฌ์ฉ๋๋ค.
- First-Fit : ์ถฉ๋ถํ ํฐ ์ฒซ ๋ฒ์งธ hole์ ํ ๋น
- Best-Fit : ์ถฉ๋ถํ ๊ฐ์ฅ ์์ hole์ ํ ๋น
- Worst-Fit : ๊ฐ์ฅ ํฐ hole์ ํ ๋น
๋จํธํ
๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ณ ํด์ ํ๋ ๊ณผ์ ์ด ๋ฐ๋ณต๋๋ฉด์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ์กฐ๊ฐ๋ ์ด ๊ณต๊ฐ์ ์ถฉ๋ถํด๋ ์ค์ ๋ก ์ฌ์ฉํ ์ ์๊ฒ ๋๋ ํ์์ด๋ค.
๋ด๋ถ ๋จํธํ
- ํ๋ก์ธ์ค์ ํฌ๊ธฐ๋ณด๋ค ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ํฐ ๊ฒฝ์ฐ์ ๋ฐ์
- ์ผ์ ํฌ๊ธฐ๋ก ๋ถํ ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋ก์ธ์ค๊ฐ ์ ์ฌ๋์์ง๋ง ์ฌ์ ๊ณต๊ฐ์ด ๋ฐ์
- ํ๋์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์๋ ํ๋์ ํ๋ก์ธ์ค๋ง ์ ์ฌ๋ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ๋์ง ๋ชปํจ
์ธ๋ถ ๋จํธํ
- ํ๋ก์ธ์ค์ ํฌํค๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ๋ณด๋ค ํฐ ๊ฒฝ์ฐ์ ๋ฐ์
- ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๊ณ ์๊ธด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ ๋น ๊ณต๊ฐ์ ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ์ ์ฌํ์ง ๋ชปํจ
ํด๊ฒฐ ๋ฐฉ๋ฒ
- ํตํฉ ๊ธฐ๋ฒ : ์ธ์ ํด ์๋ ๋ ๊ณต๊ฐ์ด ๋น์ด์๋ค๋ฉด ํ๋๋ก ํตํฉ
- ์์ถ ๊ธฐ๋ฒ : ๋น์ด์๋ ๊ณต๊ฐ๋ค์ ํตํฉํ์ฌ ํ๋์ ๊ณต๊ฐ์ผ๋ก ๋ง๋๋ ์์
- ์ฌ๋ฐฐ์น ๊ธฐ๋ฒ : ํ๋ก๊ทธ๋จ์ ์ฃผ์๋ฅผ ์๋กญ๊ฒ ์ง์
ํ์ด์ง
์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ๋ค์๊ณผ ๊ฐ์ ํ๊ณ๊ฐ ์กด์ฌํ๋ค.
- ์ธ๋ถ ๋จํธํ : ์๊ฐ์ด ์ง๋๋ฉด ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ hole๋ค๋ก ์ชผ๊ฐ์ง๋ค.
- ์์ถ ๋น์ฉ : ๋จํธํ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ๋น์ด์๋ ๊ณต๊ฐ๋ค์ ์์ถํ ์ ์์ง๋ง ๋น๊ตฅ์ด ๋ฐ์ํ๋ค.
- ์ฐ์์ฑ ์ ์ฝ : ํ๋ก์ธ์ค๊ฐ ๋ฐ๋์ ํ ๋ฉ์ด๋ฆฌ์ฌ์ผ ํ๋ค.
ํ์ด์ง์ ํ๋ก์ธ์ค๊ฐ ๋ฐ๋์ ์ฐ์๋ ํ์๋ ์๋ค๋ผ๋ ์์ด๋์ด๋ฅผ ํตํด ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํ๊ณ๋ฅผ ํด๊ฒฐํ๋ค.
ํ์ด์ง์ ๊ธฐ๋ณธ ๋ฉ์ปค๋์ฆ์ Page์ Frame์ด๋ค.
- Page : ๋ ผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์์ ๊ฐ์ ํฌ๊ธฐ ๋ธ๋ก์ผ๋ก ๋๋
- Frame : ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์์ ๊ณ ์ ํฌ๊ธฐ ๋ธ๋ก์ผ๋ก ๋๋
์ด๋ฅผ ํตํด ๋ ผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ๊ณผ ๋ฌผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ด ์์ ํ ๋ถ๋ฆฌ๋๋ค.
CPU๊ฐ ์์ฑํ๋ ์ฃผ์๋ ๋ ํํธ๋ก ๋ถ๋ฆฌ๋๋ค.
- Page Number : ํ์ด์ง ํ ์ด๋ธ์ ์ธ๋ฑ์ค๋ก ์ฌ์ฉ
- Page Offset : ํด๋น ํ์ด์ง ๋ด์์ ๋ช ๋ฒ์งธ ๋ฐ์ดํธ์ธ์ง ์ฌ์ฉ
