์ง๊ธ๊น์ง ํ๋ก์ธ์ค ์ฃผ์ ๊ณต๊ฐ ์ ์ฒด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ํ์ฌํ๋ ๊ฒ์ ๊ฐ์ ํด ์๋ค. ๋ฒ ์ด์ค์ ๋ฐ์ด๋ ๋ ์ง์คํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ด์์ฒด์ ๋ ํ๋ก์ธ์ค๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋ค๋ฅธ ๋ถ๋ถ์ผ๋ก ์ฝ๊ฒ ์ฌ๋ฐฐ์นํ ์ ์์๋ค

ํ์ง๋ง ํ๋ก๊ทธ๋จ์ ํ๊ณผ ์คํ ์ฌ์ด์ ๋น ๊ณต๊ฐ์ด ์ฌ์ฉ๋์ง ์๋๋ผ๋ ์ฃผ์ ๊ณต๊ฐ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฐฐ์นํ ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐจ์งํ๋ค. ๋ฒ ์ด์ค์ ๋ฐ์ด๋ ๋ ์ง์คํฐ ๋ฐฉ์์ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ์ฌํ๋ค.
1. ์ธ๊ทธ๋ฉํ ์ด์ : ๋ฒ ์ด์ค/๋ฐ์ด๋์ ์ผ๋ฐํ
์ด ์์ด๋์ด๋ MMU ์์ ์ค์ง ํ๋์ ๋ฒ ์ด์ค์ ๋ฐ์ด๋ ์๋ง ์กด์ฌํ๋ ๊ฒ์ด ์๋๋ผ ์ฃผ์ ๊ณต๊ฐ์ ๋ ผ๋ฆฌ์ ์ธ ์ธ๊ทธ๋จผํธ ๋ง๋ค ๋ฒ ์ด์ค์ ๋ฐ์ด๋ ์์ด ์กด์ฌํ๋ค.
์ธ๊ทธ๋จผํธ: ํน์ ๊ธธ์ด๋ฅผ ๊ฐ์ง๋ ์ฐ์์ ์ธ ์ฃผ์ ๊ณต๊ฐ
์ฐ๋ฆฌ๊ฐ ๊ธฐ์ค์ผ๋ก ์ผ์ ์ฃผ์ ๊ณต๊ฐ์๋ ์ฝ๋, ์คํ, ๋ฐ ํ ์ธ ์ข ๋ฅ์ ์ธ๊ทธ๋จผํธ๊ฐ ์๋ค. ์ด์์ฒด์ ๋ ๊ฐ ์ธ๊ทธ๋จผํธ๋ฅผ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ๊ธฐ ๋ค๋ฅธ ์์น์ ๋ฐฐ์นํ ์ ์๊ณ , ์ฌ์ฉ๋์ง ์๋ ๊ฐ์ ์ฃผ์ ๊ณต๊ฐ์ด ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐจ์งํ๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์๋ค.

์ด ์์ ์ ๊ฒฝ์ฐ 3์์ ๋ฒ ์ด์ค์ ๋ฐ์ด๋ ๋ ์ง์คํฐ ์งํฉ์ด ํ์ํ๋ค.

