๐ย ํด๋น ์ค์ต์ ํตํด ์ง์ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น๊ธฐ(storage allocator)๋ฅผ ๊ตฌํํ๋ค.
๐ย Malloc, Free, Realloc์ ๊ตฌํํ๋ค.
๐ย mdriver๊ฐ memory ultilization(๋ฉ๋ชจ๋ฆฌ ์ด์ฉ๋), throughout(์ฒ๋ฆฌ๋) ์ธก๋ฉด์์ ํ์ง์ ํ๊ฐํ๋ค.
MAXN
์ด๋ผ๋ ์์์ ๊ฐ์ผ๋ก ํฌ๊ธฐ๋ฅผ ์ค์ ํ์๋ค๊ณ ๊ฐ์ ํ์.MAXN
๋ณด๋ค ๋ ํฐ ํฌ๊ธฐ N
๊ฐ์ ํ์ผ์ ์ฝ์ผ๋ ค๊ณ ํ๋ค๋ฉด, error
๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ค. (11-12ํ ์ฐธ๊ณ )N
์ ๊ฐ์ ์ ์ ์์ ๋ ๋ฐฐ์ด์ ๋ฐํ์์ ๋์ ์ผ๋ก ํ ๋นํ๋ ์ต๋ ํฌ๊ธฐ๋ฅผ ๊ฐ์ฉํ ๊ฐ์๋ฉ๋ชจ๋ฆฌ์ ์์ ์ํด์๋ง ์ ํ๋๋๋ก ํ๋ ๋ฐฉ๋ฒ์ด ํ์ํ ๊ฒ์ด๋ค.Dynamic memory allocator
์ ์ฑ๋ฅ์ ์งํ๋ memory ultilization(๋ฉ๋ชจ๋ฆฌ ์ด์ฉ๋)
, throughout(์ฒ๋ฆฌ๋)
์ด๋ค.memory utilization
: heap segment
๋ฅผ ๋ญ๋นํ๋ ๊ณต๊ฐ ์์ด ์ฆ fragmentation(๋จํธํ)
๋ฅผ ์ต์ํํ์ฌ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ต๋ํ ์ ์ฅ(write)ํ ์ ์๋๊ฐ์ด๋ค.throughout
: ์ผ๋ง๋ ๋น ๋ฅด๊ฒ application
์ malloc
, free
, realloc
์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋๊ฐ์ ๋ฌธ์ ์ด๋ค.trade-off
, ์์ถฉํ๋ ๊ด๊ณ์ด๋ฏ๋ก ์ ์ ํ ๊ท ํ์ ๋ง์ถ์ด์ผ ํ๋ค.implicit
๋ฐฉ์์ ์๋ก ๋ค๋ฉด throughout
์ ๋์ด๊ธฐ ์ํด์ header
์ footer
์ size
์ allocated
์ ๊ฐ์ ์ ๋ณด๋ฅผ ๋ด๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ํ์ฉํ์ฌ application
์ด ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ค. ๋ฐ๋ฉด ์ด๋ฌํ overhead
๋ฐ์ดํฐ๋ ๊ผญ ํ์ํ ์ ๋ณด๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ๋ญ๋นํ๋ ๊ณต๊ฐ์ ํด๋น๋๊ณ , ์ด๋ฌํ ์ ์ผ๋ก ์ธํด memory utilization
์ด ๋ฎ์์ง๋ค.ํด๋น ๊ธ์ ์ ๊ฐ ์ดํดํ ์์ค์ผ๋ก ์์ฑ๋ ๊ธ์ด๋ฏ๋ก ์ค๋ฅ๊ฐ ์์ ์ ์์์ ๋ฐํ