๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
- ํ๋์จ์ด ์ง์ CPU์ ๋ฉ๋ชจ๋ฆฌ๊ฐ์ ์ ๊ทผ์ค OS๊ฐ ๊ฐ์ ํ๊ฒ๋๋ฉด ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค. ๋ฐ๋ผ์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ๋ณดํธ๊ธฐ๋ฒ์ ํ๋์จ์ด๊ฐ ์ง์ํด์ผํ๋ค. Base register์ Limit register๋ฅผ ํตํด ํ๋ก์ธ์ค์ ํ ๋น๋ ์ฌ์ต์ ํฌ๊ธฐ๋ฅผ ์ ์ฅ ๋ฐ ๋ณดํธํ๋ค. (Base register์ Limit register๋ Preivileged instruction์ ์ํด ์ค์ ๊ฐ๋ฅ)
๋ฉ์ธ๋ฉ๋ชจ๋ฆฌ
์ฃผ์ ํ ๋น
๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ ๋ช ๋ น์ด์ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์์ ์ ๋ฐ๋ผ ๊ตฌ๋ถ๋๋ค
- ์ปดํ์ผ ์๊ฐ (Compile time): ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ด์ ๋ค์ด๊ฐ ์์น๋ฅผ ์ปดํ์ผ ์๊ฐ์ ์ ์ ์์ผ๋ฉด ์ ๋์ฝ๋ ์์ฑ ๊ฐ๋ฅํ๋ค.
- ์ ์ฌ ์๊ฐ (Load time): ์ปดํ์ผ๋ฌ๊ฐ ์ด์ง์ฝ๋๋ฅผ ์ฌ๋ฐฐ์น ๊ฐ๋ฅ ์ฝ๋๋ก ์์ฑ, ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ก ์ ์ฌ์ ์ฌ๋ณผ๊ณผ ๋ฒ์ง์ ๋ฐ์ธ๋ฉ๋๋ค.
- ์คํ ์๊ฐ (Execution time): ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ ๋์ค ๋ค๋ฅธ ์ธ๊ทธ๋จผํธ๋ก ์ด๋ํ๊ฒ๋๋ฉด, ๋ฐ์ธ๋ฉ์ด ์คํ์๊ฐ์ ์ด๋ค์ง๋ค.
๋ ผ๋ฆฌ ์ฃผ์์ ๋ฌผ๋ฆฌ์ ์ฃผ์
- Logical address space ํ๋ก๊ทธ๋จ์ ์ํด ์์ฑ๋ ๋ชจ๋ ๋ ผ๋ฆฌ์ฃผ์ ์งํฉ
- Physical address space ๋ ผ๋ฆฌ์ฃผ์์ ์ผ์นํ๋ ๋ชจ๋ ๋ฌผ๋ฆฌ ์ฃผ์ ์งํฉ์ ๋ฌผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ด๋ผํ๋ค.
**๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ฅ์น(MMU)**์ ์ํด ๊ฐ์ ์ฃผ์(๋ ผ๋ฆฌ์ ์ฃผ์)๊ฐ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํ๋๋ค.
๋์
- ๋์ ์ ์ฌ: ๋์ ์ ์ฌ์์๋ ์ค์ ํธ์ถ๋๊ธฐ์ ๊น์ง ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ ์ฌ๋ฐฐ์น ๊ฐ๋ฅ ์ํ๋ก ๋์คํฌ์์ ๋๊ธฐํ๋ค. ํธ์ถ ์ ์ฌ๋ฐฐ์น ๊ฐ๋ฅ ์ฐ๊ฒฐ ์ ์ฌ๊ธฐ( Relocatable linking loader)๊ฐ ๋ถ๋ ค ์๊ตฌ๋ ๋ฃจํด์ ๋ฉ๋ชจ๋ฆฌ๋ก ๊ฐ์ ธ์จ๋ค.
- ๋์ ์ฐ๊ฒฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(DLL): ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ์ ๊ณต์ ๊ฐ ๊ฐ๋ฅํ๋ฏ๋ก DLL์ธ์คํด์ค๊ฐ ํ๋๋ง ์กด์ฌํด๋๋๋ค. (OS ์ง์์ด ํ์ํ๋ค.)
๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐฉ์
๊ฐ๋ณ ํํฐ์ ๊ธฐ๋ฒ: ์ด์์ฒด์ ๋ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ๋ถ๋ถ๊ณผ ์ฌ์ฉ ์ค์ธ ๋ถ๋ถ์ ๋ํ๋ด๋ ํ ์ด๋ธ ์ ์ง ๊ฐ ํํฐ์ ์ ํ๋์ ํ๋ก์ธ์ค๋ง ์ ์ฌ ๊ฐ๋ฅํ๋ค.
- Hole: ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก
์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น
- First-Fit: ์ฒซ๋ฒ์งธ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ์ฉ๊ณต๊ฐ ํ ๋น
- Best-Fit: ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ ์ค ๊ฐ์ฅ ์์ ๊ฒ ์ ํ
- Worst-Fit: ๊ฐ์ฅ ํฐ ๊ฐ์ฉ ๊ณต๊ฐ ์ ํ
๋จํธํ (Fragmentation)
- ์ธ๋ถ๋จํธํ: ํ๋ก์ธ์ค๋ค์ด ์ ์ฌ๋๊ณ ์ ๊ฑฐ๋๋ ์์ ์ ๋ฐ๋ณตํ๋ค๋ณด๋ฉด ๋๋ฌด ๋ง์ ์์ ์์ ๊ฐ์ฉ ๊ณต๊ฐ๋ค๋ก ๋จํธํ๋๋ค. ์ธ๋ถ ๋จํธํ์ ๊ฒฝ์ฐ **์์ถ(Compaction)**์ ์ํด ํด๊ฒฐ๋ ์ ์๋๋ฐ ํ๋ก์ธ์ค๋ค์ ์ฌ๋ฐฐ์น๊ฐ ์คํ์๊ฐ์ ๋์ ์ผ๋ก ์ผ์ด๋๋ ๊ฒฝ์ฐ์๋ง ๊ฐ๋ฅํ๋ค.
- ๋ด๋ถ๋จํธํ: ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋จผ์ ์์ ๊ณต๊ฐ๋ค๋ก ๋ถํ ํ๊ณ , ํ๋ก์ธ์ค๊ฐ ์์ฒญํ๋ฉด ๋ถํ ๋ ํฌ๊ธฐ์ ์ ์๋ฐฐ๋ก ํ ๋นํ๋ค. ์ด๋ ํ ๋น๋ ๊ณต๊ฐ์ด ์๊ตฌ๋ ๊ณต๊ฐ๋ณด๋ค ํด ์ ์๋๋ฐ ๋จ์ ๋ถ๋ถ์ด ๋ด๋ถ ๋จํธํ๋ค.
Paging
- Physical memory๋ Frame๋ก ๊ฐ์ ํฌ๊ธฐ ๋ธ๋ก์ผ๋ก ๋๋ ์ง๋ค.
- Logical memory๋ Page๋ก ๊ฐ์ ํฌ๊ธฐ์ ๋ธ๋ก์ผ๋ก ๋๋ ์ง๋ค.
- Address = Page number (ํ์ด์ง ํ ์ด๋ธ ์ ๊ทผ์ ์ฌ์ฉ) + Page offset (์ฐธ์กฐ๋๋ ํ๋ ์ ๋ด์์์ ์์น)
- ํ์ด์ง ๋ฒํธ P๋ฅผ ์ถ์ถํ์ฌ ํ์ด์ง ํ ์ด๋ธ ์ธ๋ฑ์ค๋ก ํ์ฉ
- ํ์ด์ง ํ ์ด๋ธ์์ ํ๋ ์ ๋๋ฒ ์ถ์ถ
- ๋ ผ๋ฆฌ ์ฃผ์์ ํ์ด์ง ๋ฒํธ๋ฅผ ํ๋ ์ ๋ฒํธ๋ก ๋ฐ๊พผ๋ค.
๋ชจ๋ ํ๋ ์์ด ํ๋ก์ธ์ค์ ํ ๋น๋ ์ ์๊ธฐ ๋๋ฌธ์ ์ธ๋ถ ๋จํธํ๊ฐ ๋ฐ์ํ์ง ์๋๋ค. ๊ทธ๋ฌ๋ ๋ง์ง๋ง ํ๋ ์์ ๋ด๋ถ ๋จํธํ๊ฐ ๋ฐ์ํ ์ ์๋ค.
์ฌ์ฉ์ ์ ์ฅ์์๋ ๋ฉ๋ชจ๋ฆฌํ๋์ ์ฐ์๋ ๊ณต๊ฐ์ผ๋ก ๋ณด์ด์ง๋ง, ์ค์ ๋ก๋ ํ๋ ์ ๋จ์๋ก ๋ถ์ฐ๋์ด์๋ค.
- ํ๋ ์ํ ์ด๋ธ: ์ด์์ฒด์ ๊ฐ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ํด ํ๋ ์์ ๋ํ ์ ๋ณด๋ฅผ ๋ด์ ์๋ฃ๊ตฌ์กฐ
- HW ์ง์: ํ๋ก์ธ์ค๋ณ ํ์ด์ง ํ ์ด๋ธ์ ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก, ํ๋ก์ธ์ค๊ฐ ์ ํ๋๋ฉด ๋ ์ง์คํฐ๋ฅผ ๋ค์ ์ ์ฌํ๊ณ ์ ์ฅ๋ ์ฌ์ฉ์ ํ์ด์ง ํ ์ด๋ธ๋ก๋ถํฐ ์ ์ ํ ํ๋์จ์ด ํ์ด์ง ํ ์ด๋ธ๊ฐ์ ๋ค์ ์ ์ฌํด์ผ๋๋ค. ๋๋ถ๋ถ์ ์ปดํจํฐ๋ ํ์ด์ง ํ ์ด๋ธ์ ๋ฉ์ธ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ณ ํ์ด์ง ํ ์ด๋ธ ๊ธฐ์ค ๋ ์ง์คํฐ๋ก ํ์ฌ๊ธ ํ์ด์ง ํ ์ด๋ธ์ ๊ฐ๋ฆฌํค๋๋ก ํ๋ค.
- TLB(Translation Look-Aside Buffer): ํ์ด์ง ํ ์ด๋ธ๋ฒํธ๋ฅผ ๋ฐ์ ํ๋ ์๋๋ฒ ๋ฐํ (์บ์)