๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์šด์˜์ฒด์ œ

์šด์˜์ฒด์ œ์˜ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น(Memory Allocation)

by ์„œ์•„๋ž‘๐Ÿ˜ 2023. 11. 6.

 

 

๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น(Memory Allocation)

์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์ƒ๊ฐํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฐฉ์‹์€ ์—ฐ์† ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์— ํ”„๋กœ์„ธ์Šค๋“ค์ด ์—ฐ์†์ ์œผ๋กœ ๋ฐฐ์น˜๋˜๋Š” ์ƒํ™ฉ์ด์ฃ .

 

 

ํ•˜์ง€๋งŒ ์—ฐ์† ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์—๋Š” ์—ฌ๋Ÿฌ ๋ฌธ์ œ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์€ ๋ฐ”๋กœ ์ด์–ด์„œ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋œ ํ”„๋กœ์„ธ์Šค๋“ค ์ค‘์—๋Š” ํ˜„์žฌ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ”„๋กœ์„ธ์Šค๋“ค์„ ์ž„์‹œ๋กœ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜ ์ผ๋ถ€๋กœ ์ซ“์•„๋‚ด๊ณ , ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ธด ๋นˆ ๊ณต๊ฐ„์— ์ƒˆ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ ์žฌํ•˜์—ฌ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์„ ์Šค์™€ํ•‘(Swapping)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๋ณด์กฐ๊ธฐ์–ต ์žฅ์น˜์— ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์ ์žฌํ•˜๋Š” ์ผ๋ถ€ ์˜์—ญ์„ ์Šค์™‘ ์˜์—ญ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹คํ–‰ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜๋Š” ๊ฒƒ์„ ์Šค์™‘ ์ธ, ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๋Š” ์Šค์™‘ ์•„์›ƒ์ž…๋‹ˆ๋‹ค. ์Šค์™€ํ•‘์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋Š” ํ•œ์ •์ ์ธ๋ฐ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์š”๊ตฌํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ํฌ๊ธฐ๊ฐ€ ํฐ ๊ฒฝ์šฐ์—๋„ ํ”„๋กœ์„ธ์Šค๋“ค์„ ๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๊ฒ ์ฃ .

 

 

๊ฒ€์€์ƒ‰ ๋ถ€๋ถ„์€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ ์žฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ

์ด์ฒ˜๋Ÿผ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์š”๊ตฌํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ํฌ๊ธฐ๊ฐ€ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ณด๋‹ค ํฌ๋”๋ผ๋„ ๋ชจ๋‘ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šค์™‘์˜์—ญ์˜ ํฌ๊ธฐ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด free, top ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

 

๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๊ทœ์น™

๊ทธ๋Ÿฌ๋ฉด ํ”„๋กœ์„ธ์Šค๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ๋นˆ ๊ณต๊ฐ„์ด ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ์„ ๋•Œ ์–ด๋””์— ๋ฐฐ์น˜๋˜์–ด์•ผ ํ• ๊นŒ์š”? ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๊ทœ์น™์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ ์ตœ์ดˆ ์ ํ•ฉ, ์ตœ์  ์ ํ•ฉ, ์ตœ์•… ์ ํ•ฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

์œ„ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ 20MB ํฌ๊ธฐ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ ์žฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ(๋นˆ ๊ณต๊ฐ„์€ A, B, C) ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๊ทœ์น™์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜๋˜๋Š” ์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์™ผ์ชฝ๋ถ€ํ„ฐ ์ตœ์ดˆ ์ ํ•ฉ, ์ตœ์  ์ ํ•ฉ, ์ตœ์•… ์ ํ•ฉ ๊ฒฐ๊ณผ

์ตœ์ดˆ ์ ํ•ฉ(First Fit)

์ตœ์ดˆ ์ ํ•ฉ์€ ์šด์˜์ฒด์ œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ๋นˆ ๊ณต๊ฐ„์„ ์ˆœ์„œ๋Œ€๋กœ ๊ฒ€์ƒ‰ํ•˜๋‹ค๊ฐ€ ์ ์žฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์„ ๋ฐœ๊ฒฌํ•˜๋ฉด ๊ทธ ๊ณต๊ฐ„์— ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฐ”๋กœ ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์žฅ์ ์€ ๊ฒ€์ƒ‰์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๊ณ  ๋น ๋ฅธ ํ• ๋‹น์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ตœ์ดˆ ์ ํ•ฉ์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์œ„์—์„œ ๋ถ€ํ„ฐ ๋‚ด๋ ค์˜ค๋‹ค๊ฐ€ ๋นˆ๊ณต๊ฐ„ A๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ๋งŒ๋‚ฌ๊ณ  ์ ์žฌ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋ฐ”๋กœ ๋นˆ๊ณต๊ฐ„ A์— ์ ์žฌํ•˜๋Š” ๋ชจ์Šต์ž…๋‹ˆ๋‹ค.

์ตœ์  ์ ํ•ฉ(Best Fit)