๊ทธ๋ฆผ 19.1์ ์ฃผ์ ๊ณต๊ฐ์ ์ฌ์ฉํ์ฌ ์ฃผ์ ๋ณํ์ ํด ๋ณด์. ๊ฐ์ ์ฃผ์ 100์ ์ฐธ์กฐํ๋ค๊ณ ๊ฐ์ ํ์.
๊ฐ์ ์ฃผ์ 100๋ฒ์ง๋ ์ฝ๋ ์ธ๊ทธ๋จผํธ์ ์ํ๋ค. ์ฐธ์กฐ๊ฐ ์ผ์ด๋๋ฉด ํ๋์จ์ด๋ ๋ฒ ์ด์ค ๊ฐ์ ์ด ์ธ๊ทธ๋จผํธ์ ์คํ์ ์ ๋ํด ๋ฌผ๋ฆฌ ์ฃผ์๋ 100 + 32KB = 32868์ด ๋๋ค. ๊ทธ ํ ์ฃผ์๊ฐ ๋ฒ์(2KB) ๋ด์ ์๋์ง ๊ฒ์ฌํ๊ณ ๋ฒ์ ๋ด์ ์์ ๊ฒฝ์ฐ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ 32868์ ์ป๋๋ค.
๊ฐ์ ์ฃผ์ 4200์ ํ์ ์ฌํด๋ณด์. ๊ฐ์ ์ฃผ์ 4200์ ํ์ ๋ฒ ์ด์ค 34KB์ ๋ํ๋ ๋ฐฉ๋ฒ์ ์๋ชป ๋ ๋ฐฉ๋ฒ์ด๋ค. ํ ์์์์ ์คํ์ , ์ฆ ์ฃผ์๊ฐ ์ฐธ์กฐํ๋ ๋ฐ์ดํธ๊ฐ ์ด ์ธ๊ทธ๋จผํธ ์์์ผ๋ก๋ถํฐ ๋ช ๋ฒ์งธ ๋ฐ์ดํธ์ธ์ง๋ฅผ ์ป์ด์ผ ํ๋ค. ํ์ ๊ฐ์ ์ฃผ์ 4KB์์ ์์ํ๊ธฐ ๋๋ฌธ์ ์คํ์ 4200์ 4200 - 4096 = 104๊ฐ ๋๋ค. ์ด ์คํ์ ์ ๋ฒ ์ด์ค ๋ ์ง์คํฐ์ ๋ฌผ๋ฆฌ ์ฃผ์ 34KB์ ๋ํด ์ํ๋ ๊ฒฐ๊ณผ 34920์ ์ป๊ฒ ๋๋ค.
๋ง์ฝ ํ์ ๋ง์ง๋ง์ ๋ฒ ์ด๋ 7KB์ ๊ฐ์ ์๋ชป๋ ์ฃผ์๋ฅผ ์ ๊ทผํ๋ ค๊ณ ํ๋ค๋ฉด, ํ๋์จ์ด๊ฐ ์ฃผ์ ๋ฒ์๊ฐ ๋ฒ์ด๋ฌ๋ค๋ ์ฌ์ค์ ๊ฐ์งํ๊ณ ์ด์์ฒด์ ์ ํธ๋ฉ์ ๋ฐ์์ํจ๋ค. ์ด์์ฒด์ ๋ ์๋ง ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃ์ํฌ ๊ฒ์ด๊ณ ์ด๊ฒ์ด Segment Fault์ด๋ค.
2. ์ธ๊ทธ๋จผํธ ์ข ๋ฅ์ ํ์
ํ๋์จ์ด๋ ๋ณํ์ ์ํด ์ธ๊ทธ๋จผํธ ๋ ์ง์คํฐ๋ฅผ ์ฌ์ฉํ๋ค. ํ๋์จ์ด๋ ๊ฐ์ ์ฃผ์๊ฐ ์ด๋ ์ธ๊ทธ๋จผํธ๋ฅผ ์ฐธ์กฐํ๋์ง, ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ธ๊ทธ๋จผํธ ์์์ ์คํ์ ์ ์ผ๋ง์ธ์ง๋ฅผ ์ด๋ป๊ฒ ์ ์ ์์๊น?
๋ฐฉ๋ฒ 1: ๊ฐ์ ์ฃผ์์ ์ต์์ ๋ช ๋นํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฃผ์ ๊ณต๊ฐ์ ์ฌ๋ฌ ์ธ๊ทธ๋จผํธ๋ก ๋๋๊ธฐ.
์์ ์์์์๋ 3๊ฐ์ ์ธ๊ทธ๋จผํธ๊ฐ ์์๋ค. ์ฃผ์ ๊ณต๊ฐ์ ์ธ๊ทธ๋จผํธ๋ก ๋๋๊ธฐ ์ํด์๋ 2๋นํธ๊ฐ ํ์ํ๋ค.
์ต์์ 2๋นํธ๊ฐ 00์ด๋ฉด ๊ฐ์ ์ฃผ์๊ฐ ์ฝ๋ ์ธ๊ทธ๋จผํธ๋ฅผ ๊ฐ๋ฆฌํจ๋ค ์ต์์ 2๋นํธ๊ฐ 01์ด๋ฉด ๊ฐ์ ์ฃผ์๊ฐ ํ ์ธ๊ทธ๋จผํธ๋ฅผ ๊ฐ๋ฆฌํจ๋ค โฆ

