ํจ์คํธ์บ ํผ์ค ์ด์์ฒด์ ๊ฐ์์ ์ฝ๊ฒ ๋ฐฐ์ฐ๋ ์ด์์ฒด์ ๊ต์ฌ์ ๋ํ TIL์ ๋๋ค.
ํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ๊ฐ์ฅ ํฐ ํน์ง์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ์ ํ๋ก์ธ์ค๊ฐ ์ฌ๋ผ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์์น๋ฅผ ์ ๊ฒฝ ์ฐ์ง ์๊ณ ํ๋ก๊ทธ๋๋ฐํ๋๋ก ์ง์ํ๋ค๋ ๊ฒ์ด๋ค. ์ด๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋ฉ๋ชจ๋ฆฌ ์์คํ
์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ์ ์ฃผ์
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์คํ
์์ ๋ชจ๋ ํ๋ก์ธ์ค๋ ๋ฉ๋ชจ๋ฆฌ์ ์ด๋ ์์น์ ์๋์ง ์๊ด์์ด 0๋ฒ๋ถํฐ ์์ํ๋ ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ฐ์ง๋ค. ๊ฐ์ ์ฃผ์๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ์๋ ๊ฐ์์ ์ฃผ์ ๊ณต๊ฐ์ ๊ฐ์ง๋ค. ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ํฌ๊ฒ ํ๋ก์ธ์ค๊ฐ ๋ฐ๋ผ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ๊ณผ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์๊ฐ ๋ฐ๋ผ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ผ๋ก ๋๋๋ค.
์ด๋ก ์ ์ผ๋ก๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ ๋ฌดํ๋์ด์ง๋ง, ์ค์ ๋ก ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ต๋ ํฌ๊ธฐ๋ ์ปดํจํฐ ์์คํ
์ด ๊ฐ์ง ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ต๋ ํฌ๊ธฐ๋ก ํ์ ๋๋ฉฐ, CPU์ ๋นํธ์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋ค. 32bit CPU์ ์ต๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ 4GB์ด๋ฏ๋ก ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ต๋ ํฌ๊ธฐ๋ 4GB์ด์ง๋ง, 4GB๋ณด๋ค ๋ ํฐ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ ์ฅ์ฅ์น ์์ญ์ธ ์ค์ ์์ญ์ผ๋ก ๋ถ์กฑํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ณด์ถฉํ๋ค.
๋ฐ๋ผ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์๊ฐ ์ฌ์ฉํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฒด ํฌ๊ธฐ๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ค์ ์์ญ์ ํฉํ ํฌ๊ธฐ์ด๋ค. ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์คํ
์์ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ๋ ๊ฐ์ ์ฃผ์๋ฅผ ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํํ๋๋ฐ, ์ด๋ฌํ ์์
์ ๋์ ์ฃผ์ ๋ณํ(DAT: Dynamic Address Translation)์ด๋ผ๊ณ ํ๋ค.
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์คํ
์์ ๊ฐ์ ์ฃผ์๋ ์ค์ ๋ก ๋ฌผ๋ฆฌ ์ฃผ์๋ ์ค์ ์์ญ ์ค ํ ๊ณณ์ ์์นํ๋ค. ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์๋ ๊ฐ์ ์ฃผ์์ ๋ฌผ๋ฆฌ ์ฃผ์๋ฅผ ์ผ๋์ผ๋ก ๋งคํํ ํ
์ด๋ธ๋ก ๊ด๋ฆฌํ๋ค.
์์ ๊ทธ๋ฆผ์ ๋ฉ๋ชจ๋ฆฌ ๋งคํ ํ
์ด๋ธ์ ๋ํ๋ธ ๊ฒ์ผ๋ก, ๊ฐ์ ์ฃผ์๊ฐ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ด๋ ์์น์ ์๋์ง ์ ์ ์๋ค. ์์ ๋งคํ ํ
์ด๋ธ์ ๊ฐ๋ณ ๋ถํ ๋ฐฉ์์ ์ด์ฉํ ์ธ๊ทธ๋จผํ
์ด์
๊ธฐ๋ฒ์์ ์ฌ์ฉํ๋ ์ธ๊ทธ๋จผํ
์ด์
๋งคํ ํ
์ด๋ธ(Segmentation Mapping Table)์ด๋ค. ๋ฐ๋๋ก, ๊ณ ์ ๋ถํ ๋ฐฉ์์ ์ด์ฉํ ํ์ด์ง ๊ธฐ๋ฒ์์ ์ฌ์ฉํ๋ ํ์ด์ง ๋งคํ ํ
์ด๋ธ(Paging Mapping Table)๋ ์กด์ฌํ๋ค.
์ด์ ๋ถํฐ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์์
์ค ๋ฉ๋ชจ๋ฆฌ ๋ฐฐ์น(Placement)์ ๊ด๋ จ๋ ๋ ๊ฐ์ง ์ ์ฑ
์ ๋ํด ์์๋ณด์.
ํ์ด์ง ๊ธฐ๋ฒ
๊ณ ์ ๋ถํ ๋ฐฉ์์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ถํ ํ์ฌ ๊ด๋ฆฌํ๋ ํ์ด์ง ๊ธฐ๋ฒ์์ ๊ฐ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ๊ณผ ๋งคํ ํ ์ด๋ธ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ์ดํด๋ณด์.
ํ์ด์ง ๊ธฐ๋ฒ์ ๊ตฌํ
๊ฐ์ ์ฃผ์์ ๋ถํ ๋ ๊ฐ ์์ญ์ ํ์ด์ง๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ ์ฒซ ๋ฒ์งธ ์์ญ์ ํ์ด์ง 0, ๋ ๋ฒ์งธ ์์ญ์ ํ์ด์ง 1๊ณผ ๊ฐ์ด ๋ฒํธ๋ฅผ ๋งค๊ฒจ ๊ด๋ฆฌํ๋ค. ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ ์์ญ์ ๊ฐ์ ์ฃผ์์ ํ์ด์ง์ ๊ตฌ๋ถํ๊ธฐ ์ํด ํ๋ ์์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ํ๋ ์๋ ํ์ด์ง์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฒํธ๋ฅผ ๋งค๊ฒจ ๊ด๋ฆฌํ๋ค. ํ์ด์ง์ ํ๋ ์์ ํฌ๊ธฐ๋ ๊ฐ๋ค.
ํ์ด์ง ํ
์ด๋ธ(Page Table)์ ๋ชจ๋ ํ์ด์ง์ ์์น ์ ๋ณด(์์ ๊ณผ ๋งคํ๋ ํ๋ ์ ๋ฒํธ)๋ฅผ ๋ด๋๋ค. ํ์ด์ง ํ
์ด๋ธ์ ํ๋์ ์ด๋ก ๊ตฌ์ฑ๋๋ค. ๊ฐ๊ฐ์ ํ ์ค์ ํ์ด์ง ํ
์ด๋ธ ์ํธ๋ฆฌ๋ผ๊ณ ๋ถ๋ฅธ๋ค. invalid๋ ํด๋น ํ์ด์ง๊ฐ ์ค์ ์์ญ์ ์๋ค๋ ์๋ฏธ์ด๋ค.
ํ์ด์ง ๊ธฐ๋ฒ์ ์ฃผ์ ๋ณํ
์๋ฅผ ๋ค์ด, ์์ ๊ทธ๋ฆผ์ฒ๋ผ ๊ฐ์ ์ฃผ์ ๊ณต๊ฐ๊ณผ ๋ฌผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ 10B๋ก ๋๋์๋ค๊ณ ๊ฐ์ ํด ๋ณด์. ๋ง์ฝ, ํ๋ก์ธ์ค๊ฐ ๊ฐ์ ์ฃผ์ 18๋ฒ์ ์ด๋ค ๊ฐ์ ์ ์ฅํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ ๋ณํ ๊ณผ์ ์ ๊ฑฐ์น๋ค. ๋จผ์ , ๊ฐ์ ์ฃผ์ 18๋ฒ์ด ์ด๋ ํ์ด์ง์ ์๋์ง ํ์ด์ง ํ
์ด๋ธ์์ ์ฐพ๋๋ค. ํ์ด์ง ํ
์ด๋ธ์์ ๊ฐ์ ์ฃผ์ 18๋ฒ์ด ํ๋ ์ 3์ ์๋ค๋ ๊ฒ์ ์์๋ด๋ฉด ํ๋ก์ธ์ค๊ฐ ์ ์ฅํ๋ ค๋ ๊ฐ์ ํ๋ ์ 3์ 8๋ฒ ์์น์ ์ ์ฅํ๋ค.
์ด๋ฌํ ์ฃผ์ ๋ณํ ๊ณผ์ ์ ์ ํํํ ์ ์๋ค. ํ์ด์ง ๊ธฐ๋ฒ์์๋ ๊ฐ์ ์ฃผ์๋ฅผ VA = <P, D>๋ก ํํํ๋ค. P๋ ํ์ด์ง, D๋ ํ์ด์ง์ ์ฒ์ ์์น์์ ํด๋น ์ฃผ์๊น์ง์ ๊ฑฐ๋ฆฌ(Distance)๋ฅผ ์๋ฏธํ๋ค. D๋ฅผ ์คํ์
(Offset)์ด๋ผ๊ณ ์ ์ํ๊ธฐ๋ ํ๋ค. ๋ฐ๋ผ์, ์์ ๊ฐ์ ์ฃผ์ 18๋ฒ์ ๋ํด์ VA = <1, 8>๋ผ๋ ์ ํํ๋ ํ๊ธฐ๋ฒ์ผ๋ก ํํํ ์ ์๋ค.
ํ์ด์ง ๊ธฐ๋ฒ์ ์ฃผ์ ๋ณํ์ ๊ฐ์ ์ฃผ์ VA = <P, D>๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์ PA = <F, D>๋ก ๋ณํํ๋ ๊ฒ์ด๋ค. F๋ ํ๋ ์์ ์๋ฏธํ๋ค. ๋ฐ๋ผ์, ์์ ๊ฐ์ ์ฃผ์ 18๋ฒ์ ๋ฌผ๋ฆฌ ์ฃผ์ ๋ณํ์ ๋ค์๊ณผ ๊ฐ์ด ํํํ ์ ์๋ค.
VA = <1, 8> -> PA = <3, 8>
์ด๋, ํ์ด์ง์ ํ๋ ์ ํ๋์ ํฌ๊ธฐ๋ฅผ 10B๋ก ๊ท์ ํ๋ฉด ๊ฐ์ ์ฃผ์ 18๋ฒ์ VA = <1, 8>, ๋ฌผ๋ฆฌ ์ฃผ์ 38๋ฒ์ PA = <3, 8>์ธ ๊ฒ์ด๋ค. ๋ํ, ํ์ด์ง์ ํฌ๊ธฐ๊ฐ 10B๊ฐ ์๋ ์์์ ํฌ๊ธฐ์ผ ๊ฒฝ์ฐ ๊ฐ์ ์ฃผ์๋ฅผ <P, D>๋ก ๋ณํํ๋ ๊ณต์์ ๋ค์๊ณผ ๊ฐ๋ค.
P = ๊ฐ์ ์ฃผ์ ๋ฒ์ง์ / ํ ํ์ด์ง์ ํฌ๊ธฐ
D = ๊ฐ์ ์ฃผ์ ๋ฒ์ง์ % ํ ํ์ด์ง์ ํฌ๊ธฐ
ํ์ด์ง ํ ์ด๋ธ ๊ด๋ฆฌ
ํ์ด์ง ํ
์ด๋ธ ์์ญ
์์คํ
์ ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ์กด์ฌํ๊ณ ํ๋ก์ธ์ค๋ง๋ค ํ์ด์ง ํ
์ด๋ธ์ด ํ๋์ฉ ์๊ธฐ ๋๋ฌธ์ ํ์ด์ง ํ
์ด๋ธ ๊ด๋ฆฌ๊ฐ ๋ณต์กํ๋ค. ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์๋ ํน์ ํ๋ก์ธ์ค๊ฐ ์คํ๋ ๋๋ง๋ค ํด๋น ํ๋ก์ธ์ค์ ํ์ด์ง ํ
์ด๋ธ์ ์ฐธ์กฐํ์ฌ ๊ฐ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํํ๋ ์์
์ ๋ฐ๋ณตํ๋ค. ํ์ด์ง ํ
์ด๋ธ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์๊ฐ ์์ฃผ ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ฏ๋ก ํ์์ ๋นจ๋ฆฌ ์ ๊ทผํ ์ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ปค๋ ์์ญ์ ์ผ๋ถ๋ถ์ธ ํ์ด์ง ํ
์ด๋ธ ์์ญ์ ๋ชจ์์ ธ ์๋ค.
ํ์ด์ง ํ
์ด๋ธ ๊ด๋ฆฌ์ ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ํ์ด์ง ํ
์ด๋ธ์ ์๋ ํฌ๊ธฐ๊ฐ ๋์ด๋๋ฉด ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ปค๋ ์์ญ์ด ๋์ด๋ ๊ทธ๋งํผ ์ฌ์ฉ์ ์์ญ์ด ์ค์ด๋ ๋ค๋ ๊ฒ์ด๋ค. ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๊ฐ ์์ ๋๋ ํ๋ก์ธ์ค์ฒ๋ผ ํ์ด์ง ํ
์ด๋ธ์ ์ผ๋ถ๋ ์ค์ ์์ญ์ผ๋ก ์ฎ๊ฒจ์ง๋ค.
์์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด PTBR๋ผ๋ ๊ฒ์ ๋ณผ ์ ์๋๋ฐ, PTBR์ ๊ฐ ํ์ด์ง ํ
์ด๋ธ์ ์์ ์ฃผ์๋ฅผ ๋ณด๊ดํ๊ณ ์๋ ํ์ด์ง ํ
์ด๋ธ ๊ธฐ์ค ๋ ์ง์คํฐ(Page Table Base Register)๋ผ๊ณ ํ๋ค. ์ด๋, PTBR์ ๊ฐ ํ๋ก์ธ์ค์ PCB์ ์ ์ฅ๋๋ค.
์ฐ๊ธฐ ์์ ๋ณต์ฌ(Copy On Write)
ํฌ๋กฌ ๋ธ๋ผ์ฐ์ ๊ฐ์ด ํ๋์ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ์คํ์ํค๋ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ํ๋ก์ธ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค๋๊ณ ์ฌ์ฉํ๊ธฐ๋ณด๋ค๋ ๋ฉ๋ชจ๋ฆฌ์ ํ๋์ ํ๋ก์ธ์ค๋ง ์ฌ๋ ค๋๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ด ๊ณต์ ํ๋ ๋ฐฉ์์ด ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ๋ง์ ์ ์์ ๊ฒ์ด๋ค.
ํ๋์ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ๋์๋ fork() ์์คํ
ํธ์ถ์ ์ฌ์ฉํด ๊ธฐ์กด ํ๋ก์ธ์ค๋ฅผ ๋ณต์ฌํด์ ์์ฑํ๋๋ฐ ์ด๋, ๊ธฐ์กด ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ๋ ํ์ด์ง ํ
์ด๋ธ๋ ๋ณต์ฌ๋๋ค. ๊ทธ๋ฌ๋, ๋ณต์ฌ๋ ํ์ด์ง ํ
์ด๋ธ์์ ๊ฐ ํ์ด์ง์ ๋งคํ๋ ํ๋ ์๋ค ์ค ๊ธฐ์กด ํ๋ก์ธ์ค์ ๊ณต์ ํ ์ ์๋ ํ๋ ์๋ ์์ง๋ง ๊ณต์ ํ ์ ์๋ ํ๋ ์๋ ์กด์ฌํ๋ค.
๋ง์ฝ, ๊ธฐ์กด ํ๋ก์ธ์ค์์ ์ฌ์ฉํ๋ ๋ณ์๊ฐ์ ๋ณต์ฌ๋ ํ๋ก์ธ์ค์์ ๋ณ๊ฒฝํ๋ค๋ฉด ๊ธฐ์กด ํ๋ก์ธ์ค์ ์ํฅ์ ๋ผ์น๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๊ฒฝ์ฐ์๋ ๊ฐ์ ํ๋ ์์ ๊ณต์ ํ ์ ์๋ค. ๊ทธ๋ ๋ค๊ณ ์ด ๋ณ์๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ์ ํ๋ ์์ ๋ฏธ๋ฆฌ ํ๋ณดํ๋ ๊ฒฝ์ฐ๋ ๋ญ๋น์ผ ์ ์์ผ๋ ์ด์์ฒด์ ๋ ๋ฐ์ดํฐ ๋ณํ๊ฐ ์์ ๋๊น์ง ์๋ก์ด ํ๋ ์์ ํ๋ณด, ์ฆ ๋ณต์ฌ๋ฅผ ๋ฏธ๋ฃจ๋ ๋ฐฉ์์ ์ฐ๊ธฐ ์์ ๋ณต์ฌ๋ฅผ ์ฌ์ฉํ๋ค.
๋ณํ ์์ธ ๋ฒํผ(TLB: Translation Look-ahead Buffer)
๊ฐ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํํ๋ ์์
์ CPU ์์ ์๋ MMU๊ฐ ๋ด๋นํ๋ค. ๊ฐ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํํ๋ ค๋ฉด ์๋ ๊ทธ๋ฆผ์์ 2๋ฒ๊ณผ 4๋ฒ์ฒ๋ผ ๋ฉ๋ชจ๋ฆฌ์ ๋ ๋ฒ ์ ๊ทผํด์ผ ํ๋ค.
CPU ์์ ์๋ ๋ ์ง์คํฐ๋ ์บ์์ ์ ๊ทผํ ๋๋ณด๋ค ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ๋ ์๊ฐ์ด ๋ช ๋ฐฐ ์ด์ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋ ๋ฒ ์ ๊ทผํ๋ ๋ฐฉ์์ CPU ์ฑ๋ฅ์ ๋จ์ด๋จ๋ฆฐ๋ค. ๋ฐ๋ผ์, ํ์ด์ง ํ
์ด๋ธ์ ์ผ๋ถ๋ฅผ CPU ์์ชฝ์ผ๋ก ๊ฐ์ ธ์ค๋๋ฐ, ์ด๋ฅผ ๋ณํ ์์ธ ๋ฒํผ๋ผ๊ณ ํ๋ค. ๋ณํ ์์ธ ๋ฒํผ๋ ์ฝ๊ฒ ๋งํด ์บ์๋ ํ์ด์ง ํ
์ด๋ธ์ด๋ค. ์ด๋, ๋ชจ๋ ํ์ด์ง ๋ฒํธ๊ฐ ์์๋๋ก ๋์ด๋์ด ์์ด 1๊ฐ์ ์ด๋ก ๊ตฌ์ฑ๋์ด ์๋ ํ์ด์ง ํ
์ด๋ธ๊ณผ ๋ค๋ฅด๊ฒ TLB๋ ์ ์ฒด ํ์ด์ง ํ
์ด๋ธ์ ์ผ๋ถ๋ง ์์ด์ <ํ์ด์ง ๋ฒํธ, ํ๋ ์ ๋ฒํธ>์ 2๊ฐ ์ด๋ก ๊ตฌ์ฑ๋๋ค.
์บ์ ์์คํ
๊ณผ ์ ์ฌํ๊ฒ ์ํ๋ ํ์ด์ง ๋ฒํธ๊ฐ ๋ณํ ์์ธ ๋ฒํผ์ ์์ผ๋ฉด TLB ํํธ, ์ํ๋ ํ์ด์ง๊ฐ ์์ผ๋ฉด TLB ๋ฏธ์ค๋ผ๊ณ ํ๋ค.
TLB ํํธ์ด๋ฉด 2๋ฒ๊ณผ 3๋ฒ ๋์์ ์๋ตํ๊ณ , TLB ๋ฏธ์ค์ด๋ฉด ์๋ต๋๋ ๋์ ์์ด ์งํํ๋ค.
์ญ ํ์ด์ง ํ
์ด๋ธ(Invert Page Table)
์ญ ํ์ด์ง ํ
์ด๋ธ์ ํ์ด์ง ๋ฒํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ
์ด๋ธ์ ๊ตฌ์ฑํ๋ ๊ธฐ์กด ํ์ด์ง ๋ฐฉ์๊ณผ๋ ๋ฐ๋๋ก ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ํ๋ ์ ๋ฒํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ
์ด๋ธ์ ๊ตฌ์ฑํ๋ค. ์ญ ํ์ด์ง ํ
์ด๋ธ์ ๊ฐ์ฅ ํฐ ํน์ง์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ ์ ํ
์ด๋ธ์ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ํ๋ก์ธ์ค์ ์์ ์๊ด์์ด ํ
์ด๋ธ์ด ํ๋๋ง ์กด์ฌํ๋ค๋ ๊ฒ์ด๋ค.
์ญ ํ์ด์ง ํ
์ด๋ธ์ ๊ตฌ์ฑ์ ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด <ํ๋ ์ ๋ฒํธ, PID, ํ์ด์ง ๋ฒํธ>๋ก ๊ตฌ์ฑ๋๊ณ , ํ์ด์ง ํ
์ด๋ธ์ ํ ์๋ ์ค์ ํ๋ ์์ ์์ ๊ฐ๋ค. ์ญ ํ์ด์ง ํ
์ด๋ธ์ ํ
์ด๋ธ์ ํฌ๊ธฐ๊ฐ ์๋ค๋ ์ฅ์ ์ด ์์ง๋ง, ํ๋ก์ธ์ค๊ฐ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ๋ PID์ ํ์ด์ง ๋ฒํธ๋ฅผ ๋ชจ๋ ์ฐพ์์ผ ํ๋ ๋จ์ ์ด ์๋ค.
๋ค๋จ๊ณ ํ์ด์ง ํ
์ด๋ธ
๊ธฐ์ ์ ๋ฐ์ ์ผ๋ก CPU ๋นํธ ์๊ฐ ์ ์ฐจ ๋ฐ์ ํจ์ ๋ฐ๋ผ ์ฌ์ฉํ ์ ์๋ ์ฃผ์ ๊ณต๊ฐ์ด ๋์ด๋ ํ์ด์ง ํ
์ด๋ธ์ ํฌ๊ธฐ๊ฐ ์ปค์ง์ผ๋ก์จ ํ๊บผ๋ฒ์ ๊ด๋ฆฌํ๊ธฐ๊ฐ ํ๋ค๊ฒ ๋์๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ง๋ ๋ฐฉ์์ด ๋ค๋จ๊ณ ํ์ด์ง ํ
์ด๋ธ์ด๋ค. ๋ค๋จ๊ณ ํ์ด์ง ํ
์ด๋ธ ๋ฐฉ์์ ์งํฉ-์ฐ๊ด ๋งคํ(Set-Associative Mappin) ํน์ ๋๋ ํ ๋ฆฌ ๋งคํ(Directory Mapping)์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ ๊ทธ๋ฆผ์ 2๋จ๊ณ ํ์ด์ง ํ
์ด๋ธ์ ๊ตฌ์ฑ์ ๋ํ๋ธ๋ค. 1์ฐจ ํ์ด์ง ํ
์ด๋ธ์ 2์ฐจ ํ์ด์ง ํ
์ด๋ธ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์์ ์ฃผ์๋ฅผ ๋ํ๋ธ๋ค. ์ด๋ฌํ 1์ฐจ ํ
์ด๋ธ์ ์งํฉ ํ
์ด๋ธ ํน์ ๋๋ ํฐ๋ฆฌ ํ
์ด๋ธ์ด๋ผ๊ณ ํ๋ค. 1์ฐจ ํ
์ด๋ธ์์ I๋ผ๊ณ ํ์๋ ๊ฒ์ 2์ฐจ ํ์ด์ง ํ
์ด๋ธ์ด ์์ง ๋ง๋ค์ด์ง์ง ์์๋ค๋ ๋ป์ Invalid๋ฅผ ํํํ๋ ๊ฒ์ด๋ค.
๋ค๋จ๊ณ ํ์ด์ง ํ
์ด๋ธ ๋ฐฉ์์์๋ ์ ์ฒด ํ์ด์ง ํ
์ด๋ธ์ ํ๊บผ๋ฒ์ ๋ง๋ค์ง ์๊ณ ํ์ํ ๋ 2์ฐจ ํ์ด์ง ํ
์ด๋ธ์ ๋ง๋ค๊ณ , 1์ฐจ ํ์ด์ง ํ
์ด๋ธ์ ๊ฐ์ ์
๋ฐ์ดํธํ๋ค. 2๋จ๊ณ ํ์ด์ง ํ
์ด๋ธ ๋ฐฉ์์์ ๊ฐ์ ์ฃผ์๋ VA = <P1, P2, D>๋ก ํ์๋๋ค.
P1์ 1์ฐจ ํ
์ด๋ธ์ ์์น ์ ๋ณด๋ฅผ, P2๋ 2์ฐจ ํ์ด์ง ํ
์ด๋ธ์ ์์น ์ ๋ณด๋ฅผ ๋ํ๋ธ๋ค. ์๋ฅผ ๋ค์ด, ํ์ด์ง ํ
์ด๋ธ์ 10๊ฐ์ฉ ์๋ผ 2์ฐจ ํ์ด์ง ํ
์ด๋ธ์ ๋ง๋ ๋ค๊ณ ๊ฐ์ ํ์ ๋ ๊ฐ์ ์ฃผ์ 32๋ฒ์ <0, 3, 2>๋ก ๋ณํ๋๊ณ , ๊ฐ์ ์ฃผ์ 127๋ฒ์ <1, 2, 7>, ๊ฐ์ ์ฃผ์ 1784๋ฒ์ <17, 8, 4>๋ก ๋ณํ๋๋ค.
๋ง์ฝ ํ์ด์ง ํ
์ด๋ธ์ ํฌ๊ธฐ๊ฐ ๋งค์ฐ ํฐ ๊ฒฝ์ฐ, 3๋จ๊ณ๋ 4๋จ๊ณ ํ์ด์ง ํ
์ด๋ธ ๋ฐฉ์์ด ์ฌ์ฉ๋๊ธฐ๋ ํ๋ฉฐ ํ์ด์ง ํ
์ด๋ธ์ ์ฃผ์๋ ๊ณ์ ์ธ๋ถํ๋๋ค. ์ด๋ฌํ ํน์ง ๋๋ฌธ์ ๋ค๋จ๊ณ ํ์ด์ง ํ
์ด๋ธ ๋ฐฉ์์ ๋ฉํฐํ์ด์ง ๋งคํ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ค๋จ๊ณ ํ์ด์ง ํ
์ด๋ธ์ ์ฅ์ ์ ํฌ๊ธฐ๊ฐ ํฐ ํ์ด์ง ํ
์ด๋ธ์ ๊ฐ์ ํฌ๊ธฐ์ ๋ฌถ์์ผ๋ก ๋๋์ด์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ค๋ ๊ฒ์ด๋ค. ํ์ด์ง ํ
์ด๋ธ ์ ์ฒด๋ฅผ ํ๊บผ๋ฒ์ ๋ง๋ค์ง ์๊ณ ํ์ํ ๋๋ง๋ค ์์ฑํ๊ณ ๊ด๋ฆฌํจ์ผ๋ก์จ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๊ณต๊ฐ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ค.
์ธ๊ทธ๋จผํ ์ด์ ๊ธฐ๋ฒ
์ธ๊ทธ๋จผํ ์ด์ ๊ธฐ๋ฒ์ ๊ฐ๋ณ ๋ถํ ๋ฐฉ์์ ์ด์ฉํ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ผ๋ก ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋ก์ธ์ค ํฌ๊ธฐ์ ๋ฐ๋ผ ๊ฐ๋ณ์ ์ผ๋ก ๋๋์ด ์ฌ์ฉํ๋ค.
์ธ๊ทธ๋จผํ ์ด์ ๊ธฐ๋ฒ์ ๊ตฌํ
์ธ๊ทธ๋จผํ
์ด์
๊ธฐ๋ฒ๋ ํ์ด์ง ๊ธฐ๋ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํ
์ด๋ธ์ ์ฌ์ฉํ๋๋ฐ ์ด๋ฅผ ์ธ๊ทธ๋จผํ
์ด์
ํ
์ด๋ธ ๋๋ ์ธ๊ทธ๋จผํ
์ด์
๋งคํ ํ
์ด๋ธ์ด๋ผ๊ณ ํ๋ค.
์ธ๊ทธ๋จผํ
์ด์
ํ
์ด๋ธ์๋ ์ธ๊ทธ๋จผํธ์ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ limit์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์์ ์ฃผ์๋ฅผ ๋ํ๋ด๋ address๊ฐ ์๋ค. ์ธ๊ทธ๋จผํ
์ด์
๊ธฐ๋ฒ์์๋ ํ๋ก์ธ์ค์ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ถํ ํ๊ธฐ ๋๋ฌธ์ ํฌ๊ธฐ ์ ๋ณด๋ฅผ ํฌํจํ๋ค. ์ธ๊ทธ๋จผํ
์ด์
๊ธฐ๋ฒ์์๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๋๋ ์ค์ ์์ญ์ ์ฌ์ฉํ๋ค. ํ์ด์ง ๊ธฐ๋ฒ๊ณผ ๋๊ฐ์ด I(invalid)๋ผ๊ณ ํ์ํ๋ค.
์ธ๊ทธ๋จผํ
์ด์
๊ธฐ๋ฒ์ ๊ฐ๋ณ ๋ถํ ๋ฐฉ์์ด๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋ก์ธ์ค ๋จ์๋ก ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์ธ๊ทธ๋จผํ
์ด์
ํ
์ด๋ธ์ด ์๊ณ ๋จ์ํ๋ค๋ ์ฅ์ ์ด ์๊ณ , ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ธ๋ถ ๋จํธํ๋ก ์ธํด ๊ด๋ฆฌ๊ฐ ๋ณต์กํ๋ค๋ ๋จ์ ์ด ์๋ค.
์ธ๊ทธ๋จผํ ์ด์ ๊ธฐ๋ฒ์ ์ฃผ์ ๋ณํ
์ธ๊ทธ๋จผํ
์ด์
๊ธฐ๋ฒ์์๋ ๊ฐ์ ์ฃผ์๋ฅผ VA = <S, D>๋ก ํํํ๋ค. S๋ ์ธ๊ทธ๋จผํธ ๋ฒํธ, D๋ ์ธ๊ทธ๋จผํธ ์์ ์ง์ ์์ ํด๋น ์ฃผ์๊น์ง์ ๊ฑฐ๋ฆฌ ๋๋ ๋ณ์(Offset)๋ฅผ ์๋ฏธํ๋ค.
ํ๋ก์ธ์ค A๊ฐ ์ธ๊ทธ๋จผํธ 0๋ฒ์ผ๋ก ๋ฐฐ์ ๋ฐ์๋ค๊ณ ๊ฐ์ ํ์ ๊ฒฝ์ฐ, ํ๋ก์ธ์ค A์ ๊ฐ์ ์ฃผ์ 32๋ฒ์ ์ ๊ทผํ ๋ ์ฃผ์ ๋ณํ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
๋จผ์ , ๊ฐ์ ์ฃผ์๋ VA = <0, 32>์ด๋ค. ์ธ๊ทธ๋จผํ
์ด์
ํ
์ด๋ธ์์ ์ธ๊ทธ๋จผํธ 0์ ์์ ์ฃผ์ 120๋ฒ์ ์์๋ธ ํ ๊ฑฐ๋ฆฌ 32๋ฅผ ๋ํ์ฌ ๋ฌผ๋ฆฌ ์ฃผ์ 152๋ฒ์ ๊ตฌํ๋ค. ์ด๋, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์๋ ๊ฑฐ๋ฆฌ 32๊ฐ ์ธ๊ทธ๋จผํธ์ ํฌ๊ธฐ๋ณด๋ค ํฐ ์ง ์ ๊ฒํ๋ค. ํฌ๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ค๋ฅ, ํธ๋ฉ(Trap)์ด๋ผ๋ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ํค๋๋ฐ ํธ๋ฉ์ด ๋ฐ์ํ๋ฉด ์ด์์ฒด์ ๋ ์ฌ์ฉ์์๊ฒ ์ธ๊ทธ๋จผํ
์ด์
์ค๋ฅ(Segmentation Fault) ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ์ข
๋ฃ์ํจ๋ค. ๋ง์ฝ, ํฌ์ง ์๋ค๋ฉด ๋ฌผ๋ฆฌ ์ฃผ์ 152๋ฒ์ ์ ๊ทผํ์ฌ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์ด๋ค.
'CS > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ (1) | 2023.05.20 |
---|---|
[์ด์์ฒด์ ] ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ (0) | 2023.05.20 |
[์ด์์ฒด์ ] ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ (0) | 2023.05.02 |
[์ด์์ฒด์ ] ๊ต์ฐฉ ์ํ(Deadlock) (1) | 2023.04.23 |
[์ด์์ฒด์ ] ๋๊ธฐํ(Synchronization) (0) | 2023.04.23 |
๋๊ธ