Computer Science
์ด์์ฒด์ ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ 3 - Relocation
3/23/2025


์ง๊ธ๊น์ง ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ๋ฌ ๊ตฌ์ญ์ผ๋ก ๋๋๋ ๋ค์ํ ๋ฐฉ๋ฒ๋ค๊ณผ ์ฅ๋จ์ ๋ค์ ์์๋ณด์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ๋ณธ๊ฒฉ์ ์ผ๋ก ํ์ด์ง๊ณผ ์ธ๊ทธ๋ฉํ ์ด์ ์ ํ์ตํ๊ธฐ ์ ์, ํ๋ก์ธ์ค ์ฌ๋ฐฐ์น์ ์ด์ ๊ด๋ จํ ์ฃผ์ ๋ค์ ๋ํด ์์๋ณผ ๊ฒ์ ๋๋ค.
Relocation
ํ๋ก๊ทธ๋จ์ ์คํ ์ค ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ์ด๋๊ฐ ๋ ์ง ์ฌ์ ์ ์ ์ ์๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค. ํ๋ก์ธ์ค๊ฐ ๋ก๋ฉ๋๋ ์์ ์ ๋ฉ๋ชจ๋ฆฌ์ ์ด๋๊ฐ ๋น์ด์์์ง ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ํ ์ผ๋จ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐฐ์น๋ ๋ค์๋, CPU ํจ์จ์ ์ํด ์ค์ํ์ด ๋๊ณ ๋ ๋ค ๋ค์ ํ ๋น๋ ๋๋ฉด ๊ธฐ์กด์ ๋ฐฐ์น๋์๋ ๊ณต๊ฐ์ ๋ค์ ์ฌ์ฉํ์ง ๋ชปํ๊ณ ์๋ก์ด ๊ณณ์ ํ ๋น๋ ์๋ ์์ต๋๋ค. ๊ฒฐ๊ตญ ํ๋ก๊ทธ๋จ์ ์คํ ์ค ์ฃผ์๋ ๋งค๋ฒ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น๋ ๋๋ง๋ค ๋ค์ ๊ณ์ฐ๋์ด์ผ ํฉ๋๋ค.
์์์ ์ดํด๋ดค๋ ํํฐ์ ๋์์๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ๋ฐฐ์น์ ๊ด๋ จํด์ ์ด๋ค ๊ฒ์ ๊ณ ๋ คํด์ผํ ๊น์? ๋น๋์ผ ์ฌ์ด์ฆ ๊ณ ์ ํํฐ์ ๋Fixed Unequal Partitioning ๋ฐฉ์์์๋, ๊ฐ๊ฐ์ ์๋ก ๋ค๋ฅธ ํฌ๊ธฐ์ ํํฐ์ ์ ํ๊ฐ ์กด์ฌํฉ๋๋ค. ํ๋์ ํ๋ก์ธ์ค๋ ํญ์ ํด๋น ํ๋ก ์ง์ ํ๋ฉฐ, ํญ์ ๊ฐ์ ํํฐ์ ์ ํ ๋น๋ฉ๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ์๋ ๋จ์ ์ฌ๋ฐฐ์น ๋ก๋Simple Relocating Loader๊ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ๋จ์ ์ฌ๋ฐฐ์น ๋ก๋๋ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ฅ ์ฒ์ ๋ก๋ฉ๋ ๋, ์์ค์ฝ๋์ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ๋ ์ฃผ์๋ก ๊ต์ฒดํฉ๋๋ค. ํ๋ก์ธ์ค๋ ํญ์ ๊ฐ์ ํํฐ์ ์ ํ ๋น๋๊ธฐ ๋๋ฌธ์, ์ต์ด์๋ง ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ์ฐ๊ฒฐํด์ฃผ๋ฉด ์ดํ์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋ฐ๋ฉด ๋์ผ ํฌ๊ธฐ ๊ณ ์ ํํฐ์ ๋์ด๋, ํ๋์ ํ๋ฅผ ์ฌ์ฉํ๋ ๋น๋์ผ ๊ณ ์ ํํฐ์ ๋ ๋ฐฉ์์์๋ ํ๋ก์ธ์ค๊ฐ ์ค์ํ ๊ณผ์ ์์ ๋ค๋ฅธ ํํฐ์ ์ ํ ๋น๋ ์๋ ์์ต๋๋ค. ๋ํ ์์ถcompaction์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ, ์คํ์ค์ธ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ์ด๋ํ๋ฏ๋ก ์ ๋ ์ฃผ์์ ๋ํ ์ฐธ์กฐ๊ฐ ์ด๊ธ๋ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ๋ช ๊ฐ์ง ์ข ๋ฅ์ ์ฃผ์ ์ฒด๊ณ๋ฅผ ๋์ ํ ํ์๊ฐ ์์ต๋๋ค.
๋ ผ๋ฆฌ ์ฃผ์Logical Address๋ ํ์ฌ ํ ๋น๋ ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์์ญ๊ณผ๋ ์๊ด์๋ ๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ ๋ฐฉ์์ ์๋ฏธํฉ๋๋ค. ์ด๋ค ํ๋ก์ธ์ค๊ฐ ๋ ผ๋ฆฌ ์ฃผ์์ ์ ๊ทผํด์ผํ๋ ๊ฒฝ์ฐ์๋ ํญ์ ๋ฐํ์์ ๊ทธ์ ํด๋นํ๋ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค.
์๋ ์ฃผ์Relative Address๋ ๋ ผ๋ฆฌ ์ฃผ์์ ํน๋ณํ ๊ฒฝ์ฐ๋ก, ์ฃผ์๊ฐ ์ฃผ๋ก ํ๋ก์ธ์์ ๋ ์ง์คํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ฌ ์๋์ ์ธ ๊ฐ์ผ๋ก ํํ๋๋ ๊ฒฝ์ฐ๋ฅผ ๋งํฉ๋๋ค. ๋ ผ๋ฆฌ์ฃผ์๋ ์๋ ์ฃผ์๋ฅผ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋จ์ ๋์ ์คํ์๊ฐ ๋ก๋Dynamic Runtime Loader๋ฅผ ํตํด ๋ก๋ฉ๋ฉ๋๋ค.
์ ๋ ์ฃผ์Physical Address๋ ๋ง ๊ทธ๋๋ก ์ ๋์ ์ธ ๋ฉ๋ชจ๋ฆฌ์ ํน์ ๊ณต๊ฐ์ ๊ฐ๋ฆฌํค๋ ์ฃผ์๋ฅผ ๋งํฉ๋๋ค.
Address Translation

