๐ ์ด ๊ธ์ CS ์คํฐ๋๋ฅผ ์งํํ๋ฉฐ ๊ฐ์ธ์ ์ผ๋ก ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
ํ๋ฆฐ ๋ถ๋ถ์ด ์๋ค๋ฉด ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค.๐โ๏ธ๐
๊ณผ๊ฑฐ์๋ ํ๋์ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ค๋ฉด, ๊ทธ ์ ์ฒด ์ฝ๋์ ๋ฐ์ดํฐ๊ฐ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ(RAM)์ ๋ชจ๋ ์ ์ฌ๋์ด ์์ด์ผ๋ง ํ๋ค.
์ด๋ก ์ธํด ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ํฐ ํ๋ก๊ทธ๋จ์ ์คํ ์์ฒด๊ฐ ๋ถ๊ฐ๋ฅํ๊ณ , ๋์์ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๋ฉํฐํ์คํน ํ๊ฒฝ์์๋ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ผ๋ก ์ธํ ์ฑ๋ฅ ์ ํ, ์ฆ์ ํ์ด์ง ๊ต์ฒด ๋ฑ์ ๋ฌธ์ ๊ฐ ์์ฃผ ๋ฐ์ํ๋ค.
์ด๋ฌํ ์ ์ฝ์ ๊ทน๋ณตํ๊ณ , ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ํจ์จ์ ์ด๊ณ ์ ์ฐํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ(Virtual Memory) ๊ฐ๋ ์ด ๋์ ๋์๋ค.
๐ก ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ?
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ์ด์์ฒด์ ๊ฐ ํ๋ก๊ทธ๋จ ์คํ ์ ํ์ํ ์ผ๋ถ๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํจ์ผ๋ก์จ, ์ค์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ํฐ ํ๋ก๊ทธ๋จ๋ ์คํ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ด๋ค.
์ด๋ฌํ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ ์ ํ์ํ ๊น ? ๐ค
์๋ก์ด ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋๋ฉด, ๊ธฐ์กด์ ํ๋ก์ธ์ค๋ ๊ต์ฒด๋๊ฑฐ๋ ์ญ์ ๋ ์๋ ์๋ค. ๋ฉ๋ชจ๋ฆฌ ์์ ์ ๋ณด๋ ๊ณ์ํด์ ์ค์๊ฐ์ผ๋ก ๋ฐ๋๊ณ ์ด๋ค ๋ฐ์ดํฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์๋์ง๋ ์์๋ก ๋ฌ๋ผ์ง๋ค.
๊ทธ๋ ๋ค๋ฉด, CPU๋ ์ค์๊ฐ์ผ๋ก ๋ฐ๋๋ ๋ฉ๋ชจ๋ฆฌ ์ ๋ณด์ ํ๋ก์ธ์ค ์ฃผ์๋ฅผ ์ด๋ป๊ฒ ์ธ์ํ๊ณ ๊ด๋ฆฌํ ๊น ? ๐ค
๐ ๋ ผ๋ฆฌ ์ฃผ์์ ๋ฌผ๋ฆฌ ์ฃผ์
CPU๋ ํ๋ก๊ทธ๋จ์ ์คํํ ๋, ๋ฉ๋ชจ๋ฆฌ์ ์ค์ ์์น๋ฅผ ์ ํํ๊ฒ ์๊ณ ์์๊น ? ๐ค
์ฌ์ค ๊ทธ๋ ์ง ์๋ค.
์ด์์ฒด์ ๋ ํ๋ก์ธ์ค๊ฐ ์์ฑ๋ ๋๋ง๋ค ํด๋น ํ๋ก๊ทธ๋จ์ ์ด๋ ์์น์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ ์ง ๋์ ์ผ๋ก ๊ฒฐ์ ํ๋ค.
- ์ด๋ค ํ๋ก๊ทธ๋จ์ ์คํ๋ ๋๋ง๋ค ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ์์น์ ์ฌ๋ผ๊ฐ๋ฉฐ,
- ์คํ์ด ๋๋ ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ์์ ์ ๊ฑฐ๋๊ณ ,
- ์๋ก์ด ํ๋ก๊ทธ๋จ์ ๊ทธ ๋น ๊ณต๊ฐ์ ๋ค์ ์ ์ฌ๋๋ค.
์ฆ, ์คํ ์์ ๋ง๋ค ํ๋ก๊ทธ๋จ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋๋ ์์น๋ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์, CPU๊ฐ ํญ์ ๋ฉ๋ชจ๋ฆฌ์ ์ค์ ์ฃผ์๋ฅผ ์ ์๋ ์๋ค.
๐ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋์ ๋ ๊ฐ๋ ์ด ๋ฐ๋ก ๋ ผ๋ฆฌ ์ฃผ์(Logical Address)์ ๋ฌผ๋ฆฌ ์ฃผ์(Physical Address)์ด๋ค.
๐งฉ ๋ ผ๋ฆฌ ์ฃผ์(Logical Address)
- CPU์ ํ๋ก์ธ์ค ์ ์ฅ์์ ๋ฐ๋ผ๋ณด๋ ์ฃผ์
- ๊ฐ ํ๋ก์ธ์ค๋ 0๋ฒ์ง๋ถํฐ ์์ํ๋ ๋ ๋ฆฝ๋ ์ฃผ์ ๊ณต๊ฐ์ ๊ฐ์ง๋ฉฐ, ์ด๋ฅผ ํตํด ์คํ๋๋ค.
- ์ฆ, ํ๋ก๊ทธ๋จ์ด ์๊ฐํ๋ ์ฃผ์๋ผ๊ณ ํ ์ ์๋ค.
- ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ์คํ๋๋๋ผ๋, ๊ฐ์ ๋์ผํ ๋ ผ๋ฆฌ ์ฃผ์(์: 0x0000)๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
๐งฉ ๋ฌผ๋ฆฌ ์ฃผ์(Physical Address)
- ์ค์ ๋ฉ๋ชจ๋ฆฌ(RAM) ์์ ์ฃผ์
- ๋ฉ๋ชจ๋ฆฌ ํ๋์จ์ด๊ฐ ๋ฐ๋ผ๋ณด๋ ๊ด์ ์ ์ฃผ์
- ๊ฐ์ ๋ ผ๋ฆฌ ์ฃผ์๋ผ๋, ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๋๋ ์๋ก ๋ค๋ฅธ ๋ฌผ๋ฆฌ ์ฃผ์์ ๋งคํ๋๋ค.
์ ๋ ผ๋ฆฌ ์ฃผ์์ ๋ฌผ๋ฆฌ ์ฃผ์๊ฐ ๋ถ๋ฆฌ๋์ด์ผ ํ ๊น ? ๐ค
๋ ผ๋ฆฌ ์ฃผ์ ์ฒด๊ณ๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ๋ค์๊ณผ ๊ฐ์ ์ด์ ์ด ์๊ธด๋ค.
- ๊ฐ ํ๋ก์ธ์ค๋ ๋ ๋ฆฝ์ ์ธ ์ฃผ์ ๊ณต๊ฐ์ ๊ฐ์ง๊ฒ ๋์ด, ์ถฉ๋ ์์ด ์์ ํ๊ฒ ์คํ๋ ์ ์๋ค.
- ์ด์์ฒด์ ๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฐํ๊ฒ ํ ๋นํ๊ณ ํ์ํ ์ ์๋ค.
- ๋ฉํฐํ์คํน ํ๊ฒฝ์์๋ ๊ฐ ํ๋ก๊ทธ๋จ์ด ์๊ธฐ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ ์๋ํด, ์์ ์ฑ๊ณผ ํจ์จ์ฑ์ด ํฅ์๋๋ค.
๋ ผ๋ฆฌ ์ฃผ์ → ๋ฌผ๋ฆฌ ์ฃผ์ ๋ณํ์ ๋๊ฐ ํ ๊น? ๐ค
CPU๋ ์ค์ง ๋ ผ๋ฆฌ ์ฃผ์๋ง ์ฌ์ฉํ์ง๋ง, ์ค์ ๋ฉ๋ชจ๋ฆฌ(RAM)๋ ๋ฌผ๋ฆฌ ์ฃผ์๋ง ์ดํดํ๋ค.
๋ฐ๋ผ์ ๋ ์ฌ์ด์๋ ์ฃผ์ ๋ณํ์ด ํ์ํ๋ฉฐ, ์ด ์ญํ ์ ์ํํ๋ ๊ฒ์ด ๋ฐ๋ก MMU(Memory Management Unit, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ฅ์น)์ด๋ค.
๐งฉ MMU(Memory Management Unit)์ ์ญํ
- MMU๋ CPU์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ ์์นํ ํ๋์จ์ด ์ฅ์น๋ก, CPU๊ฐ ์์ฑํ ๋ ผ๋ฆฌ ์ฃผ์๋ฅผ ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํํ๋ ์ญํ ์ ์ํํ๋ค.
- ์ด ๋๋ถ์ CPU๋ ๋ ผ๋ฆฌ ์ฃผ์๋ง ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ , MMU๋ ์ด๋ฅผ ์ค์๊ฐ์ผ๋ก ์๋ ๋ณํํ์ฌ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๊ฒ ํด์ค๋ค.
- ๋ํ, ์ด๋ฌํ ๋ณํ ๊ณผ์ ์ ํ๋์จ์ด ์์ค์์ ์๋ ์ฒ๋ฆฌํ๋ฏ๋ก, ๊ฐ๋ฐ์๋ ๋ณต์กํ ๋ฌผ๋ฆฌ ์ฃผ์๋ฅผ ์ ๊ฒฝ ์ฐ์ง ์๊ณ ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ ์ ์๋ค.
๐ ์ค์ํ(Swapping)
์ด์์ฒด์ ๋ ๋ฉ๋ชจ๋ฆฌ ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด, ํ์ฌ ์คํ๋์ง ์๋ ํ๋ก์ธ์ค๋ฅผ ๋ณด์กฐ๊ธฐ์ต์ฅ์น์ ์ผ๋ถ์ธ ์ค์ ์์ญ(swap space)์ผ๋ก ์์ ์ด๋์ํฌ ์ ์๋ค. ์ด์ฒ๋ผ, ๋ฉ๋ชจ๋ฆฌ์์ ์ฌ์ฉํ์ง ์๋ ํ๋ก์ธ์ค๋ฅผ ๋ด๋ณด๋ด๊ณ , ๊ทธ ๊ณต๊ฐ์ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์ ์ฌํ์ฌ ์คํํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ ์ค์ํ(Swapping)์ด๋ผ๊ณ ํ๋ค.
- ์ค์ ์์ (Swap Out): ์ฌ์ฉ๋์ง ์๋ ํ๋ก์ธ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ → ์ค์ ์์ญ์ผ๋ก ์ด๋
- ์ค์ ์ธ (Swap In): ์ค์ ์์ญ์ ์๋ ํ๋ก์ธ์ค๋ฅผ ๋ค์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ด๋
์ค์ ์์๋์๋ ํ๋ก์ธ์ค๋ ๋ค์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ ์ฌ๋ ๋, ์ด์ ๊ณผ๋ ๋ค๋ฅธ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ์ฌ๋ผ๊ฐ ์ ์๋ค.
์ด๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋์ ์ผ๋ก ๋ณํ๊ณ , ์ค์ํ ๋์์ด ์ธ์ ๋ ๋ฐ๋ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ค์ํ์ ํตํด ์ด์์ฒด์ ๋ ์ ํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ ํจ์จ์ ์ผ๋ก ํ์ฉํ ์ ์์ง๋ง, ๋์คํฌ I/O๋ ๋งค์ฐ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ ์ค์์ด ๊ณผ๋ํ๊ฒ ์ผ์ด๋๋ฉด ์์คํ ์ฑ๋ฅ์ ์ฌ๊ฐํ ์ํฅ์ ๋ฏธ์น ์ ์๋ค.
๐ ์ค๋ ์ฑ(Thrashing)
์ค๋ ์ฑ์ ์ค์ํ์ด ๊ณผ๋ํ๊ฒ ๋ฐ์ํ๋ฉด์, ์ค์ ์์ ๋ณด๋ค ํ์ด์ง ๊ต์ฒด์ ๋ ๋ง์ ์๊ฐ์ ์๋ชจํ๋ ๋น์ ์์ ์ธ ์์คํ ์ํ๋ฅผ ๋งํ๋ค.
์ธ์ ์ค๋ ์ฑ์ด ๋ฐ์ํ ๊น ? ๐ค
- ๋์์ ๋๋ฌด ๋ง์ ํ๋ก์ธ์ค๋ฅผ ์คํํ ๋
- ๊ฐ ํ๋ก์ธ์ค๊ฐ ์ถฉ๋ถํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฐ์ง ๋ชปํด ํ์ด์ง ํดํธ๊ฐ ์์ฃผ ๋ฐ์ํ ๋
- CPU๊ฐ ํ๊ฐํ๋ค๊ณ ์คํดํ ์ด์์ฒด์ ๊ฐ ๋ ๋ง์ ํ๋ก์ธ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆด ๋
๐ ์ค๋ ์ฑ์ ์ ์ํ
- ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ถฉ๋ถํ ํ๋ณดํ์ง ๋ชปํด ํ์ด์ง ํดํธ๊ฐ ์์ฃผ ๋ฐ์
- CPU๋ ์ค์ ์์ ๋ณด๋ค ๊ณ์ํด์ ํ์ด์ง ๊ต์ฒด(์ค์ํ)์ ์๊ฐ์ ์๋ชจ
- CPU ์ด์ฉ๋ฅ ์ด ์ ์ ๋จ์ด์ง
- ์ด์์ฒด์ ๋ ์ด๋ฅผ ๋ณด๊ณ "CPU๊ฐ ์ฌ์ ์๋ ๋ณด๋ค" ์คํดํ๊ณ , ๋ ๋ง์ ํ๋ก์ธ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ
- ๊ทธ ๊ฒฐ๊ณผ
- ํ์ด์ง ํดํธ ์ฆ๊ฐ
- ์ค์ํ ์ฆ๊ฐ
- CPU ์์ ๋ญ๋น
- ๊ฒฐ๊ตญ ์์คํ ์ ์ฌ๊ฐํ๊ฒ ๋๋ ค์ง๋ฉฐ ์ค๋ ์ฑ ์ํ์ ๋น ์ง
๐ ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น(Contiguous Memory Allocation)
์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํ๋ก์ธ์ค๋ค์ด ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๋ด์์ ์ฐ์์ ์ธ ๊ณต๊ฐ์ ํ ๋น๋๋ ๋ฐฉ์์ด๋ค.
์ฆ, ๊ฐ ํ๋ก์ธ์ค๋ ํ๋์ ๊ณ ์ ๋ ์ฐ์ ๋ธ๋ก์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด์ผ ํ๋ค.
๐ ํ๋ก์ธ์ค A๋ A์ ํฌ๊ธฐ๋งํผ ๋ฉ๋ชจ๋ฆฌ์ ๋จผ์ ํ ๋น๋๊ณ , ๊ทธ ๋ค์ ํ๋ก์ธ์ค B๋ A ๋ค์ ์์น์, ํ๋ก์ธ์ค C๋ B ๋ค์ ์์น์ ํ ๋น๋๋ ์์ด๋ค.
์ธ๋ป ๋ณด๊ธฐ์๋ ๋น์ฐํ๊ณ ๋ณดํธ์ ์ธ ๋ฐฉ์์ด๋ผ๊ณ ๋๋ ์ ์์ง๋ง, ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์๋๋ค.
์คํ ์ค ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๊ฑฐ๋ ์ค์ ์์๋๋ฉด, ํด๋น ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋น๊ฒ ๋์ด ์ธ๋ถ ๋จํธํ(External Fragmentation)๊ฐ ๋ฐ์ํ ์ ์๋ค.
์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ์ํฉ์ด ์๋ค๊ณ ๊ฐ์ ํด ๋ณด์.
ํ์ฌ ์ด ๋ฉ๋ชจ๋ฆฌ์ ์๋ก์ด ํ๋ก์ธ์ค๊ฐ ์ ์ฌ๋ ์ ์๋ ๋น ๊ณต๊ฐ์ ์ด 50MB์ด๋ค. ๊ทธ๋ฌ๋ ํฌ๊ธฐ๊ฐ 50MB์ธ ํ๋ก์ธ์ค๋ฅผ ์ ์ฌํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค. ๋ฉ๋ชจ๋ฆฌ์ ๋จ์์๋ ๊ณต๊ฐ์ด ๊ฐ๊ฐ 30MB์ 20MB์ด๊ธฐ ๋๋ฌธ์ด๋ค.
์ด์ฒ๋ผ ํ๋ก์ธ์ค๋ค์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฐ์์ ์ผ๋ก ํ ๋น๋๋ ํ๊ฒฝ์์๋ ํ๋ก์ธ์ค์ ์คํ๊ณผ ์ข ๋ฃ๋ฅผ ๋ฐ๋ณตํ๋ฉฐ ์ฌ์ด์ฌ์ด์ ๋น ๊ณต๊ฐ์ด ์๊ธด๋ค. ํ๋ก์ธ์ค ๋ฐ๊นฅ์ ์๊ธฐ๋ ๋น ๊ณต๊ฐ๋ค์ ๋ถ๋ช ๋น ๊ณต๊ฐ์ด ๋ง์ง๋ง ๊ทธ๋ณด๋ค ๋ ํฐ ํ๋ก์ธ์ค๋ฅผ ์ ์ฌํ๊ธฐ ์ด๋ ค์ด ์ํฉ์ ์ด๋ํ๊ณ , ์ด๋ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ก ์ด์ด์ง๋ค. ์ด๋ฌํ ํ์์ ์ธ๋ถ ๋จํธํ(External Fragmentation)๋ผ๊ณ ํ๋ค.
์ด๋ฌํ ๋น์ด ์๋ ๋ฉ๋ชจ๋ฆฌ ์กฐ๊ฐ๋ค ์ค ์ด๋์ ์ ํ๋ก์ธ์ค๋ฅผ ํ ๋นํ ์ง ๊ฒฐ์ ํ๋ ๋ฐฉ์์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋ค.
๐งฉ ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐฉ์
ํ๋ก์ธ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋น ๊ณต๊ฐ์ ๋ฐฐ์นํ ๋ ์ฌ์ฉํ ์ ์๋ ๋ํ์ ์ธ 3๊ฐ์ง ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค.
โฝ์ต์ด ์ ํฉ(First-fit)
๋ฉ๋ชจ๋ฆฌ์ ๋น ๊ณต๊ฐ์ ์ฒ์๋ถํฐ ์์ฐจ์ ์ผ๋ก ๊ฒ์ํ์ฌ, ์ฒ์ ๋ฐ๊ฒฌํ ์ถฉ๋ถํ ํฌ๊ธฐ์ ๊ณต๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ๋ฐฐ์นํ๋ค.
โ ์ฅ์
- ๊ฒ์์ด ๊ฐ๋จํ๊ณ ์๋๊ฐ ๋น ๋ฅด๋ค.
- ๊ตฌํ์ด ์ฝ๋ค.
โ ๏ธ ๋จ์
- ์๊ฐ์ด ์ง๋ ์๋ก ์๋ถ๋ถ์ ์์ ๋จํธํ(fragmentation)๊ฐ ๋ง์ด ๋ฐ์ํ ์ ์๋ค.
โฝ์ต์ ์ ํฉ(Best-fit)
๋ชจ๋ ๋น ๊ณต๊ฐ์ ๊ฒ์ฌํ ํ, ํ๋ก์ธ์ค๊ฐ ๋ค์ด๊ฐ ์ ์๋ ๊ณต๊ฐ ์ค ๊ฐ์ฅ ์์ ๊ณต๊ฐ์ ๋ฐฐ์นํ๋ค.
โ ์ฅ์
- ๋ด๋ถ ๋จํธํ๋ฅผ ์ต์ํํ ์ ์๋ค. (๋จ๋ ๊ณต๊ฐ์ด ์ ์)
โ ๏ธ ๋จ์
- ๊ฒ์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ์ ์๋ค.
- ์์ ๊ณต๊ฐ์ด ๋ง์ด ๋จ์ ์ธ๋ถ ๋จํธํ๊ฐ ์ฌํด์ง ์ ์๋ค.
โฝ์ต์ ์ ํฉ(Worst-fit)
๋ชจ๋ ๋น ๊ณต๊ฐ์ ๊ฒ์ฌํ ํ, ํ๋ก์ธ์ค๊ฐ ๋ค์ด๊ฐ ์ ์๋ ๊ณต๊ฐ ์ค ๊ฐ์ฅ ํฐ ๊ณต๊ฐ์ ๋ฐฐ์นํ๋ค.
โ ์ฅ์
- ํฐ ๊ณต๊ฐ์ ๋๋์ด ์ฌ์ฉํ๋ฏ๋ก, ์ดํ ํฐ ํ๋ก์ธ์ค์ ๋ฐฐ์น ๊ฐ๋ฅ์ฑ์ ๋์ธ๋ค.
โ ๏ธ ๋จ์
- ๋ด๋ถ ๋จํธํ๊ฐ ์ปค์ง ์ ์๋ค.
- ์ ์ฒด์ ์ธ ๋ฉ๋ชจ๋ฆฌ ํ์ฉ ํจ์จ์ด ๋ฎ์ ์ ์๋ค.
๐ ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํ๊ณ
์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐฉ์์ ํ๋ก์ธ์ค๊ฐ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๋ด์์ ์ฐ์์ ์ธ ๊ณต๊ฐ์ ๋ฐฐ์น๋์ด์ผ ํ๋ค๋ ์ ์ฝ์ด ์๋ค.
์ด ๋ฐฉ์์ ๊ตฌ์กฐ๊ฐ ๋จ์ํ๊ณ ์ ๊ทผ ์๋๊ฐ ๋น ๋ฅด๋ค๋ ์ฅ์ ์ด ์์ง๋ง, ๋ค์๊ณผ ๊ฐ์ ํ๊ณ๊ฐ ์กด์ฌํ๋ค:
- ๋ฉ๋ชจ๋ฆฌ์ ์ฐ์๋ ์ถฉ๋ถํ ๊ณต๊ฐ์ด ์์ผ๋ฉด ํ๋ก์ธ์ค๋ฅผ ํ ๋นํ ์ ์๋ค.
- ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ์์ฑ๋๊ณ ์ข ๋ฃ๋๋ฉด ์ธ๋ถ ๋จํธํ๊ฐ ์ฌํ๋๋ค.
- ์ ์ฒด ํ๋ก๊ทธ๋จ์ด ํ๊บผ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์ฉ๋์ ์ ์ฝ์ ๋ฐ๋๋ค.
์ด๋ฌํ ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐฉ์์ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด, ์ด์์ฒด์ ๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ(Virtual Memory)๋ผ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค.
๐ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ(Virtual Memory)
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ์ด์์ฒด์ ๊ฐ ๊ฐ ํ๋ก์ธ์ค์ ์ค์ ๋ฌผ๋ฆฌ ์ฃผ์๊ฐ ์๋ ๊ฐ์ ์ฃผ์๋ฅผ ๋ถ์ฌํจ์ผ๋ก์จ, ํ๋ก์ธ์ค๊ฐ ๋ ๋ฆฝ์ ์ด๊ณ ๋๋ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ฐ์ง ๊ฒ์ฒ๋ผ ๋์ํ ์ ์๋๋ก ํ๋ ๊ธฐ๋ฒ์ด๋ค.
์ฆ, ํ๋ก์ธ์ค๋ ์์ ๋ง์ ์ฐ์์ ์ธ ์ฃผ์ ๊ณต๊ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง, ์ค์ ๋ก๋ ์ด์์ฒด์ ๊ฐ ์ด๋ฅผ ๋น์ฐ์์ ์ธ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ ํ ๋งคํํด์ค๋ค.
๐งฉ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฅ๋จ์
โ ์ฅ์
- ๋ ํฐ ํ๋ก๊ทธ๋จ๋ ์คํ ๊ฐ๋ฅ
- ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ํฐ ํ๋ก๊ทธ๋จ๋ ์คํํ ์ ์์ด ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ์ด ์ค์ด๋ ๋ค.
- ๋ฉํฐํ์คํน ํจ์จ ํฅ์
- ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ ๋์์ ์คํํด๋ CPU์ ์์คํ ์์์ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ ์ ์๋ค.
- ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ํจ์จ ๊ฐ์
- ์ค์ ํ์ํ ๋ถ๋ถ๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค ์ค์ํ์ ์ค์ด๊ณ ์คํ ์๋๋ฅผ ๋์ธ๋ค.
- ๋ณด์์ฑ๊ณผ ์์ ์ฑ ํ๋ณด
- ํ๋ก์ธ์ค๋ง๋ค ๋ ๋ฆฝ์ ์ธ ์ฃผ์ ๊ณต๊ฐ์ ์ ๊ณตํด ์๋ก ๊ฐ์ ์นจ๋ฒ์ ๋ฐฉ์งํ๋ค.
โ ๏ธ ๋จ์
- ํ์ด์ง ํดํธ๋ก ์ธํ ์ฑ๋ฅ ์ ํ
- ํ์ํ ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์์ ๊ฒฝ์ฐ ๋์คํฌ์์ ๋ถ๋ฌ์ค๋ ๋ฐ ์๊ฐ์ด ๊ฑธ๋ ค ์คํ ์๋๊ฐ ๋๋ ค์ง ์ ์๋ค.
- ๋ณต์กํ ์์คํ
๊ตฌ์กฐ
- ํ์ด์ง ํ ์ด๋ธ, TLB, MMU ๋ฑ ์ถ๊ฐ์ ์ธ ํ๋์จ์ด์ ๊ด๋ฆฌ ๋ก์ง์ด ํ์ํ๋ค.
- ๋์คํฌ ๊ณต๊ฐ ์๋ชจ ๋ฐ I/O ๋ณ๋ชฉ
- ์ค์ํ์ ์ํด ๋์คํฌ ๊ณต๊ฐ์ ์ฌ์ฉํ๊ณ , ์ฆ์ ์ ๊ทผ์ I/O ๋ณ๋ชฉ์ ์ ๋ฐํ ์ ์๋ค.
- ์ค์๊ฐ ์ฒ๋ฆฌ์ ๋ถ์ ํฉ
- ํ์ด์ง ํดํธ ๋ฐ์ ์์ ์ ์์ธกํ๊ธฐ ์ด๋ ค์, ์ง์ฐ์ ๋ฏผ๊ฐํ ์์คํ ์๋ ์ ํฉํ์ง ์๋ค.
๐งฉ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ฐฉ์
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ๋ ๋ ผ๋ฆฌ์ ์ฃผ์(๊ฐ์ ์ฃผ์)๋ฅผ ์ค์ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํํ๋ ์ฃผ์ ๋ณํ(Address Translation) ๊ณผ์ ์ ํตํด ๋์ํ๋ค.
์ด์์ฒด์ ๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ผ์ ํ ํฌ๊ธฐ์ ๋ธ๋ก์ธ ํ์ด์ง(Page) ๋จ์๋ก ๋ถํ ํ๊ณ , ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ(RAM)๋ ๋์ผํ ํฌ๊ธฐ์ ํ๋ ์(Frame) ๋จ์๋ก ๋ถํ ํ๋ค. ์ด๋ฌํ ๊ตฌ์กฐ๋ ํ์ด์ง ๋จ์์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ, ๋น์ฐ์์ ์ธ ๊ณต๊ฐ์์๋ ์ฐ์์ ์ธ ์ฃผ์ ๊ณต๊ฐ์ฒ๋ผ ๋์ํ ์ ์๊ฒ ํด์ค๋ค.
๊ฐ ํ๋ก์ธ์ค๋ ์์ ๋ง์ ํ์ด์ง ํ
์ด๋ธ(Page Table)์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ด ํ
์ด๋ธ์๋ ๊ฐ์ ํ์ด์ง ๋ฒํธ์ ์ค์ ๋ฉ๋ชจ๋ฆฌ ํ๋ ์ ๋ฒํธ ๊ฐ์ ๋งคํ ์ ๋ณด๊ฐ ์ ์ฅ๋๋ค. ํ๋ก์ธ์ค๊ฐ ๊ฐ์ ์ฃผ์์ ์ ๊ทผํ๋ฉด, MMU(Memory Management Unit)๊ฐ ํ์ด์ง ํ
์ด๋ธ์ ์ฐธ์กฐํ์ฌ
ํด๋น ๊ฐ์ ํ์ด์ง๊ฐ ์ด๋ ํ๋ ์์ ์ ์ฌ๋์ด ์๋์ง๋ฅผ ํ์ธํ๊ณ , ์ด๋ฅผ ๋ฐํ์ผ๋ก ๊ฐ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํํ๋ค.
์ด๋ฌํ ๊ณผ์ ์ ํตํด ํ๋ก์ธ์ค๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ๋ชฐ๋ผ๋, ์์ ์๊ฒ ์ฐ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ์กด์ฌํ๋ ๊ฒ์ฒ๋ผ ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์๊ฒ ๋๋ค.
๐ ํ์ด์ง(Paging)
ํ์ด์ง์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณ ์ ๋ ํฌ๊ธฐ์ ๋ธ๋ก ๋จ์๋ก ๋๋์ด ๊ด๋ฆฌํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ด๋ค.
์ด์์ฒด์ ๋ ํ๋ก๊ทธ๋จ์ ๊ฐ์ ์ฃผ์ ๊ณต๊ฐ์ ์ผ์ ํ ํฌ๊ธฐ์ ํ์ด์ง(Page)๋ก ๋๋๊ณ , ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ(RAM)๋ ๋์ผํ ํฌ๊ธฐ์ ํ๋ ์(Frame) ๋จ์๋ก ๋๋๋ค. ์ด๋, ํ๋ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ํ์ด์ง๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ๋ถ์ฐ์์ ์ผ๋ก ๋ฐฐ์น๋ ์ ์๋ค๋ ์ ์ ์ ์ํด์ผ ํ๋ค.
์ด์ ๊ฐ์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ฉด ์ธ๋ถ ๋จํธํ๊ฐ ๋ฐ์ํ์ง ์๋๋ค. ํ์ด์ง๋ผ๋ ์ผ์ ํ ํฌ๊ธฐ๋ก ์๋ฆฐ ํ๋ก์ธ์ค๋ค์ ๋ฉ๋ชจ๋ฆฌ์ ๋ถ์ฐ์์ ์ผ๋ก ํ ๋นํ ์ ์๋ค๋ฉด, ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ฒ๋ผ ํ๋ก์ธ์ค ๋ฐ๊นฅ์ ๋น ๊ณต๊ฐ์ด ์๊ธธ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
ํ์ด์ง ๊ธฐ๋ฒ์์๋ ์ค์ํ์ด ์ฌ์ฉ๋ ์ ์๋ค. ํ์ด์ง์ ์ฌ์ฉํ๋ ์์คํ ์์๋ ํ๋ก์ธ์ค ์ ์ฒด๊ฐ ์ค์ ์์/์ค์ ์ธ ๋๋ ๊ฒ์ด ์๋๋ผ ํ์ด์ง ๋จ์๋ก ์ค์ ์์/์ค์ ์ธ ๋๋ค. ํ์ด์ง ์์คํ ์์ ์ค์ ์์์ ํ์ด์ง ์์(page out), ์ค์ ์ธ์ ํ์ด์ง ์ธ(page in)์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
ํ์ด์ง ๋จ์๋ก ์ค์ ์์/์ค์ ์ธ ๋๋ค๋ ๊ฒ์ ํ๋ก์ธ์ค์ ์ผ๋ถ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋๊ณ , ์ผ๋ถ๋ ๋ณด์กฐ๊ธฐ์ต์ฅ์น์ ์ ์ฌ๋์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ด๋ฅผ ๋ฌ๋ฆฌ ๋งํ๋ฉด ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ธฐ ์ํด ์ ์ฒด ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋ ํ์๋ ์๋ค๋ ๊ฒ์ด๋ค.
CPU ์ ์ฅ์์ ๋ฐ๋ผ๋ณธ ๋ ผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๊ฐ ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ํด ์ ์์ผ๋ฉฐ, ํ์ด์ง์ ํตํด ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ํฐ ํฌ๊ธฐ์ ํ๋ก์ธ์ค ์คํ๋ ๊ฐ๋ฅํด์ง ๊ฒ์ด๋ค.
๐ ํ์ด์ง ํ ์ด๋ธ(Page Table)
๊ฐ ํ๋ก์ธ์ค๋ ๊ณ ์ ์ ํ์ด์ง ํ ์ด๋ธ์ ๊ฐ์ง๋ฉฐ, ์ด๋ ๊ฐ์ ํ์ด์ง ๋ฒํธ์ ํด๋น ํ์ด์ง๊ฐ ๋งคํ๋ ๋ฌผ๋ฆฌ ํ๋ ์ ๋ฒํธ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ค.
CPU๊ฐ ๊ฐ์ ์ฃผ์์ ์ ๊ทผํ ๋, ํ์ด์ง ํ ์ด๋ธ์ ํตํด ํด๋น ์ฃผ์๊ฐ ์ด๋ ํ๋ ์์ ๋งคํ๋์ด ์๋์ง๋ฅผ ํ์ธํ๊ณ , ๊ทธ์ ๋ฐ๋ผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํํ๋ค.
๐งฉ ๋จํธํ(Fragmentation)
โฝ๋ด๋ถ ๋จํธํ(Internal Fragmentation)
- ํ์ด์ง ๋ด์์ ์ฌ์ฉ๋์ง ์๋ ๋จ์ ๊ณต๊ฐ์ ์๋ฏธํ๋ค.
- ์๋ฅผ ๋ค์ด 4KB ํ์ด์ง์ 3.6KB๋ง ์ฌ์ฉ๋๋ค๋ฉด, ๋จ์ 0.4KB๊ฐ ๋ด๋ถ ๋จํธํ์ด๋ค.
โฝ์ธ๋ถ ๋จํธํ(External Fragmentation)
- ์ฌ์ฉ ๊ฐ๋ฅํ ์ ์ฒด ๋ฉ๋ชจ๋ฆฌ ์์ ์ถฉ๋ถํ์ง๋ง ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ถ์กฑํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ์ง ๋ชปํ๋ ์ํฉ์ ๋งํ๋ค.
๐ ์์ถ(compaction)
์์ถ์ ์ธ๋ถ ๋จํธํ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ธฐ๋ฒ์ผ๋ก, ๋ฉ๋ชจ๋ฆฌ ๋ด์ ํฉ์ด์ง ๋น ๊ณต๊ฐ์ ํ๋์ ํฐ ์ฐ์๋ ๊ณต๊ฐ์ผ๋ก ๋ง๋๋ ๋ฐฉ๋ฒ์ด๋ค.
์ด์์ฒด์ ๋ ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌํ๋ ํ๋ก์ธ์ค๋ค์ ์ฌ๋ฐฐ์น(relocation) ํ์ฌ, ์ค๊ฐ์ค๊ฐ ์๊ธด ๋น ๊ณต๊ฐ์ ์ ๊ฑฐํ๊ณ ํ๋์ ํฐ ์ฐ์๋ ๋น ๊ณต๊ฐ์ผ๋ก ํตํฉํ๋ค. ์ด๋ฅผ ํตํด, ์ดํ์ ํฐ ํ๋ก์ธ์ค๋ฅผ ์ํ ์ฐ์๋ ๊ณต๊ฐ์ ํ๋ณดํ ์ ์๊ฒ ๋๋ค.
โ ์ฅ์
- ์ธ๋ถ ๋จํธํ๋ฅผ ์ค์ฌ, ๋ ํฐ ํ๋ก์ธ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ ์ ์๋ค.
- ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐฉ์์์ ์ค์ํ ์ ์ฝ์ธ "์ฐ์๋ ๊ณต๊ฐ ๋ถ์กฑ" ๋ฌธ์ ๋ฅผ ์ํํ ์ ์๋ค.
โ ๏ธ ๋จ์
- ์ฌ๋ฐฐ์น ๊ณผ์ ์์ ์์คํ ์ ์ผ์ ์ ์ง๊ฐ ํ์ํ ์ ์์ผ๋ฉฐ, ์ด๋ก ์ธํด ์คํ ์ค์ธ ํ๋ก์ธ์ค๊ฐ ์ค๋จ๋ ์ ์๋ค.
- ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ๋ด์ฉ์ ๋ณต์ฌํ๊ฑฐ๋ ์ด๋ํ๋ ๋ฐ ๋ง์ CPU ์๊ฐ๊ณผ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ ์ ์๋ค.
๐ ํ์ด์ง ๊ธฐ๋ฒ์ ๋ด๋ถ ๋จํธํ๋ ๋ฐ์ํ ์ ์์ง๋ง, ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณ ์ ํฌ๊ธฐ๋ก ๋ถํ ํ๊ณ ์ฐ์๋ ๊ณต๊ฐ์ด ํ์ ์๊ธฐ ๋๋ฌธ์ ์ธ๋ถ ๋จํธํ๋ ๋ฐ์ํ์ง ์๋๋ค.
๐ ์ธ๊ทธ๋จผํ ์ด์ (Segmentation)
์ธ๊ทธ๋จผํ
์ด์
์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํฌ๊ธฐ๊ฐ ์๋ก ๋ค๋ฅธ ๋
ผ๋ฆฌ์ ๋จ์์ธ ์ธ๊ทธ๋จผํธ(Segment)๋ก ๋ถํ ํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ด๋ค.
์ด๋ ํ์ด์ง๊ณผ๋ ๋ฌ๋ฆฌ, ๊ณ ์ ๋ ํฌ๊ธฐ์ ํ์ด์ง๊ฐ ์๋ ์๋ฏธ ๊ธฐ๋ฐ์ ๋
ผ๋ฆฌ์ ๋ธ๋ก์ ๋จ์๋ก ์ฌ์ฉํ๋ค.
์ฆ, ํ๋์ ํ๋ก์ธ์ค๋ฅผ ์ฝ๋(Code), ๋ฐ์ดํฐ(Data), ์คํ(Stack) ๋ฑ๊ณผ ๊ฐ์ด ๋ ผ๋ฆฌ์ ์ผ๋ก ๊ตฌ๋ถ๋๋ ๋จ์๋ก ๋๋๊ณ , ๊ฐ ์ธ๊ทธ๋จผํธ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๋ค.
ํ ์ธ๊ทธ๋จผํธ๋ ์ฝ๋ ์์ญ(์ ์ผ๋ถ)์ผ ์๋ ์๊ณ , ๋ฐ์ดํฐ ์์ญ(์ ์ผ๋ถ)์ผ ์๋ ์๋ค.
์ด ๊ธฐ๋ฒ์ ์ธ๊ทธ๋จผํธ ํ ์ด๋ธ(Segment Table)์ ์ฌ์ฉํด ์ธ๊ทธ๋จผํธ์ ๋ ผ๋ฆฌ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋งคํํ๋ค.
๐งฉ ์ธ๊ทธ๋จผํธ ํน์ง
- ์ธ๊ทธ๋จผํธ๋ ํฌ๊ธฐ๊ฐ ์๋ก ๋ค๋ฅผ ์ ์์ผ๋ฉฐ, ํ๋ก๊ทธ๋จ ๋ด์์ ์๋ฏธ์ ๋ ๋ฆฝ์ ์ธ ๊ตฌ์ฑ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ถํ ๋๋ค.
- ์: ํจ์, ๋ฐฐ์ด, ์ ์ญ๋ณ์, ์คํ ๋ฑ์ ๊ฐ๊ฐ ๋ณ๊ฐ์ ์ธ๊ทธ๋จผํธ๋ก ๋๋์ด์ง ์ ์๋ค.
- ์ด๋ฌํ ๊ตฌ์กฐ๋ ํ๋ก๊ทธ๋๋จธ์ ๊ด์ ์ ๋ ๊ฐ๊น์ด ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ธ์ ์ ๊ณตํ๋ค.
๐งฉ ์ธ๊ทธ๋จผํธ ํ ์ด๋ธ
- ์ธ๊ทธ๋จผํ ์ด์ ์์๋ ์ฃผ์ ๋ณํ์ ์ํด ์ธ๊ทธ๋จผํธ ํ ์ด๋ธ(Segment Table)์ ์ฌ์ฉํ๋ค.
- ๊ฐ์ ์ฃผ์๋ <์ธ๊ทธ๋จผํธ ๋ฒํธ, ์คํ์ (offset)>์ ํํ๋ก ํํ๋๋ค.
- ์ธ๊ทธ๋จผํธ ํ
์ด๋ธ์๋ ๊ฐ ์ธ๊ทธ๋จผํธ์
- ๊ธฐ์ค(base): ์ธ๊ทธ๋จผํธ์ ์์ ๋ฌผ๋ฆฌ ์ฃผ์
- ํ๊ณ(limit): ์ธ๊ทธ๋จผํธ์ ํฌ๊ธฐ๊ฐ ์ ์ฅ๋์ด ์๋ค.
๐ ์ฃผ์ ๋ณํ ๊ณผ์
- CPU๊ฐ <์ธ๊ทธ๋จผํธ ๋ฒํธ, ์คํ์ > ํํ์ ์ฃผ์๋ฅผ ์์ฑํ๋ค.
- MMU๊ฐ ์ธ๊ทธ๋จผํธ ๋ฒํธ๋ฅผ ํตํด ๊ธฐ์ค(base) ์ฃผ์๋ฅผ ์กฐํํ๋ค.
- ์คํ์ ์ ๊ธฐ์ค ์ฃผ์์ ๋ํด ์ต์ข ๋ฌผ๋ฆฌ ์ฃผ์ ๊ณ์ฐํ๋ค.
- ์คํ์ ์ด ์ธ๊ทธ๋จผํธ ํฌ๊ธฐ๋ฅผ ์ด๊ณผํ๋ฉด ์ฃผ์ ์ค๋ฅ(trap) ๋ฐ์ํ๋ค.
๐งฉ์ธ๊ทธ๋จผํ ์ด์ ์ ์ฅ๋จ์
โ ์ฅ์
- ๋ด๋ถ ๋จํธํ ํด์
- ์ธ๊ทธ๋จผํธ๋ ํ์์ ๋ฐ๋ผ ํฌ๊ธฐ๋ฅผ ์ง์ ํ๋ฏ๋ก, ํ์ด์ง์ฒ๋ผ ๊ณ ์ ํฌ๊ธฐ์์ ๋ฐ์ํ๋ ๋ด๋ถ ๋จํธํ๊ฐ ์ค์ด๋ ๋ค.
- ๋ณดํธ ๋ฐ ๊ณต์ ๊ธฐ๋ฅ ์ฉ์ด
- ์ธ๊ทธ๋จผํธ ๋จ์๋ก ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ๊ฑฐ๋, ์ฝ๋ ์ธ๊ทธ๋จผํธ๋ฅผ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ํ ์ ์๋ค.
- ๋
ผ๋ฆฌ์ ๊ตฌ์กฐ ๋ฐ์
- ์ฝ๋, ๋ฐ์ดํฐ, ์คํ ๋ฑ ์๋ฏธ ์๋ ๋จ์๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ฏ๋ก, ๋๋ฒ๊น ๊ณผ ๊ตฌ์กฐ ์ดํด๊ฐ ์ฉ์ดํ๋ค.
- ์ค๋ณต ์ ๊ฑฐ
- ๋์ผํ ์ฝ๋ ์ธ๊ทธ๋จผํธ๋ฅผ ์ฌ๋ฌ ํ๋ก์ธ์ค์์ ํ ๋ฒ๋ง ๋ก๋ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ ๊ฐ๋ฅ
โ ๏ธ ๋จ์
- ์ธ๋ถ ๋จํธํ ๋ฐ์ ๊ฐ๋ฅ
- ์ธ๊ทธ๋จผํธ์ ํฌ๊ธฐ๊ฐ ๊ฐ๋ณ์ ์ด๊ธฐ ๋๋ฌธ์, ๋ฉ๋ชจ๋ฆฌ ์์ ์ ์ ํ ํฌ๊ธฐ์ ์ฐ์ ๊ณต๊ฐ์ด ๋ถ์กฑํด์ง๋ฉด ์ธ๋ถ ๋จํธํ๊ฐ ๋ฐ์ํ๋ค.
- ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋ ์คํ ์ธ๊ทธ๋จผํธ ์์ญ์์ ์ค๋ฒ ํ๋ก ๋ฐ์
- ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด ๊ฒน์น ์ ์์ด ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ธ๊ทธ๋จผํธ๋ ์คํ ์ค๋ฒ ํ๋ก๊ฐ ๋ฐ์ํ ์ธ๊ทธ๋จผํธ๋ฅผ ๋์คํฌ๋ก ์ค์ ์์ํด์ผ ํ๋ค.
- ์ฃผ์ ๊ณ์ฐ ๋ณต์ก์ฑ
- ์คํ์ ๊ฒ์ฆ ๋ฑ ์ถ๊ฐ ์ฐ์ฐ์ด ํ์ํ๋ฏ๋ก ํ๋์จ์ด ๊ตฌํ๊ณผ ๊ด๋ฆฌ๊ฐ ํ์ด์ง๋ณด๋ค ๋ณต์กํ ์ ์๋ค.
๐ ์๊ตฌ ํ์ด์ง(Demand Paging)
์๊ตฌ ํ์ด์ง(Demand Paging)์ ๋ง ๊ทธ๋๋ก, ํ์ํ ์์ ์๋ง ํ์ด์ง๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๋ ๋ฐฉ์์ด๋ค.
ํ๋ก๊ทธ๋จ ์คํ ์, ์ ์ฒด๋ฅผ ํ ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ์ง ์๊ณ , ์ฆ์ ํ์ํ ํ์ด์ง๋ง ๋จผ์ ์ ์ฌํด ์คํ์ ์์ํ๋ค. ์ดํ ์คํ ๋์ค ํ์ํด์ง๋ ํ์ด์ง๋ค์ ๊ทธ๋๊ทธ๋ ๋์คํฌ(๋ณด์กฐ ๊ธฐ์ต ์ฅ์น)์์ ๋ถ๋ฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๋ค.
์ด ๋ฐฉ์์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์คํ ์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ฉฐ, ํ ๋ฒ๋ ์ ๊ทผ๋์ง ์๋ ํ์ด์ง๋ ์์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ค์ง ์๊ธฐ ๋๋ฌธ์ ๋ถํ์ํ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ์ค์ผ ์ ์๋ค.
๋ํ, ์๊ตฌ ํ์ด์ง์ ์ง์ฐ๋ ๋ก๋ฉ(lazy loading)์ ๋ํ์ ์ธ ์์ด๋ฉฐ, ์ด๊ธฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์ด๊ณ ์์คํ ๋ถํ ์๋๋ฅผ ๊ฐ์ ํ๋ ๋ฐ์๋ ๋์์ด ๋๋ค.
๐ ํ์ด์ง ํดํธ(Page Fault)
ํ์ด์ง ๋ถ์ฌ(Page Fault)๋ ํ๋ก๊ทธ๋จ์ด ์ ๊ทผํ๋ ค๋ ํ์ด์ง๊ฐ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌํ์ง ์์ ๋ ๋ฐ์ํ๋ ํ์์ด๋ค.
์ด๋ CPU๋ ํ์ด์ง ํ ์ด๋ธ์ ์ฐธ์กฐํ์ฌ ํด๋น ํ์ด์ง๊ฐ ์ ํจํ์ง ์๋ค๋ ๊ฒ์ ํ์ธํ๊ณ , ์ด์์ฒด์ ๊ฐ ๋์คํฌ(๋ณดํต ์ค์ ์์ญ)์์ ํด๋น ํ์ด์ง๋ฅผ ๋ฉ๋ชจ๋ฆฌ๋ก ๊ฐ์ ธ์จ๋ค. ์ด๋ ํ์ด์ง๊ฐ ํด๋นํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์๋์ง๋ ํ์ด์ง ํ ์ด๋ธ๋ก ํ์ธํ ์ ์๋ค. ํ์ด์ง ํ ์ด๋ธ์ ํด๋น ํ๋ ์์ด ์กด์ฌํ๋ฉด v(valid) ๊ฐ์, ํ๋ ์์ด ์กด์ฌํ์ง ์๊ฑฐ๋ ์ ํจํ์ง ์์ ์ฃผ์ ๊ฐ์ด๋ฉด i(invalid) ๊ฐ์ ๋ฐํํ๋ค.
ํ์ด์ง ํดํธ๊ฐ ๋ฐ์ํ์ ๋ ์ฒ๋ฆฌ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ํ์ํ ํ์ด์ง๊ฐ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์๋์ง ์๋์ง ํ์ด์ง ํ
์ด๋ธ์์ ํ์ธํ๋ค.
- ํ์ด์ง ํดํธ๊ฐ ๋ฐ์ํ๋ฉด i๋ฅผ ๋ฐํํ๋ค.
- i๋ฅผ ๋ฐํํ๋ฉด OS๋ ์ฐธ์กฐํ๋ ค๋ ํ์ด์ง์ ์ฃผ์๊ฐ์ด ์ ํจํ์ง ์์์ง, ์๋๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋์ง ์์ ์์ญ์ธ์ง ํ๋จํ๋ค.
- ํ์ํ ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋์ง ์์ ์์ญ์ด๋ผ๋ฉด ๋์คํฌ์์ ํด๋น ์์ญ์ ์ฐพ๋๋ค.
- ๋์คํฌ์์ ํด๋น ํ์ด์ง ์์ญ์ ์ค์ ์ธํ๋ค.
- ์ด๋, ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋น์ด ์๋ ํ๋ ์(free frame)์ด ์์ผ๋ฉด ํ์ด์ง๋ฅผ ํด๋น ์์ญ์ ๋ฐ๋ก ๋ก๋ํ๋ค. ๋ง์ฝ ๋น์ด ์๋ ํ๋ ์์ด ์์ผ๋ฉด ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ(page replace algorithm)์ ํธ์ถํด ๊ธฐ์กด์ ๋ก๋๋ ํ์ด์ง๋ฅผ ๋์คํฌ๋ก ์ค์ ์์ํ ํ ์๋ก์ด ํ์ด์ง๋ฅผ ๋ก๋ํ๋ค.
- ํ์ด์ง ํ ์ด๋ธ์์ ์๋ก ๋ก๋ํ ํ์ด์ง์ ๊ฐ์ v๋ก ๋ณ๊ฒฝํ๋ค.
- ํ๋ก์ธ์ค๋ฅผ ๋ค์ ์คํํ๋ค.
ํ์ด์ง ๋ถ์ฌ๋ ์ ์์ ์ธ ํ์์ด์ง๋ง, ์ง๋์น๊ฒ ์์ฃผ ๋ฐ์ํ๋ฉด ๋์คํฌ I/O๊ฐ ๋์ด๋ ์์คํ ์ ์ฒด์ ์ฑ๋ฅ์ ์ ํ์ํฌ ์ ์๋ค.
ํ์ด์ง ํดํธ๊ฐ ๋๋ฌด ์์ฃผ ๋ฐ์ํ๋ ํ์์ ์ค๋์ฑ(thrashing)์ด๋ผ ๋ถ๋ฅด๋ฉฐ, ์์คํ ์ ์ฑ๋ฅ์ ๊ธ๊ฒฉํ ์ ํ์ํฌ ์ ์๋ค
๊ทน๋จ์ ์ธ ๊ฒฝ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ์ ํ์ด์ง๊ฐ ํ๋๋ ์ ์ฌ๋ผ์ ์๋ ์ํ์์๋ ํ๋ก์ธ์ค๋ฅผ ์คํ์ํฌ ์ ์๋ค. ์ด์์ฒด์ ์์ ๋ช ๋ น ํฌ์ธํฐ(instruction pointer)์ ๊ฐ์ ํ๋ก์ธ์ค์ ์ฒซ ๋ช ๋ น์ด๋ก ์ค์ ํ๋ ์๊ฐ, ์ด ๋ช ๋ น์ด ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌํ์ง ์๋ ํ์ด์ง์ ์์ผ๋ฏ๋ก, ํ์ด์ง ํดํธ๋ฅผ ๋ฐ์์ํจ๋ค. ํ์ด์ง๊ฐ ์ ์ฌ๋๊ณ ๋๋ฉด ํ๋ก์ธ์ค๋ ์ํ์ ๊ณ์ํ๋๋ฐ, ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ๋ ๋ชจ๋ ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ฌ ๋๊น์ง ํ์ํ ๋๋ง๋ค ํ์ด์ง ํดํธ๊ฐ ๋ฐ์ํ๋ค. ์ผ๋จ ํ์ํ ๋ชจ๋ ํ์ด์ง๊ฐ ์ ์ฌ๋๊ณ ๋๋ฉด ๋ ์ด์ ํ์ด์ง ํดํธ๊ฐ ๋ฐ์ํ์ง ์๋๋ค. ์ด๊ฒ์ด ์์ ์๊ตฌ ํ์ด์ง(pure demand paging)์ด๋ค. ์ฆ. ์ด๋ค ํ์ด์ง๊ฐ ํ์ํด์ง๊ธฐ ์ ์๋ ๊ฒฐ์ฝ ๊ทธ ํ์ด์ง๋ฅผ ๋ฉ๋ชจ๋ฆฌ๋ก ์ ์ฌํ์ง ์๋ ๋ฐฉ๋ฒ์ด๋ค.
๐ TLB(Translation Lookaside Buffer)
- TLB๋ MMU ๋ด๋ถ ๋๋ ๊ทธ ๊ทผ์ฒ์ ์์นํ ์ํ ๊ณ ์ ์บ์ ๋ฉ๋ชจ๋ฆฌ์ด๋ค.
- ์์ฃผ ์ฐธ์กฐ๋๋ ๊ฐ์ ์ฃผ์ ↔ ๋ฌผ๋ฆฌ ์ฃผ์ ๋งคํ ์ ๋ณด๋ฅผ ์ ์ฅํ์ฌ, ์ฃผ์ ๋ณํ ์๋๋ฅผ ํฅ์ ์ํค๋ ์ญํ ์ ํ๋ค.
- TLB์ ๋งคํ ์ ๋ณด๊ฐ ์์ผ๋ฉด ํ์ด์ง ํ ์ด๋ธ ์ ๊ทผ ์์ด ๋น ๋ฅด๊ฒ ์ฃผ์ ๋ณํ์ด ๊ฐ๋ฅํ๋ฉฐ, ์ด๋ฅผ TLB ํํธ๋ผ๊ณ ํ๋ค.
- ๋ฐ๋๋ก ์ ๋ณด๊ฐ ์์ ๊ฒฝ์ฐ๋ TLB ๋ฏธ์ค๋ผ ํ๋ฉฐ, ์ด๋๋ ํ์ด์ง ํ ์ด๋ธ์ ์ฐธ์กฐํด์ผ ํ๋ค.
โฝ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ, MMU์ TLB์ ๊ด๊ณ
- ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ๊ฐ ํ๋ก์ธ์ค์ ๋ ๋ฆฝ์ ์ธ ์ฃผ์ ๊ณต๊ฐ์ ์ ๊ณตํ๊ณ , ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ํฐ ํ๋ก๊ทธ๋จ๋ ์คํํ ์ ์๊ฒ ํด์ฃผ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ด๋ค.
- MMU๋ ์ด๋ฌํ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ๊ฒฝ์์ ๊ฐ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋งค์นญํ๋ ์ญํ ์ ํ๋ค.
- TLB๋ MMU์ ์ฑ๋ฅ์ ๋ณด์ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ฉฐ, ์์ฃผ ์ฌ์ฉ๋๋ ์ฃผ์ ๋ณํ ๊ฒฐ๊ณผ๋ฅผ ์บ์ฑํ์ฌ ๋ณํ ์๋๋ฅผ ๋์ธ๋ค.
๐ ์ด ์ธ ์์๋ ํจ๊ป ์๋ํ์ฌ ํจ์จ์ ์ด๊ณ ์์ ์ ์ธ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์คํ ์ ๊ตฌ์ฑํ๋ค.
๐ญ Q&A
ํ์ด์ง์ ์ฌ์ฉํ๋ฉด ์ธ๋ถ ๋จํธํ๋ ํด๊ฒฐํ ์ ์์ง๋ง ๋ด๋ถ ๋จํธํ๋ผ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค. ๋ด๋ถ ๋จํธํ์ ์ธ๋ถ ๋จํธํ ์ค, ์ด์์ฒด์ ์ ์ ์ฅ์์๋ ๋ญ๊ฐ ๋ ๋ฌธ์ ์ผ๊น ? ๐ค
๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด, ์ด์์ฒด์ ๋ ์ฐ์๋ ํฐ ๊ณต๊ฐ ํ๋ณด๋ค ์ด๋ ค์ด ์ธ๋ถ ๋จํธํ๋ณด๋ค๋, ์ผ๋ถ ๊ณต๊ฐ์ด ๋จ๋๋ผ๋ ๋ด๋ถ ๋จํธํ๋ฅผ ๊ฐ์ํ๋ ํ์ด์ง ๋ฐฉ์์ ๋ ์ ํธํ๋ค.
์ธ๋ถ ๋จํธํ์ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋จ์๋ ์ฐ์์ ์ธ ๊ณต๊ฐ์ด ์์ผ๋ฉด ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์๋ค๋ ์ ์ด ์น๋ช ์ ์ด๋ค. ๋ฌผ๋ก ๋ฉ๋ชจ๋ฆฌ ์์ถ(compaction)์ ํตํด ์ฐ์๋ ๋น ๊ณต๊ฐ์ ๋ง๋ค ์ ์์ง๋ง, ์ด ๊ณผ์ ์ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ ์ค์ ๋ก ์ด๋์์ผ์ผ ํ๋ฏ๋ก ์๊ฐ์ ์ผ๋ก ๋นํจ์จ์ ์ด๊ณ , ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ ์ผ์ ์ค์งํ๊ณ ๋ณต์ฌํ ๋ค ๋ค์ ์คํํ๋ ๋ฑ์ ์ถ๊ฐ์ ์ CPU ์์ ๋ญ๋น๋ ๋ฐ์ํ๋ค.
์ด๋, ์์ถ์ด ํญ์ ๊ฐ๋ฅํ ๊ฒ๋ ์๋๋ค. ์ฌ๋ฐฐ์น๊ฐ ์ด์ ๋ธ ๋๋ ์ ์ฌ ์์ ์ ์ ์ผ๋ก ํํด์ง๋ค๋ฉด, ์์ถ์ ์คํ๋ ์ ์๋ค.
์์ถ์ ํ๋ก์ธ์ค๋ค์ ์ฌ๋ฐฐ์น๊ฐ ์คํ ์๊ฐ์ ๋์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ ๊ฒฝ์ฐ์๋ง ๊ฐ๋ฅํ๋ค. ์ฃผ์๊ฐ ๋์ ์ผ๋ก ์ฌ๋ฐฐ์นํ ์ ์๋ค๋ฉด, ์ฌ๋ฐฐ์น ์์ ์ ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์๋ก์ด ์์น์ ์ฎ๊ธฐ๊ณ ์ ์์น๋ฅผ ๋ฐ์ํ๊ธฐ ์ํด ๊ธฐ์ค ๋ ์ง์คํฐ๋ง ๋ณ๊ฒฝํ๋ฉด ์๋ฃ๋๋ค.
๋ํ, ์์ถ์ด ๊ฐ๋ฅํ๋๋ผ๋ ๊ทธ ๋น์ฉ์ ๊ฒํ ํด ๋ณด์์ผ ํ๋ค. ๊ฐ์ฅ ๋จ์ํ ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ๋จ์ํ ๋ชจ๋ ํ๋ก์ธ์ค๋ฅผ ํ ์ชฝ ๋์ผ๋ก ์ด๋์์ผ ๋ชจ๋ ๊ฐ์ฉ ๊ณต๊ฐ์ด ๊ทธ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ๋ณด์ด๋๋ก ํ๋ ๋ฐฉ๋ฒ์ด์ง๋ง, ์ด ๋ฐฉ๋ฒ์ ๋น์ฉ์ด ๋งค์ฐ ๋ง์ด ๋ ๋ค.
๋ฐ๋ผ์ ์ด์์ฒด์ ๋ ์ธ๋ถ ๋จํธํ๋ฅผ ์์ ๊ณ , ๋ด๋ถ ๋จํธํ๋ฅผ ๊ฐ์ํ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ธ ์ ํ์ด๋ค.
๐ reference
'Computer Science' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] ์ด์์ฒด์ (OS, Operating System) (0) | 2025.03.24 |
---|---|
[Spring] JPA์ Spring Data JPA ์ฐจ์ด (0) | 2025.03.24 |
Java (0) | 2024.08.30 |
Spring & Spring Boot (0) | 2024.08.15 |