์๋ก
์ง๊ธ๊น์ง ๋ ผ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ ํ๋ก์ธ์ค์ ๋ฌผ๋ฆฌ ๊ณต๊ฐ์ด ์ฐ์์ ์ด์ด์ผ ํ์ต๋๋ค. ์ด์ ํ๋ก์ธ์ค์ ๋ฌผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ด ์ฐ์๋์ง ์์๋ ๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ธ ํ์ด์ง์ ๋ํด ์ ๋ฆฌํด ๋ณด๊ฒ ์ต๋๋ค. ํ์ด์ง์ ์ธ๋ถ ๋จํธํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ์ฃผ๊ธฐ ๋๋ฌธ์ ๋ํ ์๋ฒ์ฉ ์์คํ ์์ ๋ชจ๋ฐ์ผ ์ฅ์น์ฉ ์์คํ ์ ์ด๋ฅด๊ธฐ๊น์ง ๋๋ถ๋ถ์ ์ด์์ฒด์ ์์ ๋ค์ํ ํํ์ ํ์ด์ง์ด ์ฌ์ฉ๋ฉ๋๋ค. ํ์ด์ง์ ์ด์์ฒด์ ์ ์ปดํจํฐ ํ๋์จ์ด ๊ฐ์ ํ๋ ฅ์ ํตํด ๊ตฌํ๋ฉ๋๋ค.
์ด ์ฅ์ ๋ชฉํ
1. ๋ ผ๋ฆฌ ์ฃผ์์ ๋ฌผ๋ฆฌ ์ฃผ์์ ์ฐจ์ด์ ๊ณผ ์ฃผ์๋ฅผ ๋ณํํ ๋ MMU(๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ฅ์น)์ ์ญํ ์ ์ ๋ฆฌํด ๋ณธ๋ค.(์ด์ ๊ฒ์๊ธ)
2. ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐ์์ ์ผ๋ก ํ ๋นํ๊ธฐ ์ํด ์ต์ด, ์ต์ , ๋ฐ ์ต์ ์ ํฉ ์ ๋ต์ ์ ์ฉํด ๋ณธ๋ค.(์ด์ ๊ฒ์๊ธ)
3. ๋จํธํ์ ๋ํด ์์๋ณด๊ณ ๋จํธํ์ ๋ ๊ฐ์ง ์ข ๋ฅ ๋ด๋ถ ๋ฐ ์ธ๋ถ ๋จํธํ์ ์ฐจ์ด์ ์ ์ ๋ฆฌํด ๋ณธ๋ค. (์ด์ ๊ฒ์๊ธ)
4. ์ธ๋ถ ๋จํธํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ํ์ด์ง ๊ธฐ๋ฒ์ ์ดํด๋ณธ๋ค. (ํ์ฌ ๊ฒ์๊ธ)
5. TLB(translation look-aside buffer)๊ฐ ํฌํจ๋ ํ์ด์ง ์์คํ ์์ ๋ ผ๋ฆฌ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํํ๋ค. (๋ค์ ๊ฒ์๊ธ)
6. ๊ณ์ธต์ ํ์ด์ง, ํด์ ํ์ด์ง ๋ฐ ์ญ ํ์ด์ง ํ ์ด๋ธ์ ์ค๋ช ํ๋ค. (๋ค์ ๊ฒ์๊ธ)
ํ์ด์ง(Paging)
ํ์ด์ง์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ์๋์ ๊ฐ์ต๋๋ค.
- ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ ํ๋ ์(frame)์ด๋ผ ๋ถ๋ฆฌ๋ ๊ฐ์ ํฌ๊ธฐ ๋ธ๋ก์ผ๋ก ๋๋๋ค.
- ๋ ผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ ํ์ด์ง(page)๋ผ ๋ถ๋ฆฌ๋ ๊ฐ์ ํฌ๊ธฐ์ ๋ธ๋ก์ผ๋ก ๋๋๋ค.
์ด๋ฌํ ๋ค์ ๊ฐ๋จํ ์์ด๋์ด๊ฐ ์์ฒญ๋ ๊ธฐ๋ฅ์ ์ํํ๊ณ ํญ๋์ ์ํฅ์ ๋ผ์น๊ฒ ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ ผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ ๋ฌธ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ผ๋ก๋ถํฐ ์์ ํ ๋ถ๋ฆฌ๋์๊ธฐ ๋๋ฌธ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๊ฐ 2^64 ๋ฐ์ดํธ๋ณด๋ค ์ ๊ฒ ์ฅ์ฐฉ๋ ์์คํ ์์๋ ํ๋ก์ธ์ค๋ 64๋นํธ๋ก ์ด๋ฃจ์ด์ง ๋ ผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
CPU์์ ๋์ค๋ ๋ชจ๋ ์ฃผ์๋ ์๋์ ๊ฐ์ด ํ์ด์ง ๋ฒํธ(p)์ ํ์ด์ง ์คํ์ (d: offset) ๋ ๊ฐ์ ๋ถ๋ถ์ผ๋ก ๋๋์ด์ง๋๋ค.
ํ์ด์ง ๋ฒํธ๋ ํ๋ก์ธ์ค ํ์ด์ง ํ ์ด๋ธ(page table)์ ์ก์ธ์ค ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ์๋์ ์ด๋ฏธ์ง๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ฆฌํด ๋ณด๊ฒ ์ต๋๋ค.
ํ์ด์ง ํ ์ด๋ธ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ ํ๋ ์์ ์์ ์ฃผ์๋ฅผ ์ ์ฅํ๊ณ ์์ผ๋ฉฐ ์คํ์ ์ ์ฐธ์กฐ๋๋ ํ๋ ์ ์์์์ ์์น์ ๋๋ค. ๋ฐ๋ผ์, ํ๋ ์์ ์์ ์ฃผ์์ ํ์ด์ง ์คํ์ ์ด ๊ฒฐํฉํ์ฌ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ๋ฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ์ ํ์ด์ง ๋ชจ๋ธ์ ์ฐ์ธก ์ด๋ฏธ์ง๋ฅผ ํ์ธํ์๋ฉด ๋ฉ๋๋ค.
CPU์ ์ํด ์์ฑ๋ ๋ ผ๋ฆฌ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํํ๊ธฐ ์ํด MMU๊ฐ ์ทจํ ๋จ๊ณ๋ฅผ ์ ๋ฆฌํด๋ณด๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
- ํ์ด์ง ๋ฒํธ p๋ฅผ ์ถ์ถํ์ฌ ํ์ด์ง ํ ์ด๋ธ์ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํ๋ค.
- ํ์ด์ง ํ ์ด๋ธ์์ ํด๋น ํ๋ ์ ๋ฒํธ f๋ฅผ ์ถ์ถํ๋ค.
- ๋ ผ๋ฆฌ ์ฃผ์์ ํ์ด์ง ๋ฒํธ p๋ฅผ ํ๋ ์ ๋ฒํธ f๋ก ๋ฐ๊พผ๋ค.
์คํ์ d๋ ๋ณํ์ง ์๊ธฐ ๋๋ฌธ์ ๋์ฒด๋์ง ์์ผ๋ฉฐ, ํ๋ ์ ๋ฒํธ์ ์คํ์ ์ ์ด์ ๋ฌผ๋ฆฌ ์ฃผ์๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
ํ๋ ์ ํฌ๊ธฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก ํ์ด์ง ํฌ๊ธฐ๋ ํ๋์จ์ด์ ์ํด ์ ํด์ง๋๋ค. ํ์ด์ง ํฌ๊ธฐ๋ 2์ ๊ฑฐ๋ญ์ ๊ณฑ์ผ๋ก, ์ผ๋ฐ์ ์ผ๋ก ์ปดํจํฐ ์ํคํ ์ฒ์ ๋ฐ๋ผ ํ์ด์ง๋น 4 KB์ 1 GB ์ฌ์ด์ ๋๋ค. ํ์ด์ง ํฌ๊ธฐ๋ก 2์ ๊ฑฐ๋ญ์ ๊ณฑ์ ์ ํํ๋ฉด ๋ ผ๋ฆฌ ์ฃผ์๋ฅผ ํ์ด์ง ๋ฒํธ ๋ฐ ํ์ด์ง ์คํ์ ์ผ๋ก ์ฝ๊ฒ ๋ณํํ ์ ์์ต๋๋ค. ๋ ผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ ํฌ๊ธฐ๊ฐ 2^m์ด๊ณ ํ์ด์ง ํฌ๊ธฐ๊ฐ 2^n๋ฐ์ดํธ์ธ ๊ฒฝ์ฐ ๋ ผ๋ฆฌ ์ฃผ์์ ์์ m-n ๋นํธ๋ ํ์ด์ง ๋ฒํธ๋ฅผ ์ง์ ํ๊ณ n ํ์ ๋นํธ๋ ํ์ด์ง ์คํ์ ์ ์ง์ ํฉ๋๋ค. ๋ฐ๋ผ์ ๋ ผ๋ฆฌ ์ฃผ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฌ๊ธฐ์ p๋ ํ์ด์ง ํ ์ด๋ธ์ ๋ํ ์ธ๋ฑ์ค๋ก ์ฌ์ฉ๋๋ฉฐ, d๋ ํ์ด์ง ๋ด์์์ ์คํ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
์๊ท๋ชจ์ด์ง๋ง ๊ตฌ์ฒด์ ์ผ๋ก ์๋ ์ด๋ฏธ์ง์ ๋ฉ๋ชจ๋ฆฌ ์์ ๋ก ์๊ฐํด ๋ณด๊ฒ ์ต๋๋ค.
์ ์ด๋ฏธ์ง์ ๋ ผ๋ฆฌ ์ฃผ์์์ n = 2, m = 4์ ๋๋ค. 4B์ ํ์ด์ง ํฌ๊ธฐ์ 32B์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ(8ํ์ด์ง)๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ก ๋งคํ๋๋ ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- ๋ ผ๋ฆฌ ์ฃผ์ 0์ ํ์ด์ง 0, ์คํ์ 0์ ๋๋ค.
- ํ์ด์ง ํ ์ด๋ธ์ ์์ธ(indexing)์ผ๋ก ์ฐพ์์ ํ์ด์ง 0์ด ํ๋ ์ 5์ ์๋ค๋ ๊ฒ์ ์์๋ ๋๋ค.
- ๊ทธ๋์ ๋ ผ๋ฆฌ ์ฃผ์ 0์ ์ค์ ์ฃผ์ 20(5*4+2)์ผ๋ก ๋งคํ๋ฉ๋๋ค.
- ๋ ผ๋ฆฌ ์ฃผ์ 3(ํ์ด์ง 0, ์คํ์ 3)์ ์ค์ ์ฃผ์ 23((5*4)+3)์ผ๋ก ๋งคํ๋ฉ๋๋ค.
- ๋ ผ๋ฆฌ ์ฃผ์ 4๋ ํ์ด์ง ํ ์ด๋ธ์ ์ํด ํ์ด์ง 1, ์คํ์ 0์ด๊ณ , ํ์ด์ง 1์ ์คํ์ 6์ผ๋ก ๋งคํ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ค์ ์ฃผ์ 24((6*4)+0)๋ก ๋งคํ๋ฉ๋๋ค.
- ๋ ผ๋ฆฌ ์ฃผ์ 13์ ์ค์ ์ฃผ์ 9๋ก ๋งคํ๋ฉ๋๋ค.
ํ์ด์ง ์์ฒด๋ ์ผ์ข ์ ๋์ ์ฌ๋ฐฐ์น๋ผ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๋ชจ๋ ๋ ผ๋ฆฌ ์ฃผ์๋ ํ์ด์ง ํ๋์จ์ด์ ์ํด ์ค์ ์ฃผ์๋ก ๋ฐ์ธ๋ฉ๋ฉ๋๋ค. ํ์ด์ง์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ฐ ๋ฉ๋ชจ๋ฆฌ ํ๋ ์๋ง๋ค ํ๋์ฉ ๊ธฐ์ค(๋๋ ์ฌ๋ฐฐ์น) ๋ ์ง์คํฐ๋ฅผ ํ ์ด๋ธ๋ก ์ ์งํ๋ ๊ฒ๊ณผ ์ ์ฌํฉ๋๋ค.
ํ์ด์ง ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ฉด ์ธ๋ถ ๋จํธํ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค. ๋ชจ๋ ๋๊ณ ์๋ ํ๋ ์์ด ํ๋ก์ธ์ค์ ํ ๋น๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด์ ๋ ๋ด๋ถ ๋จํธํ๊ฐ ๋ฐ์ํฉ๋๋ค. ํ ๋น์ ํญ์ ํ๋ ์์ ์ ์๋ฐฐ๋ก ํ ๋น๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ง์ฝ ํ๋ก์ธ์ค๊ฐ ํ์ด์ง ๊ฒฝ๊ณ์ ์ผ์นํ์ง ์๋ ํฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๊ตฌํ๋ค๋ฉด, ๋ง์ง๋ง ํ์ด์ง ํ๋ ์์ ์ ๋ถ ํ ๋น๋์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํ์ด์ง ํฌ๊ธฐ๊ฐ 2,048B์ด๊ณ ํ๋ก์ธ์ค๊ฐ 72,766B๋ฅผ ์๊ตฌํ๋ค๋ฉด 35๊ฐ์ ํ์ด์ง ํ๋ ์์ ํ ๋นํ๊ณ 1,086B๊ฐ ๋จ์ต๋๋ค. 36๋ฒ์งธ๋ก ํ ๋น๋๋ ํ์ด์ง ํ๋ ์์ 2,048 - 1,986 = 962B์ ๋ด๋ถ ๋จํธํ๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค. ์ต์ ์ ๊ฒฝ์ฐ ํ๋ก์ธ์ค๊ฐ n๊ฐ์ ํ์ด์ง์ ์ถ๊ฐ๋ก 1B๋ฅผ ์๊ตฌํ ์ ์์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ n + 1๋ฒ์งธ ํ๋ ์์ ๊ฑฐ์ ๋ชจ๋ ํ๋ ์์ด ๋ด๋ถ ๋จํธํ๊ฐ ๋ฉ๋๋ค.
๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ํ์ด์ง ํ ์ด๋ธ์ ์ ์ฅํ๋ฉด ๋ฌธ๋งฅ ๊ตํ ์๋๊ฐ ๋นจ๋ผ์ง์ง๋ง ํ์ด์ง ํ ์ด๋ธ์ ํ์ธํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค๋ฅผ ํจ์ผ๋ก์จ ์๊ฐ์ด ๋ ๋๋ ค์ง ์๋ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ค์ ๊ฒ์๊ธ์์๋ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ TLB(translation look-aside buffers)๋ผ๊ณ ๋ถ๋ฆฌ๋ ํน์ํ ์ํ ํ๋์จ์ด ์บ์์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
'ComputerScience ๐ > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[OS] ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ(4) - ํ์ด์ง ํ ์ด๋ธ์ ๊ตฌ์กฐ(Structure of the Page Table) (0) | 2022.04.03 |
---|---|
[OS] ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ(3) - TLB(translation look-aside buffers) (0) | 2022.03.28 |
[OS] ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ(1) - ๋ฌผ๋ฆฌ, ๋ ผ๋ฆฌ์ฃผ์ ๋ฐ ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น (0) | 2022.03.20 |
[OS] ๊ต์ฐฉ ์ํ(Deadlocks) (0) | 2022.03.10 |
[OS] ์์ฌํ๋ ์ฒ ํ์๋ค ๋ฌธ์ (The Dining-Philosophers Problem) (0) | 2022.03.02 |
[OS] ํ๋ก์ธ์ค ๋๊ธฐํ(Process Synchronization) (0) | 2022.02.24 |
๋๊ธ