๋ฉ๋ชจ๋ฆฌ ๋จํธํ(Memory Fragmentation)
๋ฉ๋ชจ๋ฆฌ ๋จํธํ๋ ๋ฉ๋ชจ๋ฆฌ์ ๊ณต๊ฐ์ด ์์ ์กฐ๊ฐ์ผ๋ก ๋๋์ด์ ธ ์ถฉ๋ถํ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์์๋ ์์คํ ์ด ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํ ์ ์๋ ์ํ๋ฅผ ์๋ฏธํฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ๋จํธํ๊ฐ ๋ฐํํ๋ ์์ธ์ ๋ฐ๋ผ ‘๋ด๋ถ ๋จํธํ’์ ‘์ธ๋ถ ๋จํธํ’๋ก ๊ตฌ๋ถํ ์ ์์ต๋๋ค.
๋ด๋ถ ๋จํธํ (Internal Fragmentation)
: ๋ด๋ถ ๋จํธํ๋ ํ์ํ ์๋ณด๋ค ๋ ํฐ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น์ด ๋์ด์ ํ ๋น ๋ ๋ฉ๋ชจ๋ฆฌ ๋ด๋ถ์ ์ฌ์ฉํ์ง ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ฐ์ํ ์ํฉ์ ๋ปํฉ๋๋ค.
์ ๊ทธ๋ฆผ์์์ ๊ฐ์ด 50KB๋ฅผ ํ ๋น ๋ฐ์ ํ๋ก์ธ์ค๊ฐ 40KB ๋ฐ์ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด 10KB๋งํผ์ ๋ด๋ถ ๋จํธํ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ธ๋ถ ๋จํธํ (External Fragmentation)
: ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋๊ณ ํด์ ๋๋ ์์
์ด ๋ฐ๋ณต๋ ๋, ์์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ค๊ฐ์ค๊ฐ ์๊ฒจ๋ฉ๋๋ค. ์ด๋ฌํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ๋ค์ด ๋ง์์ง๋ฉด์ ์ด ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ถฉ๋ถํ์ง๋ง ์ค์ ๋ก ํ ๋นํ ์ ์๋ ์ํฉ์ ์ธ๋ถ ๋จํธํ๋ผ๊ณ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ฒ์ ๋ฉ๋ชจ๋ฆฌ์ 50KBํฌ๊ธฐ์ ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ฉ๋๋ค. ์ด์ด์ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฐ์์ ์ผ๋ก ํ ๋น๋ฉ๋๋ค. ์ดํ, 50KB ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๋ฉด ๊ทธ ์๋ฆฌ์ 50KB๋งํผ์ ๊ณต๊ฐ์ด ์๊ธด๋ค. ๊ทธ๊ณณ์ ๋ค์ 40KBํฌ๊ธฐ์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ํ ๋น๋๋ฉด 10KB๋งํผ์ ๋น๊ณต๊ฐ์ด ์๊น๋๋ค. ์ด๋ฐ ๊ณผ์ ์ด ๋ฌด์ํ ๋ฐ๋ณต๋๋ฉด ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์์ ํฌ๊ธฐ์ ๋น๊ณต๊ฐ์ด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ฌ์ด์ ์๊ธฐ๋ ์ธ๋ถ ๋จํธํ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ๋จํธํ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ฐฉ๋ฒ
1. ํ์ด์ง ๊ธฐ๋ฒ (Paging)
(๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ, ์ธ๋ถ ๋จํธํ ํด๊ฒฐ, ๋ด๋ถ ๋จํธํ๋ ์ฌ์ ํ ์กด์ฌ)
ํ์ด์ง ๊ธฐ๋ฒ์ ๊ณ ์ ๋ถํ ๋ฐฉ์์ ์ด์ฉํ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ผ๋ก, ๋ฌผ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ ๊ฐ์ ํฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ผ๋ก ๋๋์ด ์ฌ์ฉํฉ๋๋ค. ์ด๋ ๊ฐ์ ์ฃผ์๋ ํ๋ก์ธ์ค ์ ์ฅ์์ ๋ฐ๋ผ๋ณธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ผ๋ก ํญ์ 0๋ฒ์ง๋ถํฐ ์์ํฉ๋๋ค. ๊ฐ์ ์ฃผ์์ ๋ถํ ๋ ๊ฐ ์์ญ์ ํ์ด์ง๋ผ๊ณ ํ๋ฉฐ, ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ ์์ญ์ ํ๋ ์์ด๋ผ๊ณ ํฉ๋๋ค. ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๋จ์๋ก ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ธฐ ๋๋ฌธ์ ํ์ด์ง ํฌ๊ธฐ์ ํ๋ ์ ํฌ๊ธฐ๋ ๊ฐ์ต๋๋ค.
ํ์ด์ง์ ํ๋ ์์ ๋์ ์ํค๋ ๊ณผ์ ์ page mapping์ด๋ผ๊ณ ํ๋ฉฐ, ์ด๋ฅผ ์ํด paging table์ด ์์ต๋๋ค. ํ์ด์ง ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ฉด ์ฐ์์ ์ด์ง ์์ ๊ณต๊ฐ๋ ํ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ์ธ๋ถ ๋จํธํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๋์ ํญ์ ํ์ด์ง ๋จ์์ ๋ง์ถฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฝ ์ฑ์ ์ธ ์ ์์ผ๋ฏ๋ก ๋ด๋ถ ๋จํธํ ๋ฌธ์ ๋ ์ฌ์ ํ ์กด์ฌํฉ๋๋ค. (ํ์ด์ง ๋จ์๋ฅผ ์๊ฒํ๋ฉด ๋ด๋ถ ๋จํธํ ๋ฌธ์ ๋ ํด๊ฒฐํ ์ ์์ง๋ง Page mapping ๊ณผ์ ์ด ๋ง์์ง๋ฏ๋ก ์คํ๋ ค ํจ์จ์ด ๋จ์ด์ง๋๋ค.)
2. ์ธ๊ทธ๋ฉํ ์ด์ ๊ธฐ๋ฒ (Segmentation)
(๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ, ๋ด๋ถ ๋จํธํ ํด๊ฒฐ, ์ธ๋ถ๋จํธํ ์กด์ฌ)
ํ์ด์ง ๊ธฐ๋ฒ์์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ผ์ ํ ํฌ๊ธฐ์ ๋ธ๋ก(ํ์ด์ง)๋ก ๋ถํ ํ๋ค๋ฉด, ์ธ๊ทธ๋จผํ ์ด์ ๊ธฐ๋ฒ์์๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ก ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ ๋ ผ๋ฆฌ์ ๋จ์์ธ ์ธ๊ทธ๋จผํธ๋ก ๋ถํ ํด์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํ๊ณ , ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ก ๋ณํํฉ๋๋ค.
๊ฐ ์ธ๊ทธ๋จผํธ๋ ์ฐ์์ ์ธ ๊ณต๊ฐ์ ์ ์ฅ๋์ด ์์ต๋๋ค. ์ธ๊ทธ๋จผํธ๋ค์ ํฌ๊ธฐ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ฏธ๋ฆฌ ๋ถํ ํด ๋ ์ ์๊ณ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋ ๋ ๋น ๊ณต๊ฐ์ ์ฐพ์ ํ ๋นํฉ๋๋ค.
ํ์ด์ง์ ๋ง์ฐฌ๊ฐ์ง๋ก mapping์ ์ํด segment table์ด ํ์ํฉ๋๋ค. table์๋ ๊ฐ ์ธ๊ทธ๋จผํธ ํญ๋ชฉ๋ณ๋ก ์ธ๊ทธ๋จผํธ ์์ ์ฃผ์์ ์ธ๊ทธ๋จผํธ์ ๊ธธ์ด ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
ํ๋ก์ธ์ค๊ฐ ์๊ตฌํ๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ์ ๋ง๊ฒ ํ ๋นํ๊ธฐ ๋๋ฌธ์ ๋ด๋ถ ๋จํธํ๋ ์ผ์ด๋์ง ์์ง๋ง,
์ค๊ฐ์ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ๋ฉด ์๊ธฐ๋ ๊ตฌ๋ฉ, ์ฆ, ์ธ๋ถ ๋จํธํ ๋ฌธ์ ๋ ์ฌ์ ํ ์กด์ฌํฉ๋๋ค.
3. ๋ฉ๋ชจ๋ฆฌ ํ (Memory Pool)
ํ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ ํ ํฌ๊ธฐ, ๊ฐ์๋งํผ ์ฌ์ฉ์๊ฐ ์ง์ ์ง์ ํ์ฌ ๋ฏธ๋ฆฌ ํ ๋น๋ฐ์ ํ์ํ ๋๋ง๋ค ์ฌ์ฉํ๊ณ ๋ฐ๋ฉํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ํ ์์ด ๋์ ํ ๋น๊ณผ ํด์ ๋ฅผ ๋ฐ๋ณตํ๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ๋๋คํ (์ค์ ๋ก๋ ์๊ณ ๋ฆฌ์ฆ์ ์ํ) ์์น์ ํ ๋น๊ณผ ํด์ ๊ฐ ๋ฐ๋ณต๋๋ฉด์ ๋จํธํ๋ฅผ ์ผ์ผํฌ ์ ์๊ฒ ์ง๋ง, ๋ฏธ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํด๋๊ณ ๊ฐ์ ธ๋ค ์ฐ๊ณ ๋ฐ๋ฉํ๊ธฐ ๋๋ฌธ์ ํ ๋น๊ณผ ํด์ ๋ก ์ธํ ์ธ๋ถ ๋จํธํ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
๋ํ ํ์ํ ํฌ๊ธฐ๋งํผ ํ ๋น ํ๊ธฐ ๋ฌธ์ ๋ด๋ถ ๋จํธํ ๋ํ ์๊ธฐ์ง ์์ต๋๋ค.
ํ์ง๋ง ๋ฉ๋ชจ๋ฆฌ ๋จํธํ๋ก ์ธํ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋๋ณด๋ค ๋ฉ๋ชจ๋ฆฌ ํ์ ๋ง๋ค์์ง๋ง ์ฐ์ง ์์์ ๋ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ์ฌํ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ํ ๋น, ํด์ ๊ฐ ์ฆ์ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ฉด ํจ๊ณผ์ ์ ๋๋ค.
๊ตฌํ ๋ฐฉ๋ฒ
- ํฐ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก(ํ์ด์ง)์ ํ์ผ๋ก ๋ถํฐ ํ ๋น
- ํ ๋น ๋ฐ์ ํ์ด์ง๋ฅผ ๊ฐ ๊ฐ์ฒด์ ํฌ๊ธฐ์ ๋ธ๋ก์ผ๋ก ๋๋
- ๊ฐ ๊ฐ์ฒด๋ฅผ ์ํ ๋ธ๋ก์ ์์ฐจ์ ์ผ๋ก ๋งํฌ
- ์ด ๋ ํ ์์ ์์ ํ ๋นํ ๋ธ๋ก์ ํน์ ํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํค๊ฒ ํจ
- ๋ฉ๋ชจ๋ฆฌ ์์ฒญ์ด ์๊ธฐ๋ฉด ํ์ฌ ํค๋ ํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํค๋ ๋ธ๋ก์ ๋๋ ค์ค๋ค.
- ํ ๋น์ด ์ผ์ด๋ ํ ํค๋ ํฌ์ธํฐ๋ ํ ๋น ์ง์ ์ ๊ฐ๋ฆฌํค๋ ๋ธ๋ก์ด ๊ฐ๋ฆฌํค๋ ๋ธ๋ก์ ๊ฐ๋ฆฌํจ๋ค.
- ์ฌ์ฉ๋๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํด์ ๋์ด ๋ฉ๋ชจ๋ฆฌ ํ๋ก ๋์์ฌ ๊ฒฝ์ฐ ํค๋ ํฌ์ธํฐ๋ ๊ทธ ๋ธ๋ก์ ๊ฐ๋ฆฌํค๊ณ ๋ฐฉ๊ธ ์ ๊น์ง ํค๋ ํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํค๋ ๋ธ๋ก์ ๋์์จ ๋ธ๋ก์ ๋ค์ ํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํค๊ฒ ํ๋ค
์ฐธ๊ณ ์๋ฃ:
- https://jeong-pro.tistory.com/91
- ์ฝ๊ฒ ๋ฐฐ์ฐ๋ ์ด์์ฒด์ (์กฐ์ฑํธ, ํ๋น๋ฏธ๋์ด)
'๐ฅ๏ธ Study Note' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฉ๋ชจ๋ฆฌ ํ ๊ตฌํ (C++) (0) | 2023.04.07 |
---|