1. ์ฃผ์ ๋ฐ์ธ๋ฉ
- ๋ ผ๋ฆฌ์ ์ฃผ์(๊ฐ์ ์ฃผ์): ํ๋ก๊ทธ๋จ์ ์คํ์ ์ํด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋๋ฉด ๊ทธ ํ๋ก์ธ์ค๋ฅผ ์ํ ๋ ์์ ์ธ ์ฃผ์ ๊ณต๊ฐ
- ๋ฌผ๋ฆฌ์ ์ฃผ์: ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ค์ ๋ก ์ฌ๋ผ๊ฐ๋ ์์น. ๋ณดํต ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฎ์ ์ฃผ์ ์์ญ์๋ ์ด์์ฒด์ ๊ฐ ์ฌ๋ผ๊ฐ๊ณ , ๋์ ์ฃผ์ ์์ญ์๋ ์ฌ์ฉ์ ํ๋ก์ธ์ค๋ค์ด ์ฌ๋ผ๊ฐ๋ค
์ฃผ์๋ฐ์ธ๋ฉ: ํ๋ก์ธ์ค์ ๋ ผ๋ฆฌ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ก ์ฐ๊ฒฐ์์ผ ์ฃผ๋ ์์
- ์ปดํ์ผ ํ์ ๋ฐ์ธ๋ฉ
- ์ปดํ์ผ์ ํ๋ ์์ ์ ํด๋น ํ๋ก๊ทธ๋จ์ด ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ช ๋ฒ์ง์ ์์นํ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ๋ค
- ์ ๋์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ์ธ๋ฉ ๋ฐฉ์์ด๋ผ๊ณ ๋ ํจ
- ์ง๊ธ์ ์ ์ฌ์ฉํ์ง ์์
- ๋ก๋ ํ์ ๋ฐ์ธ๋ฉ
- ํ๋ก๊ทธ๋จ์ ์คํ์ด ์์๋ ๋์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ๊ฒฐ์ ๋๋ ์ฃผ์ ๋ฐ์ธ๋ฉ ๋ฐฉ์.
- ๋ก๋, ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ์ํค๋ ํ๋ก๊ทธ๋จ์ ์ฑ ์ํ์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ก๋ฆฌ ์ฃผ์๊ฐ ๋ถ์ฌ๋๋ฉฐ ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋ ๋๊น์ง ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์์ ์์น๊ฐ ๊ณ ์ ๋๋ค.
- ์ปดํ์ผ๋ฌ๊ฐ ์ฌ๋ฐฐ์น ๊ฐ๋ฅ ์ฝ๋(relocatable code)๋ฅผ ์์ฑํ ๊ฒฝ์ฐ์ ๊ฐ๋ฅํ ์ฃผ์ ๋ฐ์ธ๋ฉ ๋ฐฉ์์ด๋ค
- ์คํ ์๊ฐ ๋ฐ์ธ๋ฉ
- ํ๋ก๊ทธ๋จ์ด ์คํ์ ์์ํ ํ์๋ ๊ทธ ํ๋ก๊ทธ๋จ์ด ์์นํ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์์ ์ฃผ์๊ฐ ๋ณ๊ฒฝ๋ ์ ์๋ ๋ฐ์ธ๋ฉ ๋ฐฉ์
- ๊ธฐ์ค ๋ ์ง์คํฐ์ ํ๊ณ ๋ ์ง์คํฐ๋ฅผ ํฌํจ์ MMU(Memory Management Unit)์ด๋ผ๋ ํ๋์จ์ด์ ์ธ ์ง์์ด ํ์ํ๋ค
MMU ๊ธฐ๋ฒ (MMU scheme)
- MMU๋ ํน์ ํ๋ก์ธ์ค์ ๋ ผ๋ฆฌ์ ์ฃผ์๊ฐ์ ๊ธฐ์ค ๋ ์ง์คํฐ์ ๊ฐ์ ๋ํด ๋ฌผ๋ฆฌ์ ์ฃผ์๊ฐ์ ์ป์ด๋ธ๋ค
- ์ด๋ ๊ธฐ์ค ๋ ์ง์คํฐ(base register)๋ ์ฌ๋ฐฐ์น ๋ ์ง์คํฐ(relocation register)๋ผ๊ณ ๋ ๋ถ๋ฅด๋ฉฐ ๊ทธ ํ๋ก์ธ์ค์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ์์ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค
- MMU ๊ธฐ๋ฒ์์๋ ํ๋ก๊ทธ๋จ์ ์ฃผ์ ๊ณต๊ฐ์ด ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ํ ์ฅ์์ ์ฐ์์ ์ผ๋ก ์ ์ฌ๋๋ ๊ฒ์ผ๋ก ๊ฐ์ ํ๋ค
- ๋ฉ๋ชจ๋ฆฌ ๋ณด์์ ์ด์์ฒด์ ๋ ํ๊ณ ๋ ์ง์คํฐ(limit register)๋ฅผ ์ฌ์ฉํ๋ค.
- ํ๊ณ ๋ ์ง์คํฐ๋ ํ์ฌ CPU์์ ์ํ ์ค์ธ ํ๋ก์ธ์ค์ ๋ ผ๋ฆฌ์ ์ฃผ์์ ์ต๋๊ฐ, ์ฆ ๊ทธ ํ๋ก์ธ์ค์ ํฌ๊ธฐ๋ฅผ ๋ด๊ณ ์๋ค
- ๋ ผ๋ฆฌ์ ์ฃผ์๊ฐ > ํ๊ณ ๋ ์ง์คํฐ -> ํธ๋ฉ ๋ฐ์ (ํด๋น ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ์ข ๋ฃ ์ํด)
2. ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ๊ด๋ จ๋ ์ฉ์ด
๋์ ๋ก๋ฉ(dynamic loading)
- ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ด ๋์์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ์ ์ํ๋๋ ๋ค์ค ํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ์์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ํจ์จ์ฑ์ ๋์ด๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ธฐ๋ฒ ์ค ํ๋
- ํ๋ก์ธ์ค ๋ด์์ ์คํ์ ํ์ํ ๋ถ๋ถ์ด ์ค์ ๋ก ๋ถ๋ฆด ๋๋ง๋ค ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๋ ๋ฐฉ์
- ์ฌ์ฉ๋์ง ์์ ๋ง์ ์์ ์ฝ๋๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๋ ๊ฒ์ ๋ง์์ผ๋ก์จ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
- ์ด์์ฒด์ ์ ์ง์์ด ํ์ ์์ด ํ๋ก๊ทธ๋จ ์์ฒด์์ ๊ตฌํ ๊ฐ๋ฅ
๋์ ์ฐ๊ฒฐ(dynamic linking)
- ์ปดํ์ผ์ ํตํด ์์ฑ๋ ๋ชฉ์ ํ์ผ๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ ์ฌ์ด์ ์ฐ๊ฒฐ์ ํ๋ก๊ทธ๋จ์ ์คํ ์์ ๊น์ง ์ง์ฐ์ํค๋ ๊ธฐ๋ฒ
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์คํ ์์ ์ ์ฐ๊ฒฐ๋๋ค
- ๋์ ์ฐ๊ฒฐ์ ๊ฐ๋ฅํ๊ฒ ํ๊ธฐ ์ํด ์คํํ์ผ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํธ์ถ ๋ถ๋ถ์ ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์น๋ฅผ ์ฐพ๊ธฐ ์ํ ์คํ (stub)์ด๋ผ๋ ์์ ์ฝ๋๋ฅผ ๋๋ค
- ๋ค์์ ํ๋ก๊ทธ๋จ์ด ๊ณตํต์ผ๋ก ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋ฒ๋ง ์ ์ฌํ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ํจ์จ์ฑ์ ๋์ผ ์ ์๋ค
- ๋์ ์ฐ๊ฒฐ ๊ธฐ๋ฒ์ ์ด์์ฒด์ ์ ์ง์์ ํ์๋ก ํ๋ค
์ค์ฒฉ(overlays)
- ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ์ ๋ถํ ํด ์ค์ ํ์ํ ๋ถ๋ถ๋ง์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๋ ๊ธฐ๋ฒ
- ํ๋ก๊ทธ๋๋จธ๊ฐ ์ง์ ๊ตฌํํ์ผ๋ฉฐ ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ๊ฐ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ์ ๋นํด ์์ ๋ ์ฃผ์ ๊ณต๊ฐ์ ๋ถํ ํด์ ๋น์ฅ ํ์ํ ์ผ๋ถ๋ถ๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค ์คํํ๊ณ ํด๋น ๋ถ๋ถ์ ๋ํ ์คํ์ด ๋๋ ํ์ ๋๋จธ์ง ๋ถ๋ถ์ ์ฌ๋ ค ์คํํ๋ ๊ธฐ๋ฒ
์ค์ํ(swapping)
- ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ ์ ์ฒด๋ฅผ ๋์คํฌ์ ์ค์ ์์ญ์ ์ผ์์ ์ผ๋ก ๋ด๋ ค๋๋ ๊ฒ
- ์ด๋ ์ค์ ์์ญ์ backing store๋ผ๊ณ ๋ ๋ถ๋ฅด๋ฉฐ, ๋์คํฌ ๋ด์ ํ์ผ ์์คํ ๊ณผ๋ ๋ณ๋๋ก ์กด์ฌํ๋ ์ผ์ ์์ญ์ ๋งํ๋ค
- ๋ค์์ ์ฌ์ฉ์ ํ๋ก์ธ์ค๋ฅผ ๋ด์ ์ ์์ ๋งํผ ์ถฉ๋ถํ ํฐ ์ ์ฅ๊ณต๊ฐ์ด์ด์ผ ํ๊ณ , ์ด๋ ์ ๋์ ์ ๊ทผ ์๋๊ฐ ๋ณด์ฅ๋์ด์ผ ํจ
- ์ค์ ์ธ: ๋์คํฌ์์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฌ๋ฆฌ๋ ์์
- ์ค์ ์์: ๋ฉ๋ชจ๋ฆฌ์์ ๋์คํฌ๋ก ๋ด๋ฆฌ๋ ์์
- ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌํ๋ ํ๋ก์ธ์ค์ ์๋ฅผ ์กฐ์ ํ๋ค -> ๋ค์ค ํ๋ก๊ทธ๋๋ฐ์ ์ ๋๋ฅผ ์กฐ์
- ์ค์ํ์์๋ ๋ณดํต ๋์คํฌ๋ด์ ์ค์ ์์ญ์ ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ์ด ์์ฐจ์ ์ผ๋ก ์ ์ฅ๋๋ค. -> ๋ฐ๋ผ์, ๋์คํฌ์ ํ์ ์๊ฐ(seek time)์ด๋ ํ์ ์ง์ฐ์๊ฐ(rotational latency) ๋ณด๋ค๋ ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ฐ๋ ์ ์ก ์๊ฐ(transfer time)์ด ๋๋ถ๋ถ์ ์ฐจ์งํ๋ค.
3. ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น ๋ฐฉ์
๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ
- ์ด์์ฒด์ ์์ฃผ ์์ญ๊ณผ ์ฌ์ฉ์ ํ๋ก์ธ์ค ์์ญ์ผ๋ก ๋๋์ด ์ฌ์ฉ๋๋ค.
- ์ด์์ฒด์ ์์ฃผ ์์ญ: ์ธํฐ๋ฝํธ ๋ฒกํฐ์ ํจ๊ป ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฎ์ ์ฃผ์ ์์ญ์ ์ฌ์ฉ -> ์ด์์ฒด์ ์ปค๋ ์์น
- ์ฌ์ฉ์ ํ๋ก์ธ์ค ์์ญ: ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๋์ ์ฃผ์ ์์ญ์ ์ฌ์ฉ
์ฌ์ฉ์ ํ๋ก์ธ์ค ์์ญ์ ๊ด๋ฆฌ ๋ฐฉ๋ฒ
1) ์ฐ์ํ ๋น(contiguous allocation)
- ๊ฐ๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฐ์์ ์ธ ๊ณต๊ฐ์ ์ฌ๋ฆฌ๋ ๋ฐฉ์
- ๊ณ ์ ๋ถํ (fixed partition allocation): ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์ด์ง ๊ฐ์๋งํผ์ ์๊ตฌ์ ์ธ ๋ถํ (partition)๋ก ๋ฏธ๋ฆฌ ๋๋์ด๋๊ณ ๊ฐ ๋ถํ ์ ํ๋์ ํ๋ก์ธ์ค๋ฅผ ์ ์ฌํด ์คํ์ํฌ ์ ์๊ฒ ํจ
- ๊ฐ๋ณ๋ถํ (variable partition allocation): ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋๋ ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ถํ ์ ํฌ๊ธฐ, ๊ฐ์๊ฐ ๋์ ์ผ๋ก ๋ณํ๋ ๋ฐฉ์
2) ๋ถ์ฐ์ํ ๋น(noncontiguous allocation)
- ํ๋์ ํ๋ก์ธ์ค๋ฅผ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฌ ์์ญ์ ๋ถ์ฐํด ์ ์ฌํ๋ ๋ฐฉ์
- ํ์ด์ง ๊ธฐ๋ฒ : ํ๋์ ํ๋ก๊ทธ๋จ์ ๋ถํ ํ๋ ๊ธฐ์ค์ ๋ฐ๋ผ ๋์ผํ ํฌ๊ธฐ๋ก ๋๋์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๋ ๋ฐฉ๋ฒ
- ์ธ๊ทธ๋ฉํ ์ด์ ๊ธฐ๋ฒ: ํฌ๊ธฐ๋ ์ผ์ ํ์ง ์์ง๋ง ์๋ฏธ ๋จ์๋ก ๋๋์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๋ ๋ฐฉ๋ฒ
- ํ์ด์ง๋ ์ธ๊ทธ๋ฉํ ์ด์ : ์ธ๊ทธ๋ฉํ ์ด์ ์ ๊ธฐ๋ณธ์ผ๋ก ํ์ง๋ง ์ด๋ฅผ ๋ค์ ๋์ผ ํฌ๊ธฐ์ ํ์ด์ง๋ก ๋๋์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๋ ๋ฐฉ๋ฒ
4. ํ์ด์ง ๊ธฐ๋ฒ
ํ์ด์ง ๊ธฐ๋ฒ์ด๋?
- ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ์ ๋์ผํ ํฌ๊ธฐ์ ํ์ด์ง ๋จ์๋ก ๋๋์ด ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ก ๋ค๋ฅธ ์์น์ ํ์ด์ง๋ค์ ์ ์ฅํ๋ ๋ฐฉ์์ ๋งํ๋ค
- ํ์ด์ง ๊ธฐ๋ฒ์์๋ ๋ชจ๋ ํ๋ก์ธ์ค๊ฐ ๊ฐ๊ฐ์ ์ฃผ์ ๋ณํ์ ์ํ ํ์ด์ง ํ ์ด๋ธ์ ๊ฐ์ง๋ฉฐ, ์ด ํ ์ด๋ธ์ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ง ์ ์๋ ํ์ด์ง์ ๊ฐ์๋งํผ ์ฃผ์ ๋ณํ ์ํธ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์๋ค
1) ์ฃผ์ ๋ณํ ๊ธฐ๋ฒ
- CPU๊ฐ ์ฌ์ฉํ๋ ๋ ผ๋ฆฌ์ ์ฃผ์๋ฅผ ํ์ด์ง ๋ฒํธ(p)์ ํ์ด์ง ์คํ์ (d)์ผ๋ก ๋๋์ด ์ฃผ์ ๋ณํ(address translation)์ ์ฌ์ฉํ๋ค
- ํ์ด์ง ๋ฒํธ๋ ์ธ๋ฑ์ค๋ก ์ฌ์ฉ๋๊ณ , ํด๋น ์ธ๋ฑ์ค์ ํญ๋ชฉ(entry)์๋ ๊ทธ ํ์ด์ง์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์์ ๊ธฐ์ค ์ฃผ์(base address), ์ฆ ์์ ์์น๊ฐ ์ ์ฅ๋๋ค.
2) ํ์ด์ง ํ ์ด๋ธ์ ๊ตฌํ
- ํ์ด์ง ํ ์ด๋ธ์ ํ์ด์ง ๊ธฐ๋ฒ์์ ์ฃผ์ ๋ณํ์ ํ๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ๋ก ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์์นํ๋ค
- ์ด์์ฒด์ ๋ ํ์ฌ CPU์์ ์คํ ์ค์ธ ํ๋ก์ธ์ค์ ํ์ด์ง ํ ์ด๋ธ์ ์ ๊ทผํ๊ธฐ ์ํด ํ์ด์ง ํ ์ด๋ธ ๊ธฐ์ค ๋ ์ง์คํฐ์ ํ์ด์ง ํ ์ด๋ธ ๊ธธ์ด ๋ ์ง์คํฐ๋ฅผ ์ฌ์ฉํ๋ค.
- TLB(Translation Look-aside Buffer): ํ์ด์ง ํ ์ด๋ธ ์ ๊ทผ ์ค๋ฒํค๋๋ฅผ ์ค์ด๊ณ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผ ์๋๋ฅผ ํฅ์์ํค๋ ๊ณ ์์ ์ฃผ์ ๋ณํ์ฉ ํ๋์จ์ด ์บ์
3) ๊ณ์ธต์ ํ์ด์ง
- 2๋จ๊ณ ํ์ด์ง(two-level paging) ๊ธฐ๋ฒ
- ํ์ด์ง ํ ์ด๋ธ์ ์ฌ์ฉ๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ญ๋น๋ฅผ ์ค์ธ๋ค
- ์ฃผ์ ๋ณํ์ ์ํด 1. ์ธ๋ถ ํ์ด์ง ํ ์ด๋ธ(outer page table)๊ณผ 2. ๋ด๋ถ ํ์ด์ง ํ ์ด๋ธ(inner page table)์ ์ฌ์ฉํ๋ค.
- ๋์ ํ์ด์ง ํ ์ด๋ธ์ ์ํด ์ฌ์ฉ๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๋ชจ๋ ์ค์ผ ์ ์์ง๋ง ๋ฉ๋ชจ๋ฆฌ์ ๋ํ ์ ๊ทผ ํ์๊ฐ ๋ง์์ ธ์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์๊ฐ์ด ๋์ด๋๋ค. -> ํด๊ฒฐ์ฑ ์ TLB ์ฌ์ฉ
4) ์ญํ์ด์ง ํ ์ด๋ธ(inverted paging table)
- ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ํ์ด์ง ํ๋ ์ ํ๋๋น ํ์ด์ง ํ ์ด๋ธ์ ํ๋์ฉ์ ํญ๋ชฉ์ ๋๋ ๋ฐฉ์์ด๋ค
- ์ฆ, ๋ ผ๋ฆฌ์ ์ฃผ์์ ๋ํด ํ์ด์ง๋ฅผ ๋ง๋๋ ๊ฒ์ด ์๋๋ผ ๋ฌผ๋ฆฌ์ ์ฃผ์์ ๋ํด ํ์ด์ง ํ ์ด๋ธ์ ๋ง๋๋ ๊ฒ
- ์์คํ ์ ์ฒด์ ํ์ด์ง ํ ์ด๋ธ์ ํ๋๋ง ๋๋ ๋ฐฉ๋ฒ
5) ๊ณต์ ํ์ด์ง
- ๊ณต์ ์ฝ๋(shared code) = ์ฌ์ง์
๊ฐ๋ฅ ์ฝ๋(re-entrant code) = ์์ ์ฝ๋(pure code)
- ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํจ์จ์ ์ธ ์ฌ์ฉ์ ์ํด ์ฌ๋ฌ ํ๋ก์ธ์ค์ ์ํด ๊ณตํต์ผ๋ก ์ฌ์ฉ๋ ์ ์๋๋ก ์์ฑ๋ ์ฝ๋
- ์ฝ๊ธฐ ์ ์ฉ ํน์ฑ์ ๊ฐ์ง๋ค
- ๊ณต์ ํ์ด์ง(shared page)
- ๊ณต์ ์ฝ๋๋ฅผ ๋ด๊ณ ์๋ ํ์ด์ง
- ์ฌ๋ฌ ํ๋ก์ธ์ค์ ์ํด ๊ณต์ ๋๋ ํ์ด์ง์ด๋ฏ๋ก ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ํ๋๋ง ์ ์ฌ๋์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ข ๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒ ํ๋ค
6) ๋ฉ๋ชจ๋ฆฌ ๋ณดํธ
- ํ์ด์ง ํ ์ด๋ธ์ ๊ฐ ํญ๋ชฉ์๋ ์ฃผ์ ๋ณํ ์ ๋ณด๋ฟ ์๋๋ผ ๋ฉ๋ชจ๋ฆฌ ๋ณดํธ๋ฅผ ์ํ ๋ณดํธ๋นํธ(protection bit)์ ์ ํจ-๋ฌดํจ ๋นํธ(valid-invalid bit)๋ฅผ ๋๊ณ ์๋ค
- ๋ณดํธ๋นํธ: ๊ฐ ํ์ด์ง์ ๋ํ ์ ๊ทผ ๊ถํ(์ด๋ ํ ์ ๊ทผ์ ํ์ฉํ๋์ง)์ ๋ด์ฉ์ ๋ด๊ณ ์๋ค.
- ์ ํจ-๋ฌดํจ ๋นํธ: ์ ํจ์ผ ๊ฒฝ์ฐ ํด๋น ๋ฉ๋ชจ๋ฆฌ ํ๋ ์์ ๊ทธ ํ์ด์ง๊ฐ ์กด์ฌํ๊ณ ์ ๊ทผ์ด ํ์ฉ๋๋ฉฐ, ๋ฌดํจ์ผ ๊ฒฝ์ฐ ํ๋ก์ธ์ค๊ฐ ๊ทธ ์ฃผ์ ๋ถ๋ถ์ ์ฌ์ฉํ์ง ์๊ฑฐ๋, ํด๋น ํ์ด์ง๊ฐ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์์ง ์๊ณ ๋ฐฑํน ์คํ ์ด์ ์กด์ฌํด ํด๋น ๋ฉ๋ชจ๋ฆฌ ํ๋ ์์ ์ ํจํ ์ ๊ทผ ๊ถํ์ด ์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค
5. ์ธ๊ทธ๋จผํ ์ด์
ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ์ ์๋ฏธ ๋จ์์ ์ธ๊ทธ๋จผํธ๋ก ๋๋์ด ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๋ ์ธ๊ทธ๋จผํ ์ด์ ๊ธฐ๋ฒ
- ์ธ๊ทธ๋จผํธ๋ ์ฃผ์ ๊ณต๊ฐ์ ๊ธฐ๋ฅ ๋จ์ ๋๋ ์๋ฏธ ๋จ์๋ก ๋๋ ๊ฒ (์: ์ฝ๋, ๋ฐ์ดํฐ, ์คํ)
- ์ธ๊ทธ๋จผํ
์ด์
๊ธฐ๋ฒ์ ๋
ผ๋ฆฌ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ์ ์ฃผ์๋ก ๋ณํํ๊ธฐ ์ ์ 2๊ฐ์ง๋ฅผ ํ์ธํ๋ค.
- 1. ์์ฒญ๋ ์ธ๊ทธ๋จผํธ ๋ฒํธ๊ฐ STLR(Segment-Table Length Register)์ ์ ์ฅ๋ ๊ฐ๋ณด๋ค ์์ ๊ฐ์ธ๊ฐ?
- 2. ๋ ผ๋ฆฌ์ ์ฃผ์์ ์คํ์ ๊ฐ์ด ๊ทธ ์ธ๊ทธ๋จผํธ์ ๊ธธ์ด(STLR๋ณด๋ค ์์ ๊ฐ์ธ๊ฐ? (ํ๊ณ์ ๊ณผ ์คํ์ ๊ฐ ๋น๊ต)
- ์ธ๊ทธ๋จผํธ ํ ์ด๋ธ์ ๊ฐ ํญ๋ณต์ ๋ณดํธ๋นํธ์ ์ ํจ-๋ฌดํจ ๋นํธ๋ฅผ ๋๋ค
- ์ธ๊ทธ๋จผํธ๋ ์๋ฏธ ๋จ์๋ก ๋๋์ด์ ธ ์์ด ๊ณต์ ์ ๋ณด์์ ์ธก๋ฉด์์ ํ์ด์ง ๊ธฐ๋ฒ์ ๋นํด ํจ๊ณผ์ ์ด๋ค
6. ํ์ด์ง๋ ์ธ๊ทธ๋จผํ ์ด์
ํ์ด์ง ๊ธฐ๋ฒ๊ณผ ์ธ๊ทธ๋จผํ ์ด์ ๊ธฐ๋ฒ์ ์ฅ์ ๋ง์ ์ทจํ๋ ์ฃผ์ ๋ณํ ๊ธฐ๋ฒ
- ํ๋ก๊ทธ๋จ์ ์๋ฏธ ๋จ์์ ์ธ๊ทธ๋จผํธ๋ก ๋๋์ง๋ง ์์์ ๊ธธ์ด๊ฐ ์๋๋ผ ๋์ผํ ํฌ๊ธฐ ํ์ด์ง๋ค์ ์งํฉ์ผ๋ก ๊ตฌ์ฑ๋๋ค
- ์ฃผ์ ๋ณํ์ ์ํด ์ธ๋ถ์ ์ธ๊ทธ๋จผํธ ํ ์ด๋ธ๊ณผ ๋ด๋ถ์ ํ์ด์ง ํ ์ด๋ธ์ ์ด์ฉํ๋ค
๋๊ธ