์ตœ์  ์ ํ•ฉ์€ ์šด์˜์ฒด์ œ๊ฐ€ ๋นˆ ๊ณต๊ฐ„์„ ๋ชจ๋‘ ๊ฒ€์ƒ‰ํ•ด๋ณธ ๋’ค, ์ ์žฌ ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ์ž‘์€ ๊ณต๊ฐ„์— ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์ตœ์  ์ ํ•ฉ์—์„œ๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ๋นˆ ๊ณต๊ฐ„์„ ๋ชจ๋‘ ๊ฒ€์ƒ‰ํ•ด๋ณธ ๊ฒฐ๊ณผ, ์ ์žฌ ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ์ž‘์€ ๊ณต๊ฐ„์ด C์ด๊ธฐ ๋•Œ๋ฌธ์— ๋นˆ ๊ณต๊ฐ„ C์— ํ• ๋‹น๋˜๋Š” ๋ชจ์Šต์ž…๋‹ˆ๋‹ค. ์ตœ์ ์ ํ•ฉ์€ ๊ฒ€์ƒ‰ ์‹œ๊ฐ„์€ ๋Š˜์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™”๋ฅผ ์ตœ์†Œ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์•… ์ ํ•ฉ(Worst Fit)

์ตœ์•… ์ ํ•ฉ์€ ์šด์˜์ฒด์ œ๊ฐ€ ๋นˆ ๊ณต๊ฐ„์„ ๋ชจ๋‘ ๊ฒ€์ƒ‰ํ•ด๋ณธ ๋’ค, ์ ์žฌ ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ํฐ ๊ณต๊ฐ„์— ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ตœ์  ์ ํ•ฉ๊ณผ ๋ฐ˜๋Œ€์˜ ๊ฐœ๋…์ด์ฃ .

์ตœ์•… ์ ํ•ฉ์—์„œ๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ๋นˆ ๊ณต๊ฐ„์„ ๋ชจ๋‘ ๊ฒ€์ƒ‰ํ•ด๋ณธ ๊ฒฐ๊ณผ, ์ ์žฌ ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ํฐ ๊ณต๊ฐ„์ด B์ด๊ธฐ ๋•Œ๋ฌธ์— ๋นˆ ๊ณต๊ฐ„ B์— ํ• ๋‹น๋˜๋Š” ๋ชจ์Šต์ž…๋‹ˆ๋‹ค. ์ตœ์•…์ ํ•ฉ์€ ๊ฒ€์ƒ‰ ์‹œ๊ฐ„๊ณผ ๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™” ๋ชจ๋‘ ํฐ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

 

 

 

์™ธ๋ถ€ ๋‹จํŽธํ™”

์‚ฌ์‹ค ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์—ฐ์†์ ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๋Š” ์—ฐ์† ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์•„๋‹™๋‹ˆ๋‹ค. ์—ฐ์† ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์€ ์™ธ๋ถ€ ๋‹จํŽธํ™”(External Fragmentation) ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์™ธ๋ถ€ ๋‹จํŽธํ™”๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์ด ์‹คํ–‰๋˜๊ณ  ์ข…๋ฃŒ๋˜๊ธฐ๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์ด์— ๋นˆ ๊ณต๊ฐ„์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.

 

๋นˆ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์€ ์ด 50MB์ง€๋งŒ 50MB์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ ์žฌํ•˜์ง„ ๋ชปํ•ฉ๋‹ˆ๋‹ค

 

๋ฉ”๋ชจ๋ฆฌ ๋‚ด์˜ ์—ฌ๋Ÿฌ ์ž‘์€ ์กฐ๊ฐ๋“ค๋กœ ๋‚˜๋‰˜์–ด์ง„ ํ”„๋ฆฌ ์ŠคํŽ˜์ด์Šค(free space)๊ฐ€ ์กด์žฌํ•˜๊ณ , ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰์„ ์œ„ํ•ด ํ•„์š”ํ•œ ํฐ ๋ธ”๋ก์„ ํ• ๋‹นํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๊ทธ ๋ธ”๋ก์„ ๋งŒ๋“ค์–ด๋‚ผ ์ถฉ๋ถ„ํ•œ ์—ฐ์†๋œ ๊ณต๊ฐ„์ด ์—†๋Š” ๊ฒฝ์šฐ์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ณง ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค. 

์™ธ๋ถ€ ๋‹จํŽธํ™”๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ์•ˆ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ์••์ถ•(Compaction)์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์กฐ๊ฐ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค. ๋†€๊ณ  ์žˆ๋Š” ๋นˆ ๊ณต๊ฐ„๋“ค์„ ํ•˜๋‚˜๋กœ ๋ชจ์œผ๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ์••์ถ•

ํ•˜์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ ์••์ถ• ๋ฐฉ์‹์€ ๋‹จ์ ์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ์ž‘์€ ๋นˆ ๊ณต๊ฐ„๋“ค์„ ํ•˜๋‚˜๋กœ ๋ชจ์œผ๋Š” ๊ณผ์ •์—์„œ ๋งŽ์€ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์•ผ๊ธฐํ•˜๊ณ , ์‹œ์Šคํ…œ์€ ํ•˜๋˜ ์ผ์„ ์ค‘์ง€ํ•ด์•ผ๋งŒ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ˜„๋Œ€ ์šด์˜์ฒด์ œ์—์„œ ์™ธ๋ถ€ ๋‹จํŽธํ™”๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์„ ํƒํ•˜๋Š” ๊ฐ€์žฅ ๋Œ€์ค‘์ ์ธ ๋ฐฉ๋ฒ•์ด ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฒ•๊ณผ ํŽ˜์ด์ง•์ž…๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!

 


 

์ถœ์ฒ˜: ํ˜ผ์ž๊ณต๋ถ€ํ•˜๋Š” ์ปดํ“จํ„ฐ๊ตฌ์กฐ+์šด์˜์ฒด์ œ

๋Œ“๊ธ€