ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

 ์•ž์˜ ๋‚ด์šฉ๋“ค์€ ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ ์ค‘, CPU์˜ ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ์Šค์ผ€์ค„๋ง ํ•˜๊ฑฐ๋‚˜ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ๋ณด์กฐ ์ €์žฅ์žฅ์น˜(HDD, SSD. etc.)์— ์ €์žฅ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ€์ ธ์™€ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ณด์กฐ ์ €์žฅ์žฅ์น˜์— ๋น„ํ•ด ์ƒ๋Œ€์ ์œผ๋กœ ํฌ๊ธฐ๊ฐ€ ์ž‘์•„, ํ”„๋กœ์„ธ์Šค ๋ณ„๋กœ ํšจ์œจ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•˜๋‹ค.

 

ํšจ์œจ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์ ์žฌ

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

๋™์  ์ ์žฌ (Dynamic Loading)

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

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

 

๋™์  ์—ฐ๊ฒฐ (Dynamic Linking)

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

 

์˜ˆ๋ฅผ ๋“ค์–ด, ํ”„๋กœ์„ธ์Šค A, B์—์„œ printf() ํ˜ธ์ถœ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค printf() ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค A, B๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋˜๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(printf())๋ฅผ Linkํ•˜์—ฌ ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

 ๋ฆฌ๋ˆ…์Šค, ์œˆ๋„์šฐ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์„ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Shared Library), ๋™์  ์—ฐ๊ฒฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Dynamic Linking Library, DLL)์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

Swapping

 ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ํ•ญ์‹œ ์ ์žฌํ•˜๋Š” ๊ฒƒ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์„ ์•ผ๊ธฐํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ƒํ™ฉ์— ๋”ฐ๋ผ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณด์กฐ ์ €์žฅ์žฅ์น˜์— ์ €์žฅํ•˜๋Š” swap-out๊ณผ ๋ณด์กฐ ์ €์žฅ์žฅ์น˜๋กœ ๋ถ€ํ„ฐ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ ์žฌํ•˜๋Š” swap-in์„ ํ•˜๊ฒŒ ๋œ๋‹ค.

 

 ์œ ์ € ๋ ˆ๋ฒจ์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ ๋ฟ ์•„๋‹Œ, ๋ฆฌ๋ˆ…์Šค ์ปค๋„์—์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ •๋ณด์ธ PCB์—์„œ๋„ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. PCB์˜ ๋ชจ๋“  ๋ถ€๋ถ„์„ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜๋Š” ๊ฒƒ์€ ๊ณผ๊ฑฐ์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ 16MB, 32MB์ธ ๊ฒฝ์šฐ ์ƒ๋‹นํžˆ ๋น„ํšจ์œจ์ ์ธ ๋ฐฉ์‹์ด์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ Swapping ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ, PCB ์ค‘ ๋ฐ˜๋“œ์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•ด์•ผ ๋˜๋Š” ๋ถ€๋ถ„์„ ์ œ์™ธํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ค„๋ง์œผ๋กœ ๊ต์ฒด๊ฐ€ ์ผ์–ด๋‚  ๊ฒฝ์šฐ swap-out๋˜๋„๋ก ํ•˜์˜€๋‹ค.

 

์—ฐ์† ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น (Contiguous Memory Allocation)

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

  • First-fit(์ตœ์ดˆ ์ ํ•ฉ) : ํ• ๋‹นํ•  ํ”„๋กœ์„ธ์Šค ํฌ๊ธฐ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€ ๊ณต๊ฐ„์„ ํƒ์ƒ‰ํ•˜์—ฌ, ๊ฐ€์žฅ ๋จผ์ € ์ฐพ๊ฒŒ ๋˜๋Š” ๊ณต์•…์— ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

  • Best-fit(์ตœ์  ์ €ํ•ฉ) : ํ• ๋‹นํ•  ํ”„๋กœ์„ธ์Šค ํฌ๊ธฐ์™€ ๊ณต๊ฐ„์˜ ํฌ๊ธฐ ์ฐจ์ด๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ๊ณต๊ฐ„์— ํ”„๋กœ์„ธ์Šค๋ฅผ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

  • Worst-fit(์ตœ์•… ์ ํ•ฉ) : ํ• ๋‹นํ•  ํ”„๋กœ์„ธ์Šค ํฌ๊ธฐ์™€ ๊ณต๊ฐ„์˜ ํฌ๊ธฐ ์ฐจ์ด๊ฐ€ ๊ฐ€์žฅ ํฐ ๊ณต๊ฐ„์— ํ”„๋กœ์„ธ์Šค๋ฅผ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ 0 - 10๊นŒ์ง€ ์žˆ๊ณ  ํ˜„์žฌ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„์€ 5 - 8์ธ ๊ฒฝ์šฐ ํ”„๋กœ์„ธ์Šค A๋Š” 2์˜ ๊ณต๊ฐ„์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ 5 - 7 ์˜ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ํ•„์š”ํ•œ ๊ณต๊ฐ„์ด 1์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ์ด์ƒ 7 - 8์˜ ๊ณต๊ฐ„์€ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” hole์ด ๋œ๋‹ค. ๋˜ํ•œ, ์ด๋Ÿฌํ•œ ๊ณผ์ •์ด ์ง€์†์ ์œผ๋กœ ๋ฐ˜๋ณต๋  ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ๊ณณ์— hole์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๊ณ  ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•œ๋‹ค.

 ์ด์™€ ๊ฐ™์ด ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ hole์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™”(Memory fragmentation)์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™”๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์••์ถ•(Compaction) ๊ณผ์ •์„ ํ†ตํ•ด ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํฌ๊ณ  ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€