- ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ๊ธฐ๋ฒ
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ
๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋ ์ฆ, ์คํ์ค์ธ ํ๋ก์ธ์ค๊ฐ ๊ฐ์์ ๊ณต๊ฐ์ ์ฐธ์กฐํ์ฌ ๋ง์น ์ปค๋ค๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ๊ณ ์๋ ๊ฒ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๊ฒ์ด๋ค.- ๊ฐ๋จํ๊ฒ ๋งํด ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ์๋ ๊ฐ์์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ฃผ๋ ๋ฐฉ์์ด๋ค.
ex)
๋ด๊ฐ ์คํํ๊ณ ์ ํ๋ ํ๋ก๊ทธ๋จ์ ์ฉ๋์ด 5GB์ธ๋ฐ, ๋ฉ๋ชจ๋ฆฌ๋ 4GB์ด๋ค. ์ด๋ป๊ฒ ์คํํ ๊น?
์ฌ๋ฆฌ๋ ๊ฒ๋ ๋ฌธ์ ์ด์ง๋ง, ์ฌ๋ฆฐ๋ค๊ณ ํ๋๋ผ๋ ํด๋น ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋๋ ๋ค๋ฅธ ์์ ์ ์๋ฌด๊ฒ๋ ํ์ง ๋ชปํ๊ฒ ๋๋ค. ์ด๋ด ๋, ์ฌ์ฉํ๋ ๊ธฐ์ ์ด ๋ฐ๋ก ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ด๋ค.
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ๊ฐ ํ๋ก์ธ์ค๋น ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ๋์ผํ ํฌ๊ธฐ๋ก ํ๋์ฉ ํ ๋น๋๋ค. ๊ทธ ๊ณต๊ฐ์ ๋ณด์กฐ๊ธฐ์ต์ฅ์น ๊ณต๊ฐ์ ์ด์ฉํ๋ค. ํ๋ก์ธ์ค์ ์ผ๋ถ๋ง ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํ๊ณ ๋๋จธ์ง๋ ๋ณด์กฐ๊ธฐ์ต์ฅ์น์ ๋๋ ํํ์ด๋ค.
์ด๋ ๊ฒ ํ ๋น๋๋ฉด ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ฅ์น(MMU)์ ์ํด ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํ๋์ด ์ฌ์ฉ์๊ฐ ๋ฉ๋ชจ๋ฆฌ ๋งตํ์ด ์ด๋ป๊ฒ ๋๋์ง ์์ํ ํ์ ์์ด ์์์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ฉํ์ฌ ์์ ํ๋ค.
- ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ์ ๋์ผํ(๊ณ ์ ๋) ์ฌ์ด์ฆ์ ํ์ด์ง ๋จ์๋ก ๋๋์ด ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ถ์ฐ์์ ์ผ๋ก ์ ์ฅํ๋ ๋ฐฉ์
- ์ธ๋ถ ๋จํธํ์ ์์ถ ์์ ์ ํด์ํ๊ธฐ ์ํจ์ด๋ค.
- ๋ฉ๋ชจ๋ฆฌ๋
Frame
์ด๋ผ๋ ๊ณ ์ ํฌ๊ธฐ๋ก ๋ถํ ๋๊ณ , ํ๋ก์ธ์ค๋Page
๋ผ ๋ถ๋ฆฌ๋ ๊ณ ์ ํฌ๊ธฐ๋ก ๋ถํ ๋๋ค. - ํ๋์ ํ๋ก์ธ์ค๋ ์ฐ์์ ์ธ ๋์์ ์ํํ๋๋ฐ, ์ด๋ฅผ ์์ ์กฐ๊ฐ์ผ๋ก ๋๋์ด ์ฌ๊ธฐ์ ๊ธฐ ํฉ์ด์ง๋ค๋ฉด ์ ์์ ์ผ๋ก ๋์ํ ๊น?
- ์ด์ฒ๋ผ ๋ฉ๋ชจ๋ฆฌ์์์ ์ฌ๋ฌ ๊ณณ์ ํฉ์ด์ง ํ๋ก์ธ์ค๋ฅผ ์ํํ๊ธฐ ์ํด MMU๋ฅผ ํตํด ๋ ผ๋ฆฌ ์ฃผ์์ ๋ฌผ๋ฆฌ ์ฃผ์๋ฅผ ๋๋์ด ์ฌ์ฉํจ์ผ๋ก์จ CPU๋ฅผ ์์ฌ์ผ ํ๋ค.
- ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ ์ ํ ์ฐ์์ ์ด์ง ์๋๋ฐ, CPU๋ ์ฐ์์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์๋ค๋ ๊ฒ์ ๋ณด์ฅ๋ฐ์ผ๋ฉฐ ์ ์์ ์ผ๋ก ์ํํ๋ค.
- 50byte ํฌ๊ธฐ์ ํ๋ก์ธ์ค๊ฐ ์๋ค๊ณ ๊ฐ์ ํ๊ณ , ํ์ด์ง์ ํฌ๊ธฐ๋ 10byte๋ก ๋๋๋ค.
- ํ๋ก์ธ์ค P1์ 5๊ฐ์ ํ์ด์ง๋ก ๋๋ ์ ์๋ค. ์ด๋ฅผ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ 5๊ณณ์ ๋๋ ์ ํ ๋นํ๋ค.
- CPU๋ ๋ ผ๋ฆฌ ์ฃผ์๋ก ํ๋ก๊ทธ๋จ์ด ์ค์ ํ๋๋ก ์ฐ์์ ์ธ ์ฃผ์๊ฐ์ผ๋ก ๋ช ๋ น์ ๋ด๋ฆฌ๊ณ ์ด๋ ๋ฉ๋ชจ๋ฆฌ๋ก ๊ฐ๊ธฐ ์ ์ ๊ฐ ํ์ด์ง์ ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ์ ์ฅ๋์ด ์๋ ํ ์ด๋ธ์์ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณ๊ฒฝ๋์ด์ผ ํ๋ค.
- ํ๋ก์ธ์ค๋ฅผ ๋๋ ์กฐ๊ฐ์ Page๋ผ ํ๊ณ , ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋๋ ์กฐ๊ฐ์ Frame์ด๋ผ ํ๋ค.
- ํ๋ก์ธ์ค๋ ํ์ด์ง์ ์งํฉ์ด๊ณ , ๋ฉ๋ชจ๋ฆฌ๋ ํ๋ ์์ ์งํฉ์ด๋ค.
- ํ๋ก์ธ์ค๋ฅผ ์ ์์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด MMU์ ์ฌ๋ฐฐ์น ๋ ์ง์คํฐ๋ฅผ ์ฌ๋ฌ ๊ฐ ์ฌ์ฉํด์ ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๊ฐ ํ์ด์ง์ ์ค์ ์ฃผ์๋ก ๋ณ๊ฒฝํด์ค๋ค. ์ด๋ฌํ ์ฌ๋ฌ ๊ฐ์ ์ฌ๋ฐฐ์น ๋ ์ง์คํฐ๋ฅผ
ํ์ด์ง ํ ์ด๋ธ(Page Table)
์ด๋ผ ํ๋ค.
[๋จ์ ]
- ๋ด๋ถ ๋จํธํ ๋ฌธ์ ์ ๋น์ค์ด ๋์ด๋๊ฒ ๋๋ค.
- Ex) Page ํฌ๊ธฐ : 1024B, ํ๋ก์ธ์ค A๊ฐ 3172์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๊ตฌํ๋ค๋ฉด 3๊ฐ์ ํ์ด์ง ํ๋ ์(1024 x 3 = 3072)์ ๊ตฌ์ฑํ๊ณ ๋ 100B๊ฐ ๋จ๊ธฐ ๋๋ฌธ์ ์ด 4๊ฐ์ ํ์ด์ง ํ๋ ์์ด ํ์ํ๋ค. ๋ง์ง๋ง ํ์ด์ง ํ๋ ์์๋ 924B์ ์ฌ์ ๊ณต๊ฐ์ด ๋จ๊ฒ ๋๋ ๋ด๋ถ ๋จํธํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
ํ์ด์ง ๊ธฐ๋ฒ์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ฌ๋ฌ ๊ฐ๋ก ํฉ์ด์ง ํ์ด์ง์ CPU๊ฐ ์ ๊ทผํ๊ธฐ ์ํด์ ํ์ด์ง ํ ์ด๋ธ์ ํตํด ์ฃผ์๋ฅผ ๋ณํํด์ผ ํ๋ค.
[๋ ผ๋ฆฌ ์ฃผ์(Logical Address)]
- CPU๊ฐ ์ ๊ทผํ๋ ์ฃผ์๋ 2์ง์๋ก ํํ๋๊ณ ์ด๋ m๋นํธ๊ฐ ์๋ค๊ณ ๊ฐ์ ํ๋ค. ์ฌ๊ธฐ์ ํ์ n๋นํธ๋ ์คํ์ (offset) ๋๋ ๋ณ์(displacement)๋ผ๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์์ m-n๋นํธ๋ ํ์ด์ง์ ๋ฒํธ์ ํด๋นํ๋ค. (n = d, m-n = p)
- ๋ ผ๋ฆฌ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ์ฃผ์๋ก ๋ณํํ๊ธฐ ์ํด์ ํ์ด์ง ๋ฒํธ(p)๋ ํ์ด์ง ํ ์ด๋ธ์ ์ธ๋ฑ์ค ๊ฐ์ด๊ณ , p์ ํด๋น๋๋ ํ ์ด๋ธ ๋ด์ฉ์ ๋ฉ๋ชจ๋ฆฌ์ ํ๋ ์ ๋ฒํธ์ด๋ค. ๋ณ์(d)๋ ๋ณํ์ง ์๋ ๊ฐ์ด๋ค. ์ด ๊ท์น์ ๋ํ ์์ ๋ฅผ ์ดํด๋ณด์.
- Page size = 16bytes
- Page Table = 5,3,2,8,1,4
- ๋ ผ๋ฆฌ ์ฃผ์ 50๋ฒ์ง๋ ๋ฌผ๋ฆฌ์ฃผ์ ๋ช ๋ฒ์ง์ธ๊ฐ?
ํ๋ก์ธ์ค P๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น๋ ๋ชจ์ต์ด๋ค. CPU๊ฐ 50๋ฒ์ง ์ ๊ทผํ๋ ค๊ณ ํ๋ค. ๊ทธ๋ฌ๋ฉด ํ์ด์ง ํ ์ด๋ธ์ ์ ๋ณด๋ฅผ ์ฝ๊ธฐ ์ํด ๋ ผ๋ฆฌ ์ฃผ์๋ฅผ p์ d ๊ฐ์ผ๋ก ๋๋ ์ผ ํ๋ค.
d๋ ํ์ด์ง ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ฐ, ํ์ฌ ํ์ด์ง ํฌ๊ธฐ๋ 16byte์ด๋ค. ์ด๋ 2^4์ด๋ฏ๋ก d = 4์ด๋ค.
p๋ d๋ฅผ ์ ์ธํ ๋๋จธ์ง ํฌ๊ธฐ์ด๋ค.
๊ทธ๋ฌ๋ฉด ์ค์ ๋ก p,d๋ฅผ ๊ณ์ฐํด๋ณด์. ํ์ฌ ๋ ผ๋ฆฌ ์ฃผ์๋ 50์ด๋ฉฐ, ์ด์ง์๋ก ๋ํ๋ด๋ฉด 110010์ด๋ค. ๋จผ์ , d๋ 4์ด๋ฏ๋ก ์ด์ง์์ ๋ค์์ 4์นธ์ด d์ ํด๋น๋๋ค. d๋ฅผ ์ ์ธํ ๋๋จธ์ง 2์นธ์ด p๊ฐ ๋๋ค.
50 = 110010
p = 11
d = 0010
p๋ ์ด์ง์ 11์ด๊ณ , ์ญ์ง์๋ก 3์ด๋ค. ์ฆ, ํ์ด์ง ํ ์ด๋ธ์ ํ์ด์ง ๋ฒํธ 3์ ๊ฐ๋ฆฌํจ๋ค. ํ์ด์ง 3๋ฒ์ ํด๋นํ๋ ํ๋ ์ ๋ฒํธ๋ 8๋ฒ์ด๋ฏ๋ก, ๋ฌผ๋ฆฌ์ฃผ์๋ฅผ ๊ตฌ์ฑํ๋ f ๊ฐ์ 8์ด ๋๋ค.
f = 1000
d = 0010
๋ฌผ๋ฆฌ์ฃผ์ = 10000010
์ต์ข ์ ์ผ๋ก ๋ฌผ๋ฆฌ์ฃผ์๋ f์ d๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฏ๋ก ๋ฌผ๋ฆฌ์ฃผ์๋ ์ด์ง์๋ก 10000010์ด ๋๊ณ , ์ญ์ง์๋ก 130๋ฒ์ง๊ฐ ๋๋ค. ์ฆ, ๋ณ์๋ 2์ด๋ฏ๋ก 8๋ฒ์งธ ํ๋ ์์ ์์ ์ฃผ์๋ 130์์ 2๋ฅผ ๋บ 128๋ฒ์ง(16*8)๊ฐ ๋๋ค.
์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํ๋ฉด์ ์ธ๋ถ ๋จํธํ๊ฐ ๋ฐ์ํ์ฌ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ์ด์ง ๊ธฐ๋ฒ์ด ๋ฑ์ฅํ์ง๋ง, ํ์ด์ง์ ๋ด๋ถ ๋จํธํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
๋ด๋ถ ๋จํธํ๋ ํ๋ก์ธ์ค ํฌ๊ธฐ๊ฐ ํ์ด์ง ํฌ๊ธฐ์ ๋ฐฐ์๊ฐ ์๋ ๊ฒฝ์ฐ, ๋ง์ง๋ง ํ์ด์ง๋ ํ ํ๋ ์(ํ์ด์ง)๋ฅผ ๋ค ์ฑ์ธ ์ ์์ด์ ๋ฐ์ํ๋ ๊ณต๊ฐ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น์ ์์ธ์ด ๋๋ค.
์๋ฅผ ๋ค์ด, 15bytes ํฌ๊ธฐ์ ํ๋ก์ธ์ค p๊ฐ ์๋ค. ํ์ด์ง ํฌ๊ธฐ๋ 4byte๋ก p๋ฅผ ํ์ด์ง๋ก ๋๋๋ฉด 4,4,4,3์ ํฌ๊ธฐ๋ก ์ด 4๊ฐ์ ํ์ด์ง๊ฐ ๋ง๋ค์ด์ง๋ค. ๋ง์ง๋ง 3byte ํ์ด์ง๋ ํ์ด์ง์ ํฌ๊ธฐ๋ณด๋ค 1byte ์์ผ๋ฏ๋ก ์ฌ์ฉํ์ง ๋ชปํ๊ณ , ์ด๋งํผ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋น๊ฒ ๋๋ค. ์ด๋ ๊ฒ ๋น์ด์ง ๊ณต๊ฐ์ ํ๋ก์ธ์ค p์์๋ ์ฐ์ง ์๊ณ , ๋ค๋ฅธ ํ๋ก์ธ์ค์์๋ ์ฐ์ง ๋ชปํ๋ ๋ญ๋น๋๋ ๊ณต๊ฐ์ด ๋๋ค.
์์ฝ๊ฒ๋ ๋ด๋ถ ๋จํธํ๋ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ด ์๋ค. ํ์ง๋ง, ๋ด๋ถ ๋จํธํ๋ ์ธ๋ถ ๋จํธํ์ ๋นํด ๋ญ๋น๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋งค์ฐ ์ ๋ค. ๋ด๋ถ ๋จํธํ์ ์ต๋ ๋ญ๋น๋๋ ํฌ๊ธฐ๋ page size - 1์ด ๋๋ค. (์ธ๋ถ ๋จํธํ๋ ์ต๋ ์ ์ฒด ๋ฉ๋ชจ๋ฆฌ์ 1/3์ด ๋ญ๋น๋๋ค๊ณ ํ๋ค.) ์ด๋ ๋ฌด์ํ ์ ๋๋ก ์์ ํฌ๊ธฐ์ด๋ค.
๋ชจ๋ ์ฃผ์๋ ํ์ด์ง ํ ์ด๋ธ์ ๊ฒฝ์ ํ๋ฏ๋ก, ํ ์ด๋ธ์ ์ด์ฉํด์ ๋ณดํธ ๊ธฐ๋ฅ์ ์ํํ ์ ์๋ค. ๋ํ์ ์ผ๋ก ํ์ด์ง ํ ์ด๋ธ๋ง๋ค r(read), w(write), x(execute) ๋นํธ๋ฅผ ๋์ด, ํด๋น ๋นํธ๊ฐ ์ผ์ ธ์์ ๋, ๊ทธ ์ํ์ด ๊ฐ๋ฅํ๋๋ก ํ๋ค.
ํ์ด์ง ํ ์ด๋ธ์ r,w,x ๋นํธ๋ฅผ ์ถ๊ฐํ ๋ชจ์ต์ด๋ค. ๋ง์ฝ, 1๋ฒ ํ์ด์ง ์ํธ๋ฆฌ์ฒ๋ผ ์ฐ๊ธฐ ๋นํธ๊ฐ ๊บผ์ ธ์๋ ํ์ด์ง์ ์ฐ๊ธฐ ์์ ์ ์๋ํ๋ฉด CPU์ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ์ฌ ISR(Interrupt Service Routine)์์ ๊ฐ์ ๋ก ํด๋น ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃ์ํจ๋ค.
๊ณต์ ๋ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํจ์ด๋ค. ๊ฐ์ ํ๋ก๊ทธ๋จ์ ์ฐ๋ ๋ณต์ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ์๋ค๋ฉด, ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ code+data+stack ์์ญ์ผ๋ก ๋๋๋๋ฐ ํ๋ก๊ทธ๋จ์ด ๊ฐ๋ค๋ฉด code ์์ญ์ ๊ฐ์ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ฏ๋ก ํ๋์ code ์์ญ์ ๋ณต์ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ์ค์ด๋ ๊ฒ์ด๋ค. ๋จ, code๊ฐ ๊ณต์ ๋๋ ค๋ฉด code๊ฐ ๋ณํ์ง ์๋ ํ๋ก๊ทธ๋จ์ด์ด์ผ ํ๋ค. ์ด๋ฅผ non-self-modifying code = reentrant code(์ฌ์ง์ ๊ฐ๋ฅ ์ฝ๋) = puer code ๋ผ๊ณ ํ๋ค.
- ํ๋ก์ธ์ค๋ฅผ ์๋ก ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ ๋ ผ๋ฆฌ์ ์ธ ๋ธ๋ก ๋จ์์ธ '์ธ๊ทธ๋จผํธ(Segment)'๋ก ๋ถํ ํ๊ณ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐฐ์นํ๋ ๊ฒ์ ๋งํ๋ฉฐ, ๊ฐ ์ธ๊ทธ๋จผํธ์ ํฌ๊ธฐ๋ ์ผ์ ํ์ง ์๋ค.
- ํ๋ก์ธ์ค๋ฅผ Code + Data + Stack ์์ญ์ผ๋ก ๋๋๋ ๊ฒ ์ญ์ ์ธ๊ทธ๋ฉํ ์ด์ ์ ๋ชจ์ต์ด๋ค. ๋ฌผ๋ก , code, data, stack ๊ฐ๊ฐ ๋ด๋ถ์์ ๋ ์์ ์ธ๊ทธ๋จผํธ๋ก ๋๋ ์๋ ์๋ค.
- ์ธ๊ทธ๋จผํธ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋นํ ๋๋ ํ์ด์ง๋ฅผ ํ ๋นํ๋ ๊ฒ๊ณผ ๋์ผํ๋ค. ํ์ง๋ง, ํ ์ด๋ธ์ ์กฐ๊ธ ๋ค๋ฅด๋ค. ์ธ๊ทธ๋จผํ ์ด์ ์ ์ํ ํ ์ด๋ธ์ ์ธ๊ทธ๋จผํธ ํ ์ด๋ธ์ด๋ผ๊ณ ํ๋ค.
- ์ธ๊ทธ๋จผํธ ํ ์ด๋ธ์ ์ธ๊ทธ๋จผํธ ๋ฒํธ์ ์์ ์ฃผ์, ์ธ๊ทธ๋จผํธ ํฌ๊ธฐ๋ฅผ ์ํธ๋ฆฌ๋ก ๊ฐ๋๋ค.
- ์ธ๊ทธ๋จผํธ์์ ์ฃผ์๋ณํ ์ญ์, ํ์ด์ง๊ณผ ์ ์ฌํ๋ค. ํ ๊ฐ์ง ์ฃผ์ํ ์ ์ ์ธ๊ทธ๋จผํธ์ ํฌ๊ธฐ๋ ์ผ์ ํ์ง ์๊ธฐ ๋๋ฌธ์, ํ ์ด๋ธ์ limit ์ ๋ณด๊ฐ ์ฃผ์ด์ง๋ค. ๊ทธ๋ฆฌ๊ณ CPU์์ ํด๋น ์ธ๊ทธ๋จผํธ์ ํฌ๊ธฐ๋ฅผ ๋์ด์๋ ์ฃผ์๊ฐ ๋ค์ด์ค๋ฉด ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํด์ ํด๋น ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ๋ก ์ข ๋ฃ์ํจ๋ค.
์ ๊ทธ๋ฆผ์ ์ธ๊ทธ๋จผํธ ํ ์ด๋ธ๊ณผ ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ชจ์ต์ด๋ค. ํ์ด์ง ์ฃผ์๋ณํ๊ณผ ๋์ผํ๊ฒ d(๋ณ์ : ๋ณํ์ง ์๋ ๊ฐ)๋ ๋ ผ๋ฆฌ์ฃผ์์ ๋ฌผ๋ฆฌ์ฃผ์๊ฐ ๋์ผํ๋ค. ๋ฌผ๋ฆฌ์ฃผ์ a๋ base[s]+d ๋ก ๊ณ์ฐ๋๋ค.
- ๋ ผ๋ฆฌ ์ฃผ์(2, 100) -> ๋ฌผ๋ฆฌ์ฃผ์ 4400๋ฒ์ง
- ๋ ผ๋ฆฌ ์ฃผ์(1, 500) -> limit์ด 400๋ฐ์ ์๋๋ฏ๋ก ์ธํฐ๋ฝํธ๋ก ์ธํด ํ๋ก์ธ์ค ๊ฐ์ ์ข ๋ฃ(๋ฒ์๋ฅผ ๋ฒ์ด๋จ)
[๋จ์ ]
- ์ธ๋ถ ๋จํธํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
๋จผ์ , ๊ฒฐ๋ก ๋ถํฐ ๋งํ๋ฉด ํ์ด์ง๋ณด๋ค ์ธ๊ทธ๋จผํ ์ด์ ์์์ ๋ณดํธ์ ๊ณต์ ๋ ๋ ํจ์จ์ ์ด๋ค.
๋ณดํธ์์๋ ์ธ๊ทธ๋จผํ ์ด์ ์ญ์ r,w,x ๋นํธ๋ฅผ ํ ์ด๋ธ์ ์ถ๊ฐํ๋๋ฐ, ์ธ๊ทธ๋จผํ ์ด์ ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋๋๊ธฐ ๋๋ฌธ์ ํด๋น ๋นํธ๋ฅผ ์ค์ ํ๊ธฐ ๋งค์ฐ ๊ฐ๋จํ๊ณ ์์ ํ๋ค. ํ์ด์ง์ code+data+stack ์์ญ์ด ์์ ๋, ์ด๋ฅผ ์ผ์ ํ ํฌ๊ธฐ๋ก ๋๋๋ฏ๋ก ๋ ๊ฐ์ง ์์ญ์ด ์์ผ ์ ์๋ค. ๊ทธ๋ฌ๋ฉด ๋นํธ๋ฅผ ์ค์ ํ๊ธฐ๊ฐ ๋งค์ฐ ๊น๋ค๋กญ๋ค.
๊ณต์ ์์๋ ๋ง์ฐฌ๊ฐ์ง๋ค. ํ์ด์ง์์๋ code ์์ญ์ ๋๋๋คํด๋ ๋ค๋ฅธ ์์ญ์ด ํฌํจ๋ ํ๋ฅ ์ด ๋งค์ฐ ๋๋ค. ํ์ง๋ง, ์ธ๊ทธ๋จผํ ์ด์ ์ ์ ํํ code ์์ญ๋ง์ ๋๋๊ธฐ ๋๋ฌธ์ ๋ ํจ์จ์ ์ผ๋ก ๊ณต์ ๋ฅผ ์ํํ ์ ์๋ค.
์ธ๊ทธ๋จผํ ์ด์ ์ ํ์ด์ง๊ณผ ์ ์ฌํ๊ณ ๋ณดํธ์ ๊ณต์ ์ธก๋ฉด์์๋ ๋ ๋์ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ์์ง๋ง, ํ์ฌ ๋๋ถ๋ถ์ ํ์ด์ง ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค. ๊ทธ ์ด์ ๋ ์ธ๊ทธ๋จผํ ์ด์ ์๋ ์น๋ช ์ ์ธ ๋จ์ ์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ฒ์ ์์ํ ๋, ๋ค์ค ํ๋ก๊ทธ๋๋ฐ์์์ ๋ฌธ์ ๋ ํฌ๊ธฐ๊ฐ ์๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค๋ก ์ธํด ์ฌ๋ฌ ํฌ๊ธฐ์ hole์ด ๋ฐ์ํ๋ค. ์ด๋ก ์ธํด ์ด๋ hole์ ํ๋ก์ธ์ค๋ฅผ ํ ๋นํ๋ ๊ฒ์ ๋ํ ์ต์ ํ ์๊ณ ๋ฆฌ์ฆ์ด ์กด์ฌํ์ง ์๊ณ , ์ธ๋ถ ๋จํธํ๋ก ์ธํด ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ํฌ๋ค๊ณ ํ์๋ค.
์ธ๊ทธ๋จผํ ์ด์ ๋ ๋๊ฐ์ ๋ฌธ์ ์ ์ด ๋ฐ์ํ๋ค. ์๋ํ๋ฉด ์ธ๊ทธ๋จผํ ์ด์ ์ ๋ ผ๋ฆฌ์ ์ธ ๋จ์๋ก ๋๋๊ธฐ ๋๋ฌธ์ ์ธ๊ทธ๋จผํธ์ ํฌ๊ธฐ๊ฐ ๋ค์ํ๋ค. ์ด๋ก ์ธํด ๋ค์ํ ํฌ๊ธฐ์ hole์ด ๋ฐ์ํ๋ฏ๋ก ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก ์ธ๊ทธ๋จผํ ์ด์ ์ ๋ณดํธ์ ๊ณต์ ์์ ํจ์จ์ ์ด๊ณ , ํ์ด์ง์ ์ธ๋ถ ๋จํธํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ด ๋๊ฐ์ง๋ฅผ ํฉ์ณ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ๋์๋ค. ๋ ์ฅ์ ์ ํฉ์น๊ธฐ ์ํด์๋ ์ธ๊ทธ๋จผํธ๋ฅผ ํ์ด์ง ๊ธฐ๋ฒ์ผ๋ก ๋๋๋ ๊ฒ์ด๋ค. (Paged Segmentation)
ํ์ง๋ง, ์ด ์ญ์ ๋จ์ ์ด ์กด์ฌํ๋ค. ์ธ๊ทธ๋จผํธ์ ํ์ด์ง๊ฐ ๋์์ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ฃผ์ ๋ณํ๋ ๋๋ฒํด์ผ ํ๋ค. ์ฆ, CPU์์ ์ธ๊ทธ๋จผํธ ํ ์ด๋ธ์์ ์ฃผ์ ๋ณํ์ ํ๊ณ , ๊ทธ ๋ค์ ํ์ด์ง ํ ์ด๋ธ์์ ๋ ์ฃผ์ ๋ณํ์ ํด์ผ ํ๋ค.