Memory Structure
์ฐ๋ฆฌ๊ฐ ํํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ผ๊ณ ๋งํ๋ ๋จ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์์์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ์๋ก ๋ค๋ฅธ ์์น๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด ์ฌ์ฉ ๋๋ ์ซ์์ด๋ค. ํฌ๊ฒ ๋ ผ๋ฆฌ์ ์ฃผ์์ ๋ฌผ๋ฆฌ์ ์ฃผ์๋ก ๋๋๋ค.
๋ ผ๋ฆฌ์ ์ฃผ์ : CPU ๊ฐ ์์ฑํ๋ ์ฃผ์๋ก, ํ๋ก์ธ์ค ๋ง๋ค ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ์ง๋ ์ฃผ์์ด๋ค. (0๋ถํฐ ์์)
๋ฌผ๋ฆฌ์ ์ฃผ์ : ์ค์ ๋ก ํ๋ก์ธ์ค๊ฐ ์คํ๋๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋๋ ์์น
๊ทธ๋ฐ๋ฐ "๊ตณ์ด ์ 2๊ฐ์ ์ฃผ์๋ฅผ ์ฌ์ฉํ๋๊ฑฐ์ง?" ๋ผ๋ ์๋ฌธ์ด ์๊ธด๋ค.
๋ง์ฝ ๋ ผ๋ฆฌ์ ์ฃผ์ ๋ง์ ์ฌ์ฉํ๋ค๊ณ ์๊ฐํด๋ณด์. ์ฌ์ฉ์๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํด์ผ ํ ๋๋ง๋ค CPU ๊ฐ ์ฌ์ฉํ๋ ์ด์์ฒด์ ์ ์์ญ์ ํ์ธํด์ผํ๋ ๋ถํธํจ์ด ์๊ธฐ๊ณ , ์ฌ์ฉ์๊ฐ ์์๋ก ์ ๊ทผํ์ฌ ์กฐ์ํ ์ ์๋ค๋ ์ํ์ฑ์ด ์กด์ฌํ๋ค.
๋ฐ๋๋ก ๋ฌผ๋ฆฌ์ ์ฃผ์ ๋ง์ ์ฌ์ฉํ๋ค๊ณ ์๊ฐํด๋ณด๋ฉด, CPU ๋ ๊ฐ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ์ด๋์ ์ ์ฅ๋์ด ์๋์ง ์ผ์ผํ ์ฃผ์๋ฅผ ๊ธฐ์ตํ๊ณ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์๊ฐ์ด ๋งค์ฐ ๊ธธ์ด์ง์ ์๋ค. (์์์ ๋งํ๋ฏ์ด ๋ ผ๋ฆฌ์ ์ฃผ์๋ ๊ฐํธํ๊ฒ 0๋ถํฐ ์์ํ๋ค.)
๋ฉ๋ชจ๋ฆฌ๋ ์ด์์ฒด์ ๊ฐ ์ฌ์ฉํ๋ ์ด์์ฒด์ ์์ญ๊ณผ ์ฌ์ฉ์ ์์ญ์ผ๋ก ๋๋๋ค. ๋ฐ๋ผ์, ์ฌ์ฉ์ ํ๋ก์ธ์ค๋ ์ฌ์ฉ์ ์์ญ์ ์ ์ฅ๋๋ค.
๋ฐ๋ผ์, ์ฌ์ฉ์๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ๋, ๋ ผ๋ฆฌ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ์ ์ฃผ์๋ก ๋ฐ๊ฟ์ฃผ๋ ์์ ์ด ํ์ํ๋ฐ,์ด๊ฒ์ด ๋ฐ๋ก ์ฃผ์ ๋ฐ์ธ๋ฉ์ด๋ค.
Address Binding
Address Binding
์ฝ๊ฒ ๋งํด ๋
ผ๋ฆฌ์ ์ฃผ์๋ฅผ ์ธ์ ๋ฌผ๋ฆฌ์ ์ฃผ์๋ก ๋ฐ๊ฟ๊ฒ์ธ๊ฐ
? ์ด๋ค. ์ด ์ฃผ์ ๋ฐ์ธ๋ฉ์ ์ด๋ ์์ ์ ๋ฐ์ธ๋ฉ (๋ฌผ๋ฆฌ์ ์ฃผ์๊ฐ ๊ฒฐ์ ) ๋๋๋์ ๋ฐ๋ผ ๋๋๋ฉฐ ํฌ๊ฒ 3๊ฐ์ง๋ก ๋ถ๋ฅ๋๋ค.
Compile Time Binding
Compile Time Binding
์ปดํ์ผ ํ ๋ ๋ฌผ๋ฆฌ์ ์ฃผ์๊ฐ ๊ฒฐ์ ๋๋ ๊ฒ์ ๋งํ๋ค. ์ปดํ์ผ ๋จ๊ณ์์ ์ฃผ์๋ฅผ ๊ฒฐ์ ํ๊ธฐ ๋๋ฌธ์ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ด๋ ์์น์ ๋ค์ด๊ฐ๊ฒ ๋ ์ง ์๊ณ ์์ด์ผํ๋ค. ์ดํ ์ปดํ์ผ๋ฌ๊ฐ ๊ณ ์ ๋ ์ฃผ์ (Absoulte address) ๋ฅผ ์์ฑ ํ๋ฉฐ, ๋ง์ฝ ์ฃผ์๊ฐ ๋ณ๊ฒฝ๋๋ค๋ฉด ๋ค์ ์ปดํ์ผ์ ์คํํด์ผํ๋ค. ํน์ง์ผ๋ก๋ ๋ ผ๋ฆฌ์ ์ฃผ์์ ๋ฌผ๋ฆฌ์ ์ฃผ์๊ฐ ๋์ผํ๋ค.
Load Time Binding
Load Time Binding
๋ง์ฝ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ด๋์ ์์นํ ์ง ์์ ์๋ค๋ฉด, ๋ฉ๋ชจ๋ฆฌ์์ ํ๋ก์ธ์ค๋ฅผ ์ฌ๋ ค ์คํ์์ ๋ฌผ๋ฆฌ์ ์ฃผ์๊ฐ ๊ฒฐ์ ๋๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค. ์กฐ๊ธ๋ ์์ธํ ๋งํ๋ฉด, ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๋ ํ๋ก๊ทธ๋จ์ธ Loader ๊ฐ ์คํ๋์ด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๋ ์์ ์์ ์ฃผ์๋ฅผ ๊ฒฐ์ ํ๋ค. ๊ทธ๋ฌ๋ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐธ์กฐํ๋ ๋ช ๋ น์ด๊ฐ ๋ง๋ค๋ฉด ์ด๊ฒ๋ค์ ์ฃผ์๋ฅผ ๋ค ๋ฐ๊ฟ์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ก๋ฉ์๊ฐ์ด ๊ธธ์ด์ง๋ค๋ ๋จ์ ์ด ์๋ค.
Execution Time Binding (Run Time)
Execution Time Binding (Run Time)
๋จ์ด ๊ทธ๋๋ก ํ๋ก์ธ์ค๊ฐ ์คํ๋ ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋ฐ๊พธ๋ ๋ฐฉ์์ด๋ค. ๋ฐ ํ์์ ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ๋ ผ๋ฆฌ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ์ ์ฃผ์๋ก ๋ฐ๊พธ๋ฉฐ, ์คํ ๋์ค ์ฃผ์๊ฐ ๋ณ๊ฒฝ๋ ์๋ ์๋ค. CPU ๊ฐ ์ฃผ์๋ฅผ ์ฐธ์กฐ ํ ๋๋ง๋ค ๋ฐ์ดํฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ด๋์ ์์นํด์๋์ง ์ฃผ์ ๋งคํ ํ ์ด๋ธ์ ์ฌ์ฉํ์ฌ ๋ฐ์ธ๋ฉ์ ์ ๊ฒํ๋ค.
MMU ๊ธฐ๋ฒ : CPU์ ์ํด ์์ฑ๋๋ ์ฃผ์์ ๋ํด Base Register ๊ฐ์ ๋ํด์ ๋ฌผ๋ฆฌ์ ์ฃผ์๋ฅผ ์์ฑํ๋ ๊ธฐ๋ฒ
Limit Register : ๋ ผ๋ฆฌ์ ์ฃผ์์ ๋ฒ์๋ก, ์๋ชป๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ง ์๋๋ก ๋ง์์ฃผ๋ฉฐ, Base Register๋ก ์ ๊ทผ ํ ์ ์๋ ๋ฌผ๋ฆฌ์ ์ฃผ์์ ์ต์๊ฐ์ ๋ํ๋ธ๋ค.
Last updated