3. ์คํ
์คํ์ ๋ค๋ฅธ ์ธ๊ทธ๋จผํธ๋ค๊ณผ๋ ๋ค๋ฅด๊ฒ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ํ์ฅ๋๋ค. ๋ฐ๋ผ์ ๋ค๋ฅธ ๋ฐฉ์์ ๋ณํ์ด ํ์ํ๋ค. ๊ฐ๋จํ ํ๋์จ์ด๊ฐ ์ถ๊ฐ๋ก ํ์ํ๋ค. ์ธ๊ทธ๋จผํธ๊ฐ ์ด๋ ๋ฐฉํฅ์ผ๋ก ํ์ฅํ๋์ง๋ ์์์ผ ํ๋ค. ํ๋์ ๋นํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฃผ์๊ฐ ์ปค์ง๋ ๋ฐฉํฅ์ผ๋ก ํ์ฅํ๋ฉด 1, ์์์ง๋ ๋ฐฉํฅ์ผ๋ก ํ์ฅํ๋ฉด 0์ผ๋ก ์ค์ ํ ์ ์๋ค.

4. ๊ณต์ ์ง์
๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฝํ๊ธฐ ์ํด ์ฃผ์ ๊ณต๊ฐ๋ค ๊ฐ์ ํน์ ๋ฉ๋ชจ๋ฆฌ ์ธ๊ทธ๋จผํธ๋ฅผ ๊ณต์ ํ๋๋ก ํ ์ ์๋ค. ์ด๋ฅผ ์ํด ํ๋์จ์ด์ protection bit์ ์ถ๊ฐ๊ฐ ํ์ํ๋ค.
์ธ๊ทธ๋จผํธ๋ฅผ ์ฝ๊ฑฐ๋ ์ธ ์ ์๋์ง / ์ธ๊ทธ๋จผํธ์ ์ฝ๋๋ฅผ ์คํ์ํฌ ์ ์๋์ง