์ ๊ทธ๋ฆผ์ ์ฃผ์ ๋ณํAddress Translation์ ๊ณผ์ ์ ๋ณด์ฌ์ค๋๋ค. ํ๋ก์ธ์ค๊ฐ ํ์ฑ ์ํ๊ฐ ๋๋ฉด, Base Register๋ผ๊ณ ๋ถ๋ฆฌ๋ ํน์๋ชฉ์ ๋ ์ง์คํฐ์ ํ๋ก์ธ์ค์ ์์ ์ฃผ์๊ฐ ํ ๋น๋ฉ๋๋ค. Bounds Register๋ผ ๋ถ๋ฆฌ๋ ๋ ์ง์คํฐ์๋ ํ๋ก์ธ์ค์ ๋ ์ฃผ์๊ฐ ํ ๋น๋ฉ๋๋ค. ์ด๋ค์ ํ๋ก์ธ์ค๊ฐ ๋ก๋ฉ๋ ๋๋ง๋ค ์ธํ ๋ฉ๋๋ค.
ํ๋ก์ธ์๊ฐ ๋ช ๋ น์ด๋ฅผ ์ฒ๋ฆฌํ๋ ์ค์ ์๋ ์ฃผ์๋ฅผ ๋ง๋๋ค๋ฉด, ๋ค์ ๋ ๋จ๊ณ๋ฅผ ํตํด ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํ๋ฉ๋๋ค. ์ด ๋จ๊ณ๋ ๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ๊ฐ ๋ฐ์ํ ๋๋ง๋ค ๊ณ์ฐ๋์ด์ผํ๋ฏ๋ก, ๋งค์ฐ ๋น๋ฒํ๊ธฐ์ ํ๋์จ์ด๊ฐ ์ง์ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ ๋๋ค.
1. Base Register์ ๊ฐ๊ณผ ์๋ ์ฃผ์๋ฅผ ๋ํ์ฌ ๋ฌผ๋ฆฌ ์ฃผ์๋ฅผ ๋ง๋ ๋ค.
2. ๋ฌผ๋ฆฌ ์ฃผ์์ Bounds Register์ ๋น๊ตํ์ฌ ๋ง๋ค์ด์ง ์ฃผ์๊ฐ ํ๋ก์ธ์ค๊ฐ ์ฐจ์งํ๋ ๊ฒฝ๊ณ ๋ด์ ์๋์ง ๊ฒ์ฌํ๋ค.
๋ง์ฝ ์ฃผ์๊ฐ ๊ฒฝ๊ณ ๋ด๋ถ์ ์๋ค๋ฉด ๋ช ๋ น์ด๋ ์ฒ๋ฆฌ๋ ๊ฒ์ด๊ณ , ๊ทธ๋ ์ง ์๋ค๋ฉด ์ด์์ฒด์ ๋ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ํค๊ณ ํ๋ก๊ทธ๋จ์ ์๋ฌ๋ก ์ข ๋ฃ๋ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๋์ํ๋ค๋ฉด ํ๋ก์ธ์ค๋ ์ค์ํ์ด ๋๊ฑฐ๋, ์์ถ์ด ๋ฐ์ํ๋๋ผ๋ ๋ ์ง์คํฐ๋ค๋ง ๋ค์ ์ค์ ํด์ค๋ค๋ฉด ์ ์์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ฌ ์ํ๋ ์ ์์ต๋๋ค. ๋ํ ์ด ๋ฐฉ์์ ๋ฉ๋ชจ๋ฆฌ ๋ณดํธMemory Protection์ ์๋จ์ด ๋ฉ๋๋ค. ๊ฐ๊ฐ์ ํ๋ก์ธ์ค๋ Base Register์ Bounds Register๋ฅผ ํตํด ๊ทธ๋ค ์์ ์ ํ๋ก์ธ์ค์ ์์ญ์๋ง ์ ๊ทผํ ์ ์์ผ๋ฉฐ, ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์์น ์๋ ์ ๊ทผ์ ํ๋ ํ์๋ฅผ ๋ง์์ฃผ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ค์ ๊ธ์์๋ ์ฌ๊ธฐ์ ๋ค๋ฃฌ ๊ฐ๋ ์ ๋ฐํ์ผ๋ก ํ์ด์งPaging์ ๋ํด ์๊ฐํ๊ฒ ์ต๋๋ค.
