ํจ์คํธ์บ ํผ์ค ์ด์์ฒด์ ๊ฐ์์ ์ฝ๊ฒ ๋ฐฐ์ฐ๋ ์ด์์ฒด์ ๊ต์ฌ์ ๋ํ TIL์ ๋๋ค.
๋ฉ๋ชจ๋ฆฌ์ ์ดํด
๋ฉ๋ชจ๋ฆฌ์ ๊ตฌ์กฐ๋ 1 ๋ฐ์ดํธ ํฌ๊ธฐ๋ก ๋๋๋ค. 1๋ฐ์ดํธ๋ก ๋๋ ๊ฐ ์์ญ์ ์ฃผ์๋ก ๊ตฌ๋ถ๋๋๋ฐ ๋ณดํต 0๋ฒ์ง๋ถํฐ ์์ํ๋ค. CPU๋ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋ ์์
๊ฒฐ๊ณผ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ธฐ ์ํด ์ฃผ์๋ฅผ ์ฌ์ฉํ๋ค.
๐ก ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ฐ์ดํฐ๋ฅผ CPU๋ก ๊ฐ์ ธ์ค๋ ๊ณผ์
๋จผ์ , CPU๊ฐ ์ ๊ทผํ๋ ค๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ ์ง์คํฐ(MAR)์ ๋ฃ์ผ๋ฉด ํด๋น ์ฃผ์๊ฐ ์ฃผ์ ๋ฒ์ค๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ์ ์ ๋ฌ๋๋ค. ๋ฉ๋ชจ๋ฆฌ์์๋ ํด๋น ์ฃผ์์ ๊ฐ์ ๋ฐ์ดํฐ ๋ฒ์ค๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ ๋ ์ง์คํฐ(MBR)๋ก ๋ณด๋ธ๋ค. MBR์ ์๋ ๋ฐ์ดํฐ๊ฐ ๋ ์ง์คํฐ๋ก ์ฎ๊ฒจ์ง๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์์ ์ด ๋๋๋ค.
๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์์
๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ ์ด์์ฒด์ ๋ฅผ ๋น๋กฏํด ์ฌ๋ฌ ์์
์ ๋์์ ์ฒ๋ฆฌํ ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ๊ด๋ฆฌํ๋ ๊ฐ์ ๊ดํ ๋ฌธ์ ๋ค. ์ด๋ฌํ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์์คํ
(MMS: Memory Management System)์ด ๋ด๋นํ๋ค. ์ผ๊ด ์ฒ๋ฆฌ ์์คํ
์์๋ ํ ๋ฒ์ ํ ๊ฐ์ง ์์
๋ง ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๊ฐ ์ด๋ ต์ง ์์์ง๋ง, ํ๋์ ์๋ถํ ์์คํ
์์๋ ์ด์์ฒด์ ๋ฅผ ํฌํจํ ๋ชจ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์คํ๋๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๊ฐ ๋ณต์กํ๋ค.
๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์์
์ ํฌ๊ฒ ๊ฐ์ ธ์ค๊ธฐ(Fetch), ๋ฐฐ์น(Placement), ์ฌ๋ฐฐ์น(Replacement)๋ก ๊ตฌ๋ถ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ๊ฐ์ ธ์ค๊ธฐ(Fetch)
์คํํ ํ๋ก์ธ์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ๋ก ๊ฐ์ ธ์ค๋ ์์
์ด๋ค. ์ด๋ค ์ํฉ์์๋ ๋ฐ์ดํฐ์ ์ผ๋ถ๋ง ๊ฐ์ ธ์ ์คํํ๊ธฐ๋ ํ๋ค.
๋ฉ๋ชจ๋ฆฌ ๋ฐฐ์น(Placement)
๊ฐ์ ธ์จ ํ๋ก์ธ์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ด๋ค ๋ถ๋ถ์ ์ฌ๋ ค๋์์ง ๊ฒฐ์ ํ๋ ์์
์ด๋ค. ๋ฐฐ์น ์์
์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด๋ค ํฌ๊ธฐ๋ก ์๋ฅผ ๊ฒ์ธ์ง๊ฐ ๋งค์ฐ ์ค์ํ๋ค. ์ด๋ ๊ฒ ๋๋ ๋ฉ๋ชจ๋ฆฌ์ ๊ตฌ์ญ์ ๋ฐ๋ผ ํ๋ก์ธ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ค ์์น์ ๋์์ง ๊ฒฐ์ ํ๋ ๊ฒ์ด ๋ฐ๋ก ๋ฐฐ์น ์์
์ด๋ค. ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ ํฌ๊ธฐ๋ก ์๋ฅด๋ ๊ฒ์ ํ์ด์ง(Paging)์ด๋ผ๊ณ ํ๊ณ , ํ๋ก์ธ์ค์ ํฌ๊ธฐ์ ๋ง๊ฒ ์๋ฅด๋ ๊ฒ์ ์ธ๊ทธ๋จผํ
์ด์
(Segmentation)์ด๋ผ๊ณ ํ๋ค.
๋ฉ๋ชจ๋ฆฌ ์ฌ๋ฐฐ์น(Replacement)
๊ฝ ์ฐฌ ๋ฉ๋ชจ๋ฆฌ์ ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด ์ค๋๋ ํ๋ก์ธ์ค๋ฅผ ๋ด๋ณด๋ด๋ ์์
์ ์ฌ๋ฐฐ์น ์์
์ด๋ผ๊ณ ํ๋ค.
๋ฉ๋ชจ๋ฆฌ ์ฃผ์
32bit CPU, 64bit CPU์ ๊ฐ์ด CPU์ ๋นํธ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ ํฌ๊ธฐ์๋ ์ฐ๊ด์ด ์๋ค. 32bit CPU์ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ง์ ํ๋ ๋ ์ง์คํฐ์ธ MAR์ ํฌ๊ธฐ๊ฐ 32bit์ด๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ต๋ 4GB๊น์ง ์ฌ์ฉํ ์ ์๋ค. ๋ฐ๋ฉด, 64bit CPU์ ๊ฒฝ์ฐ์๋ ๊ฑฐ์ ๋ฌดํ๋์ ๊ฐ๊น์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ์ด๋, ํ๋์จ์ด ์
์ฅ์์ ๋ฐ๋ผ๋ณธ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ ๋ฌผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ด๋ผ๊ณ ํ๊ณ , ์ฌ์ฉ์ ์
์ฅ์์ ๋ฐ๋ผ๋ณธ ์ฃผ์ ๊ณต๊ฐ์ ๋
ผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ด๋ผ๊ณ ํ๋ค.
๋ฌผ๋ฆฌ ์ฃผ์์ ๋ ผ๋ฆฌ ์ฃผ์
๋ง์ฝ, ์๋ ์ฝ๋๊ฐ ๋ฌธ์ A๋ฅผ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ 40๋ฒ์ง์ ๋ฃ๋ ๊ธฐ๊ณ์ด ์ฝ๋๋ก ๋ฒ์ญ์ด ๋์๋ค๊ณ ๊ฐ์ ํด ๋ณด์.
char alp = 'A';
์ค์ํ ๊ฒ์ ์ค์ ๋ก๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ, ์ฆ ์ปดํจํฐ ๋ด์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ค์น๋ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ 40๋ฒ์ง์ A๊ฐ ๋ค์ด๊ฐ๋ ๊ฒ์ด ์๋๋ผ๋ ์ ์ด๋ค. ์ ์ฝ๋๋ฅผ ์คํํ๋ ํ๋ก๊ทธ๋จ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ค๋ฉด ์ด ํ๋ก๊ทธ๋จ์ ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ด์์ฒด์ ์์ญ์ ์ ์ธํ ๋น ๊ณต๊ฐ์ ๋ฐฐ์น๋๋ค. ์ด๋, ์ด ํ๋ก๊ทธ๋จ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์์ ์ฃผ์๋ 500๋ฒ์ง ์ผ ์๋ ์๊ณ 600๋ฒ์ง์ผ ์๋ ์๋ค. ์ด๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋๋ง๋ค ์์ํ๋ ๋ฌผ๋ฆฌ ์ฃผ์๊ฐ ๋งค๋ฒ ๋ฐ๋๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
๋ง์ฝ, ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์์ ์ฃผ์๊ฐ 360๋ฒ์ง๋ผ๊ณ ๊ฐ์ ํ์ ๋, 40๋ฒ์ง๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์ 400๋ฒ์ง๊ฐ ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก, 40๋ฒ์ง๋ ์ฌ์ฉ์ ํ๋ก์ธ์ค ์
์ฅ์์ ๋ฐ๋ผ๋ณธ ๋
ผ๋ฆฌ ์ฃผ์์ด๋ค.
ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ๋ ๋
ผ๋ฆฌ ์ฃผ์๋ ๋
ผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ ์๋ค. ๋
ผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ ํญ์ 0๋ฒ์ง๋ถํฐ ์์ํ๋ฉฐ ์ปดํจํฐ๊ฐ ํ์ฉํ๋ ์ต๋์ ์ฃผ์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ค. ์ปดํ์ผ๋ฌ๋ ๋
ผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ 0๋ฒ์ง๋ถํฐ ๋ณ์๋ค์ ๋ฐฐ์นํ๋ค. ๋ฌผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ๋ 0๋ฒ์ง๋ถํฐ ์์ํ์ง๋ง ์ต๋ ์ฃผ์ ํฌ๊ธฐ๋ ์ปดํจํฐ์ ์ค์น๋ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค.
๋
ผ๋ฆฌ ์ฃผ์๋ก ์ด๋ฃจ์ด์ง ํ๋ก์ธ์ค๋ฅผ ์คํํ๋ฉด ์ด๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํํ๋ ์์
์ด ํ์ํ๋ค. ์ด ์์
์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ ๋(MMU: Memory Management Unit)์ด ๋ด๋นํ๋ค.
๋ค์์ ๋
ผ๋ฆฌ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํํ๋ ๊ณผ์ ์ ๋ํ๋ธ ๊ทธ๋ฆผ์ด๋ค.
์ฌ์ฉ์ ํ๋ก์ธ์ค๊ฐ ๋
ผ๋ฆฌ ์ฃผ์ 40๋ฒ์ง์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ฉด CPU๋ MMU์๊ฒ 40๋ฒ์ง์ ์๋ ๋ด์ฉ์ ๊ฐ์ ธ์ค๋ผ๊ณ ๋ช
๋ นํ๋ค. MMU๋ ์ฌ๋ฐฐ์น ๋ ์ง์คํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ 400๋ฒ์ง์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ๋ค. ์ด๋, ์ฌ๋ฐฐ์น ๋ ์ง์คํฐ๋ ์ฃผ์ ๋ณํ์ ๊ธฐ๋ณธ์ด ๋๋ ์ฃผ์ ๊ฐ์ ๊ฐ์ง ๋ ์ง์คํฐ๋ก, ์ฌ์ฉ์ ํ๋ก์ธ์ค์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์์ ์ฃผ์ ๊ฐ์ด ์ ์ฅ๋๋ค. ๋ฐ๋ผ์, ๋ง์ฝ ์ฌ์ฉ์ ํ๋ก์ธ์ค์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์์ ์ฃผ์ ๊ฐ์ด ๋ฐ๋๋ฉด ์ฌ๋ฐฐ์ฒด ๋ ์ง์คํฐ์๋ ๋ฐ๋ ์์ ์ฃผ์ ๊ฐ์ด ๋ค์ด๊ฐ๋ค.
๋จ์ผ ํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น
๋จ์ผ ํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ์ด์๋ ๊ณผ๊ฑฐ์๋ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฐ๋น์ผ ์ฅ์น์๊ธฐ ๋๋ฌธ์ ํฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์๊ฐ ์์๋ค. ๋ฐ๋ผ์ ์์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ด๋ป๊ฒ ํฐ ํ๋ก๊ทธ๋จ์ ์๋ํ ๊ฒ์ธ๊ฐ๊ฐ ๋ฌธ์ ์๋ค.
์ด๋ ๋ฑ์ฅํ ๊ฒ์ด ๋ฐ๋ก ๋ฉ๋ชจ๋ฆฌ ์ค๋ฒ๋ ์ด(Memory Overlay)์ด๋ค. ๋ฉ๋ชจ๋ฆฌ ์ค๋ฒ๋ ์ด๋ ์ ์ฒด ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ธ์ค๋ ๋์ ํ๋ก๊ทธ๋จ์ ๋ช ๊ฐ์ ๋ชจ๋๋ก ๋๋๊ณ ํ์ํ ๋๋ง๋ค ๋ชจ๋์ ๋ฉ๋ชจ๋ฆฌ๋ก ๊ฐ์ ธ์ค๋ ๊ธฐ๋ฒ์ ๋งํ๋ค. ๋ฉ๋ชจ๋ฆฌ ์ค๋ฒ๋ ์ด์์ ์ด๋ค ๋ชจ๋์ ๊ฐ์ ธ์ค๊ฑฐ๋ ๋ด๋ณด๋ผ์ง๋ CPU ๋ ์ง์คํฐ ์ค ํ๋์ธ ํ๋ก๊ทธ๋จ ์นด์ดํฐ(PC)๊ฐ ๊ฒฐ์ ํ๋ค. ํ๋ก๊ทธ๋จ ์นด์ดํฐ๋ ์์ผ๋ก ์คํํ ๋ชจ๋์ด ๋ฉ๋ชจ๋ฆฌ์ ์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์์๊ฒ ์์ฒญํ์ฌ ๊ฐ์ ธ์ค๊ฒ ํ๋ค.
๋ฉ๋ชจ๋ฆฌ ์ค๋ฒ๋ ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋ง์ฝ ๊ณต๊ฐ์ด ๋ค ์ฐฌ ๋ฉ๋ชจ๋ฆฌ์ ๋ชจ๋ B๋ฅผ ๊ฐ์ ธ์ฌ ๋ ๋จผ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ๋ชจ๋ A๋ฅผ ์ด๋๊ฐ์ ๋ณด๊ดํด์ผ ํ๋ค. ์ด์ฒ๋ผ ๋ฉ๋ชจ๋ฆฌ์ ๊ณต๊ฐ์ด ๋ชจ์๋ผ์ ์ซ๊ฒจ๋ ํ๋ก์ธ์ค๋ฅผ ์ ์ฅ์ฅ์น์ ํน๋ณํ ๊ณต๊ฐ์ ๋ชจ์๋๋ ์์ญ์ ์ค์ ์์ญ(Swap Area)๋ผ๊ณ ํ๋ค. ์ฐธ๊ณ ๋ก ์ด๋ ๊ฒ ํ๋ก์ธ์ค๊ฐ ์ค์ ์์ญ์ ์๋ ์ํ๋ฅผ ๋ณด๋ฅ ์ํ๋ผ๊ณ ํ๋ค. ์ค์ ์์ญ์์ ๋ฉ๋ชจ๋ฆฌ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ์์
์ Swap In, ๋ฉ๋ชจ๋ฆฌ์์ ์ค์ ์์ญ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ์์
์ Swap Out์ด๋ผ๊ณ ํ๋ค. ์ด๋, ์ค์ ์์ญ์ ์ ์ฅ์ฅ์น ๊ด๋ฆฌ์๊ฐ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์๊ฐ ๊ด๋ฆฌํ๋ค. ๋ฐ๋ผ์, ์ฌ์ฉ์๋ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฒด ํฌ๊ธฐ๋ฅผ ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ค์ ์์ญ์ ํฌ๊ธฐ๋ฅผ ํฉ์ณ์ ์ธ์ํ๋ค.
๋ฉํฐํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น
๋จ์ผ ํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ์ด์๋ ๊ณผ๊ฑฐ์ ๋ฌ๋ฆฌ ํ๋์ ์ด์์ฒด์ ๋ ๋ฉํฐํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ, ์ฆ ํ ๋ฒ์ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ ๊ตฌ์กฐ์ ๋ฉ๋ชจ๋ฆฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํ๋ค. ๊ฐ ํ๋ก์ธ์ค๋ค์ ํฌ๊ธฐ๊ฐ ๋ฌ๋ผ ํ๋ก์ธ์ค๋ง๋ค ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ๋๋์ด ์ฌ์ฉํ ๊ฒ์ธ์ง๊ฐ ๊ฐ์ฅ ํฐ ๋ฌธ์ ์ด๋ค.
๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด๋ค ํฌ๊ธฐ๋ก ๋๋ ๊ฒ์ธ๊ฐ๋ ๋ฉ๋ชจ๋ฆฌ ๋ฐฐ์น ์ ์ฑ
์ ํด๋นํ๋ค. ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ๋ฐฐ์นํ๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ ๊ฐ๋ณ ๋ถํ ๋ฐฉ์(Variable-Size Partitioning)๊ณผ ๊ณ ์ ๋ถํ ๋ฐฉ์(Fixed-Size Partitioning)์ผ๋ก ๋๋๋ค. ์ด์ธ์๋ ๋ฒ๋ ์์คํ
(Buddy System)์ด๋ผ๋ ๊ฒ์ด ์กด์ฌํ๋ค.
๊ฐ๋ณ ๋ถํ ๋ฐฉ์
๊ฐ๋ณ ๋ถํ ๋ฐฉ์์ ํ๋ก์ธ์ค์ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋๋๋ ๋ฐฉ์์ด๋ค. ๊ฐ๋ณ ๋ถํ ๋ฐฉ์์์๋ ํ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฐ์๋ ๊ณต๊ฐ์ ๋ฐฐ์น๋๊ธฐ ๋๋ฌธ์ ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น(contiguous memory allocation), ๋๋ ์ธ๊ทธ๋จผํ
์ด์
(Segmentation) ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ด๋ผ๊ณ ํ๋ค. ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์์ ํ๋์ ํ๋ก์ธ์ค์ ํด๋นํ๋ ์ฃผ์ ๊ณต๊ฐ์ด ์ฐ์์ ์ผ๋ก ์ด์ด์ง๊ธฐ ๋๋ฌธ์ด๋ค.
๊ฐ๋ณ ๋ถํ ๋ฐฉ์์ ์ฅ์ ์ ํ๋ก์ธ์ค๋ฅผ ํ ๋ฉ์ด๋ฆฌ๋ก ์ฒ๋ฆฌํ์ฌ ํ๋์ ํ๋ก์ธ์ค๋ฅผ ์ฐ์๋ ๊ณต๊ฐ์ ๋ฐฐ์นํ ์ ์๋ค๋ ์ ์ด๋ค. ๊ทธ๋ฌ๋ ๋ฉ๋ชจ๋ฆฌ์ ๋น ๊ณต๊ฐ์ด ๋ถ์ฐ์์ ์ผ๋ก ์๊ธธ ์ ์์ด ์ด์ ๋ํ ๋ฉ๋ชจ๋ฆฌ ํตํฉ๋ฑ์ ๋ถ๊ฐ์ ์ธ ์์
์ด ํ์ํ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๊ฐ ๋ณต์กํ๋ค๋ ๋จ์ ์ด ์กด์ฌํ๋ค. ์ด๋ ๊ฒ ๋ถ์ฐ์์ ์ธ ๋น ๊ณต๊ฐ์ ๋จํธํ(Fragmentation)๋ผ๊ณ ํ๋ค. ๊ฐ๋ณ ๋ถํ ๋ฐฉ์์์ ๋ฐ์ํ๋ ๋จํธํ๋ ํ๋ก์ธ์ค์ ๋ฐ๊นฅ์ชฝ์ ์์นํ๊ธฐ ๋๋ฌธ์ ์ธ๋ถ ๋จํธํ(External Fragmentation)๋ผ๊ณ ํ๋ค.
์ธ๋ถ ๋จํธํ๋ก ์ธํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ ๋ฐฐ์น ๋ฐฉ์์ด๋ ์กฐ๊ฐ ๋ชจ์(Defragmentation)์ ์ฌ์ฉํ๋ค. ๋ฉ๋ชจ๋ฆฌ ๋ฐฐ์น ๋ฐฉ์์ ์์ ์กฐ๊ฐ์ด ๋ฐ์ํ์ง ์๋๋ก ํ๋ก์ธ์ค๋ฅผ ๋ฐฐ์นํ๋ ๊ฒ์ผ๋ก ์ ์ฒ๋ฆฌ์ ํด๋นํ๊ณ ์กฐ๊ฐ ๋ชจ์์ ์กฐ๊ฐ์ด ๋ฐ์ํ์ ๋ ์์ ์กฐ๊ฐ๋ค์ ๋ชจ์์ ํ๋์ ํฐ ๋ฉ์ด๋ฆฌ๋ก ๋ง๋๋ ์์
์ผ๋ก ํ์ฒ๋ฆฌ์ ํด๋นํ๋ค.
๋ฉ๋ชจ๋ฆฌ ๋ฐฐ์น ๋ฐฉ์
๋ํ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ฐฐ์น ๋ฐฉ์์ผ๋ก๋ ์ต์ด ๋ฐฐ์น(First Fit), ์ต์ ๋ฐฐ์น(Best Fit), ์ต์
๋ฐฐ์น(Worst Fit)๊ฐ ์๋ค.
์ต์ด ๋ฐฐ์น
๋จํธํ๋ฅผ ๊ณ ๋ คํ์ง ์๋ ๋ฐฉ์์ผ๋ก, ํ๋ก์ธ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋น ๊ณต๊ฐ์ ๋ฐฐ์นํ ๋ ๋ฉ๋ชจ๋ฆฌ์์ ์ ์ฌ ๊ฐ๋ฅํ ๊ณต๊ฐ์ ์์๋๋ก ์ฐพ๋ค๊ฐ ์ฒซ ๋ฒ์งธ๋ก ๋ฐ๊ฒฌํ ๊ณต๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ๋ฐฐ์นํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋น ๊ณต๊ฐ์ ์ฐพ์๋ค๋ ํ์๊ฐ ์๋ค๋ ์ฅ์ ์ด ์กด์ฌํ๋ค.
์ต์ ๋ฐฐ์น
๋ฉ๋ชจ๋ฆฌ์ ๋น ๊ณต๊ฐ์ ๋ชจ๋ ํ์ธํ ํ ํฌ๊ธฐ๊ฐ ๊ฐ์ฅ ๋น์ทํ ๊ณณ์ ํ๋ก์ธ์ค๋ฅผ ๋ฐฐ์นํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋น ๊ณต๊ฐ์ ๋ชจ๋ ํ์ธํ๋ ๋ถ๊ฐ์ ์ธ ์์ ์ด ๋ค์ด๊ฐ์ง๋ง ๋ฑ ๋ง๋ ๊ณต๊ฐ์ ์ฐพ์ ๊ฒฝ์ฐ ๋จํธํ๊ฐ ์ผ์ด๋์ง ์๋๋ค. ๊ทธ๋ฌ๋ ๋ฑ ๋ง๋ ๊ณต๊ฐ์ด ์์ ๋๋ ์์ฃผ ์์ ์กฐ๊ฐ์ ๋ง๋ค์ด๋ด์ด ์ด ๊ณต๊ฐ์ ๋ฒ๋ ค์ง ๊ฐ๋ฅ์ฑ์ด ํฌ๋ค๋ ๋จ์ ์ด ์๋ค.
์ต์ ๋ฐฐ์น
๋น ๊ณต๊ฐ์ ๋ชจ๋ ํ์ธํ ํ ๊ฐ์ฅ ํฐ ๊ณต๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ๋ฐฐ์นํ๋ ๊ฒ์ผ๋ก ์ต์ ๋ฐฐ์น์ ์ ๋ฐ๋ ๋๋ ๋ฐฉ๋ฒ์ด๋ค. ํ๋ก์ธ์ค๋ฅผ ๋ฐฐ์นํ๊ณ ๋ ๋จ์ ๊ณต๊ฐ์ด ํฌ๊ธฐ ๋๋ฌธ์ ๋จ์ ๊ณต๊ฐ์ด ์ธ๋ชจ๊ฐ ์๋ค๋ ์ฅ์ ์ด ์๋ค. ํ์ง๋ง, ๋น ๊ณต๊ฐ์ ํฌ๊ธฐ๊ฐ ์ ์ ์ค์ด๋ค๋ฉด ๊ฒฐ๊ตญ ์ต์ ๋ฐฐ์น์ฒ๋ผ ์์ ์กฐ๊ฐ์ ๋ง๋ค์ด๋ด๋ฏ๋ก ํจ๊ณผ๊ฐ ๋จ์ด์ง๋ค.
์กฐ๊ฐ ๋ชจ์
์๋ก ๋จ์ด์ ธ ์๋ ์ฌ๋ฌ ๊ฐ์ ๋น ๊ณต๊ฐ์ ํฉ์น๋ ์์
์ผ๋ก, ๋ฉ๋ชจ๋ฆฌ ํตํฉ์ด๋ผ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค.
์กฐ๊ฐ ๋ชจ์์ ๋ค์๊ณผ ๊ฐ์ด ์งํ๋๋ค. ๋จผ์ ์กฐ๊ฐ ๋ชจ์์ ํ๊ธฐ ์ํด ์ด๋ํ ํ๋ก์ธ์ค์ ๋์์ ๋ฉ์ถ๊ณ ํด๋น ํ๋ก์ธ์ค์ ๋
ผ๋ฆฌ ์ฃผ์ ๊ฐ์ ๋ฐ๊ฟ ์ ๋นํ ์์น๋ก ์ด๋์ํค๊ณ ํ๋ก์ธ์ค๋ฅผ ๋ค์ ์์ํ๋ค. ์์ ๊ทธ๋ฆผ์ ์๋ก ๋ค๋ฉด ํ๋ก์ธ์ค C์ E๊ฐ ๋์์ ๋ฉ์ถ๊ณ ์ ๋นํ ์์น๋ก ์ด๋๋ ๊ฒ์ด๋ค. ๋น์ฐํ ํด์ผ ํ ์ผ์ด ๋ง๊ธฐ ๋๋ฌธ์ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค๋ ๋จ์ ์ด ์กด์ฌํ๋ค.
์ฐธ๊ณ ๋ก ํ๋๋์คํฌ์ ๊ฐ์ ์ ์ฅ์ฅ์น์์๋ ์ธ๋ถ ๋จํธํ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ํ๋๋์คํฌ๋ ์ฑ๋ฅ์ ์ ์งํ๋ ค๋ฉด ์ฃผ๊ธฐ์ ์ผ๋ก ์กฐ๊ฐ ๋ชจ์์ ์คํํด์ผ ํ๋ค. ํ์ง๋ง ๋จํธํ๋ก ์ธํ ์ฑ๋ฅ ์ ํ๊ฐ ๋์ง ์๋ SSD๊ฐ ๋์คํ๋ ์ค๋๋ ์๋ ์ ์ฅ์ฅ์น์ ๋ํ ์กฐ๊ฐ ๋ชจ์์ ์ค์์ฑ์ด ๋จ์ด์ก๋ค.
๊ณ ์ ๋ถํ ๋ฐฉ์
๊ณ ์ ๋ถํ ๋ฐฉ์์ ํ๋ก์ธ์ค์ ํฌ๊ธฐ์ ์๊ด์์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ ํฌ๊ธฐ๋ก ๋๋๋ ๋ฐฉ์์ด๋ค. ํ๋ก์ธ์ค์ ํฌ๊ธฐ์ ์๊ด์์ด ๊ฐ์ ํฌ๊ธฐ๋ก ๋๋๊ธฐ ๋๋ฌธ์ ํฐ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ค๋ฉด ์ฌ๋ฌ ์กฐ๊ฐ์ผ๋ก ๋๋์ด ๋ฐฐ์น๋๋ค. ํ๋์ ํ๋ก์ธ์ค๊ฐ ์ฌ๋ฌ ๊ฐ๋ก ๋๋์ด ๋ฐฐ์น๋๊ธฐ ๋๋ฌธ์ ๋น์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น(noncontiguous memory allocation), ๋๋ ํ์ด์ง(Paging) ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ด๋ผ๊ณ ํ๋ค.
๊ณ ์ ๋ถํ ๋ฐฉ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ผ์ ํ ํฌ๊ธฐ๋ก ๋๋๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ํตํฉ ๊ฐ์ ๋ถ๊ฐ์ ์ธ ์์
์ ํ ํ์๊ฐ ์์ด ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๊ฐ ํธํ๋ค๋ ์ฅ์ ์ด ์กด์ฌํ๋ค. ํ์ง๋ง, ํ๋์ ํ๋ก์ธ์ค๊ฐ ์ฌ๋ฌ ๊ณณ์ผ๋ก ๋๋ ์ ์๋ค๋ ๋จ์ ์ ๊ฐ์ง๊ณ ์๋ค. ๊ทธ๋ฌ๋ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฒ๋ ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ก์ธ์ค๊ฐ ์ฌ๋ฌ ๊ณณ์ ๋๋์ด ๋ฐฐ์น๋๊ฑฐ๋ ์ผ๋ถ๋ง ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์๊ณ ๋๋จธ์ง๋ ์ค์ ์์ญ์ ์์ด๋ ์คํ์๋ ๋ฌธ์ ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ณ ๋ถํ ๋ฐฉ์๋ณด๋ค ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ธก๋ฉด์์ ์ ๋ฆฌํ๋ค. ๋ฐ๋ผ์, ํ๋ ์ด์์ฒด์ ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ณ ์ ๋ถํ ๋ฐฉ์์ ์ด์ฉํ๋ค.
๊ณ ์ ๋ถํ ๋ฐฉ์๋ ์ผ์ ํ๊ฒ ๋๋ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ณด๋ค ์์ ํ๋ก์ธ์ค๊ฐ ๋ฐฐ์น๋ ๊ฒฝ์ฐ ๋ญ๋น๋๋ ๊ณต๊ฐ์ด ์๊ธด๋ค๋ ๋จ์ ์ด ์กด์ฌํ๋ค. ์ด์ฒ๋ผ ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์กฐ๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ๋ฐฐ์นํ๊ณ ๊ณต๊ฐ์ด ๋จ๋ ๊ฒ์ ๋ด๋ถ ๋จํธํ(Internal Fragmentation)์ด๋ผ๊ณ ํ๋ค. ์ธ๋ถ ๋จํธํ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์กฐ๊ฐ ๋ชจ์์ ํ๋ ๊ฒ์ฒ๋ผ ํ์ฒ๋ฆฌ๋ฅผ ํ๊ฑฐ๋ ๋จ๋ ๊ณต๊ฐ์ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋ฐฐ์ ํ ์๋ ์๊ธฐ ๋๋ฌธ์ ๊ณ ์ ๋ถํ ๋ฐฉ์์์๋ ๋ด๋ถ ๋จํธํ๋ฅผ ์ค์ด๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด๋ค ํฌ๊ธฐ๋ก ๋๋์ง ์ ์คํ๊ฒ ๊ฒฐ์ ํด์ผ ํ๋ค.
๋ฒ๋ ์์คํ
๋ฒ๋ ์์คํ
์ ๊ฐ๋ณ ๋ถํ ๋ฐฉ์๊ณผ ๊ณ ์ ๋ถํ ๋ฐฉ์์ ์ค๊ฐ ๊ตฌ์กฐ์ด๋ค. ๋ฒ๋ ์์คํ
์ ํ๋ก์ธ์ค์ ํฌ๊ธฐ์ ๋ง๊ฒ ๋ฉ๋ชจ๋ฆฌ๋ฅผ 1/2๋ก ์๋ฅด๊ณ ํ๋ก์ธ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐฐ์นํ๋ค. ์ด๋, ๋๋ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ ๊ตฌ์ญ์๋ ํ๋ก์ธ์ค๊ฐ 1๊ฐ๋ง ๋ค์ด๊ฐ๋ค. ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋๋ฉด ์ฃผ๋ณ์ ๋น ์กฐ๊ฐ๊ณผ ํฉ์ณ์ ํ๋์ ํฐ ๋ฉ์ด๋ฆฌ๋ฅผ ๋ง๋ ๋ค. ์์ธํ ๋์ ๊ณผ์ ์ ์์์ ์ฐธ๊ณ ํ์.
ํจ์จ์ ์ธ ๊ณต๊ฐ ๊ด๋ฆฌ ์ธก๋ฉด์์ ๋ณด๋ฉด ๊ณ ์ ๋ถํ ๋ฐฉ์๊ณผ ๋ฒ๋ ์์คํ
์ ๋น์ทํ ์์ค์ด๋ค. ๊ทธ๋ฌ๋ ๊ณ ์ ๋ถํ ๋ฐฉ์์ด ํจ์ฌ ๋จ์ํ๊ธฐ ๋๋ฌธ์ ๋ฒ๋ ์์คํ
๋ณด๋ค ๊ณ ์ ๋ถํ ๋ฐฉ์์ ๋ง์ด ์ฌ์ฉํ๋ค.
'CS > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ (0) | 2023.05.20 |
---|---|
[์ด์์ฒด์ ] ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ (0) | 2023.05.09 |
[์ด์์ฒด์ ] ๊ต์ฐฉ ์ํ(Deadlock) (1) | 2023.04.23 |
[์ด์์ฒด์ ] ๋๊ธฐํ(Synchronization) (0) | 2023.04.23 |
[์ด์์ฒด์ ] IPC (1) | 2023.04.23 |
๋๊ธ