์ด๋ ๊ฒ ํ๋ฉด ์ฃผ์ ๊ณต๊ฐ์ ๋ ๋ฆฝ์ฑ์ ์ ์งํ๋ฉด์๋, ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ์ฃผ์ ๊ณต๊ฐ์ ์ผ๋ถ๋ฅผ ๊ณต์ ํ ์ ์๋ค. ๊ฐ ํ๋ก์ธ์ค๋ ์ฌ์ ํ ์์ ์ ์ ์ฉ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ์๊ฐํ๋ค.
๊ฐ์ ์ฃผ์๊ฐ ๋ฒ์ ๋ด์ ์๋์ง ํ์ธํ๋ ๊ฒ์ ๋ํด, ํน์ ์ก์ธ์ค๊ฐ ํ์ฉ๋๋์ง๋ฅผ ํ์ธํ๋๋ก ์๊ณ ๋ฆฌ์ฆ์ ์์ ํด์ผ ํ๋ค. ํ์ฉ๋์ง ์์ ์ก์ธ์ค๋ฅผ ์๋ํ๋ ๊ฒฝ์ฐ, ํ๋์จ์ด๋ ์์ธ๋ฅผ ๋ฐ์์ํจ๋ค.
5. ์๋จ์ ๋ ๋๋จ์ ์ธ๊ทธ๋จผํ ์ด์
์ง๊ธ๊น์ง ์์ ๋ ์์์ ์ธ๊ทธ๋จผํธ(์ฝ๋, ์คํ, ํ)๋ง์ ์ง์ํ๋ ์์คํ ์ ์ด์ ์ ๋ง์ถ์๋ค. ์ด ์ธ๊ทธ๋จผํ ์ด์ ์ ๋๋จ์ (coarse-grained) ๋ผ๊ณ ์๊ฐํ ์ ์๋ค. ์ผ๋ถ ์ด๊ธฐ ์์คํ ์ ๋ ์์ ๋จ์๋ก ์ฃผ์ ๊ณต๊ฐ์ ๋๋๋ ๊ฒ์ด ํ์ฉ๋์๋ค. ์ด๋ฅผ ์๋จ์ (fine-grained) ์ธ๊ทธ๋จผํ ์ด์ ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๋ง์ ์์ ์ธ๊ทธ๋จผํธ๋ฅผ ์ง์ํ๊ธฐ ์ํด ์ธ๊ทธ๋จผํธ ํ ์ด๋ธ๊ฐ์ ํ๋์จ์ด๋ฅผ ๋ฐ๋ก ๋์๋ค.
6. ์ด์์ฒด์ ์ ์ง์
์คํ๊ณผ ํ ์ฌ์ด์ ์ฌ์ฉํ์ง ์๋ ๊ณต๊ฐ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ ํ์๊ฐ ์์ด์ก๋ค. ๋ฐ๋ผ์ ๊ฐ์ ํฌ๊ธฐ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋ ๋ง์ ์ฃผ์ ๊ณต๊ฐ์ ํ์ฌํ ์ ์๊ฒ ๋์๋ค.
๋ฌธ๋งฅ ๊ตํ ์ ์ด์์ฒด์ ๋ ์ด๋ค ์ผ์ ํด์ผ ํ ๊น?
์ธ๊ทธ๋จผํธ ๋ ์ง์คํฐ์ ์ ์ฅ๊ณผ ๋ณต์์ด ํ์ํ๋ค. ํ๋ก์ธ์ค๊ฐ ๋ค์ ์คํ๋๊ธฐ ์ ์ ๋ ์ง์คํฐ๋ค์ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ํด์ผ ํ๋ค.
๊ฐ ์ธ๊ทธ๋จผํธ์ ํฌ๊ธฐ๊ฐ ๋ค๋ฅผ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฑ ๋ง๊ฒ ์ฃผ์๋ฅผ ํ ๋นํ ์ ์๋ค. ๋ฏธ์ฌ์ฉ ์ค์ธ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ด๋ฆฌ๋ ์ด๋ป๊ฒ ํด์ผ ํ ๊น?(์ธ๋ถ ๋จํธํ ๋ฌธ์ )

๊ธฐ์กด์ ์ธ๊ทธ๋จผํธ๋ฅผ ์ ๋ฆฌํ์ฌ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์์ถํ๋ค. ํ๋ก์ธ์ค๋ฅผ ์ค๋จํ๊ณ ๊ทธ๋ค์ ๋ฐ์ดํฐ๋ฅผ ํ๋์ ์ฐ์๋ ๊ณต๊ฐ์ ๋ณต์ฌํ๊ณ , ์ธ๊ทธ๋จผํธ ๋ ์ง์คํฐ๊ฐ ์๋ก์ด ๋ฌผ๋ฆฌ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ํ๋ค.
์ธ๊ทธ๋จผํธ ๋ณต์ฌ๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ถํ๊ฐ ํฐ ์ฐ์ฐ์ด๋ค. ๋น์ฉ์ด ๋ง์ด ๋๋ ์์ถ ๋ง๊ณ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์์๊น?
๋น ๊ณต๊ฐ ๋ฆฌ์คํธ๋ฅผ ๊ด๋ฆฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค. best-fit, worst-fit, buddy-algorithm ๋ฑ ์ฌ๋ฌ ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ์ด ์กด์ฌํ๋ค. best-fit ์๊ณ ๋ฆฌ์ฆ์ ๋น ๊ณต๊ฐ ๋ฆฌ์คํธ์์ ์์ฒญ๋ ํฌ๊ธฐ์ ๊ฐ์ฅ ๋น์ทํ ํฌ๊ธฐ์ ๊ณต๊ฐ์ ํ ๋นํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.