๐ŸŒ CS & Infra/Operating System

[OS] 03. ๊ธฐ์–ต์žฅ์น˜ ๊ด€๋ฆฌ

devCloud 2023. 10. 16. 05:05
728x90

(1) ๊ฐœ์š”

  • ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ฐ์ดํ„ฐ๋Š” ์ง์ ‘ ์‹คํ–‰๋˜๊ฑฐ๋‚˜ ์ฐธ์กฐ๋˜๊ธฐ ์œ„ํ•˜์—ฌ ์ฃผ๊ธฐ์–ต์žฅ์น˜ ๋‚ด์— ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.
  • ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ €์žฅ๋˜๊ณ , ๋‹ค์ˆ˜ ํ”„๋กœ์„ธ์Šค๋“ค์„ ์œ„ํ•œ ์ฃผ๊ธฐ์–ต์žฅ์น˜์˜ ํšจ์œจ์ ์ธ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์ด๊ฒƒ์ด OS์˜ ์—ญํ• ์ด๋‹ค.
  • ์ฃผ๊ธฐ์–ต์žฅ์น˜๋Š” ์šฉ๋Ÿ‰์ด ์ œํ•œ๋˜์–ด ์žˆ๊ณ  ๊ฐ€๊ฒฉ์ด ๋น„์‹ผ ๋ฐ˜๋ฉด์—, ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜(์ž๊ธฐํ…Œ์ดํ”„, ํ•˜๋“œ๋””์Šคํฌ, ํ”Œ๋กœํ”ผ๋””์Šคํฌ, CD-ROM, DVD-ROM, ํ”Œ๋ž˜์‹œ๋ฉ”๋ชจ๋ฆฌ, SSD, etc)๋Š” ์šฉ๋Ÿ‰์ด ํฌ๊ณ  ๊ฐ€๊ฒฉ๋„ ์ €๋ ดํ•˜๋‹ค.

โ–ถ  Address Binding & Type

  • ์ •์˜ : ์ด์ง„ํŒŒ์ผ ํ˜•ํƒœ๋กœ ๋””์Šคํฌ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. (์ฃผ๊ธฐ์–ต์žฅ์น˜ ์ ์žฌ(๋กœ๋“œ))
  • logical address๋ฅผ ๊ฐ€์ง„ ํ”„๋กœ๊ทธ๋žจ์ด ์ฃผ๊ธฐ์–ต์žฅ์น˜์— ์ ์žฌ๋  ์‹ค์ œ physical address๋กœ mapping๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

1. Compile Time Binding

  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ์žฌ๋  ์ฃผ๊ธฐ์–ต์žฅ์น˜์˜ ์œ„์น˜(์ฃผ์†Œ)๋ฅผ ๋ฏธ๋ฆฌ ์•„๋Š” ๊ฒฝ์šฐ, ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ ˆ๋Œ€์ฝ”๋“œ(๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง„ ์ด์ง„์ฝ”๋“œ)๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • ๋งŒ์•ฝ, ํ”„๋กœ์„ธ์Šค ์‹คํ–‰ ์œ„์น˜(์ฃผ์†Œ)๋ฅผ ๋ฐ”๊พธ๊ณ ์ž ํ•œ๋‹ค๋ฉด ์žฌ์ปดํŒŒ์ผ์ด ํ•„์š”ํ•˜๋‹ค.
  • Ex) OS๋ฅผ ์œ„ํ•œ *bootloader๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ๋‹ค.

*bootloader : ์‹œ์Šคํ…œ์˜ ํ•˜๋“œ์›จ์–ด๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  OS์˜ ์ปค๋„์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค ์‹คํ–‰์‹œํ‚ค๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ BIOS๊ฐ€ ๋””์Šคํฌ์—์„œ ์ฝ์€ bootloader๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ •ํ•ด์ง„ ๋ฌผ๋ฆฌ์ฃผ์†Œ 0x00007c00๋ฒˆ์ง€์— ๋กœ๋“œ์‹œํ‚จ๋‹ค. ์œˆ๋„์šฐ๋‚˜ ๋ฆฌ๋ˆ…์Šค๋ฅผ ๋Œ์–ด์˜ค๋Š”๋ฐ ํ•ญ์ƒ ๊ฐ™์€ ์œ„์น˜์— ์˜ฌ๋ผ์˜จ๋‹ค.(ํŠน์ˆ˜ํ•œ case)

 

2. Load Time Binding

  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ์žฌ๋  ์œ„์น˜(์ฃผ์†Œ)๋ฅผ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์•Œ์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ผ๋‹จ ์ด์ง„์ฝ”๋“œ๋ฅผ ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅํ•˜๊ฒŒ ์ƒ์„ฑํ•œ๋‹ค.
  • ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๋กœ์˜ ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ์€ ํ”„๋กœ๊ทธ๋žจ์ด ๊ธฐ์–ต์žฅ์น˜์— ์ ์žฌ๋˜๋Š” ์‹œ๊ฐ„์— ์ ์žฌ๊ธฐ(loader)์— ์˜ํ•ด ์ˆ˜ํ–‰๋œ๋‹ค.

3. Execution Time Binding

  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๋Š” ์‹œ์ ์— ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ์ด ์ด๋ฃจ์–ด์ง„๋‹ค. (Ex-Dynamic Link Library)

โ–ถ Logical Address & Physical Address

  • ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๋Š” CPU๊ฐ€ ์ƒ์„ฑํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” ์ฃผ์†Œ๋กœ, virtual address๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.
  • ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์‹ค์ œ ์ฃผ์†Œ๋กœ, *๊ธฐ์–ต์žฅ์น˜(๊ด€๋ฆฌ๊ธฐ)๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์ฃผ์†Œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

*Memory Management Unit(๊ธฐ์–ต์žฅ์น˜ ๊ด€๋ฆฌ๊ธฐ)์€ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. (OS์— ํฌํ•จ๋˜๋Š” ๋ชจ๋“ˆ)

 

(2) ๊ธฐ์–ต์žฅ์น˜์˜ ๊ณ„์ธต ๊ตฌ์กฐ ๋ฐ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•

โ–ถ ๊ณ„์ธต์  ๊ตฌ์กฐ


- ์บ์‹œ๋Š” Static RAM(SRAM)์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋ฉฐ, CPU์— ์กด์žฌํ•œ๋‹ค. ์—ฌ๋Ÿฌ ๋ ˆ๋ฒจ(L1, L2, L3 ๋“ฑ)์˜ ์บ์‰ฌ๊ฐ€ ์กด์žฌํ•œ๋‹ค.
- ์ฃผ๊ธฐ์–ต์žฅ์น˜๋Š” Dynamic RAM(DRAM)์œผ๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค.
- CPU๋Š” ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜๋ฅผ ์ฝ์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ธฐ์–ต์žฅ์น˜์— ๋จผ์ € ์˜ฎ๊ฒจ์ ธ์•ผ ๋ณด์กฐ๊ธฐ์–ต ์žฅ์น˜๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

 

โ–ถ Memory Management Unit(MMU)์˜ ๊ธฐ์–ต์žฅ์น˜ ๊ด€๋ฆฌ

  • ๊ธฐ์–ต์žฅ์น˜ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
  • fetch(๋ฐ˜์ž…)๊ธฐ๋ฒ• : ์ฃผ๊ธฐ์–ต์žฅ์น˜์— ์ ์žฌํ•  ๋‹ค์Œ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์–ธ์ œ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์ธ๊ฐ€ ๊ฒฐ์ •ํ•œ๋‹ค. demand fetch(์š”๊ตฌ๋ฐ˜์ž…)๊ธฐ๋ฒ•๊ณผ anticipatory fetch(์˜ˆ์ƒ๋ฐ˜์ž…)๊ธฐ๋ฒ•์ด ์žˆ๋‹ค
  • placement(๋ฐฐ์น˜)๊ธฐ๋ฒ• : ์ƒˆ๋กœ ๋ฐ˜์ž…๋œ ๋ฐ์ดํ„ฐ๋‚˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ฃผ๊ธฐ์–ต์žฅ์น˜์˜ ์–ด๋””์— ์œ„์น˜์‹œํ‚ฌ ๊ฒƒ์ธ๊ฐ€ ๊ฒฐ์ •ํ•œ๋‹ค. first-fit(์ตœ์ดˆ์ ํ•ฉ), best-fit(์ตœ์ ์ ํ•ฉ), worst-fit(์ตœ์•…์ ํ•ฉ) ๊ธฐ๋ฒ•์ด ์žˆ๋‹ค.
  • replacement(๊ต์ฒด)๊ธฐ๋ฒ• : ์ƒˆ๋กœ ๋“ค์–ด์˜จ ํ”„๋กœ๊ทธ๋žจ์ด ๋“ค์–ด๊ฐˆ ์žฅ์†Œ๋ฅผ ๋งˆ๋ จํ•˜๊ธฐ ์œ„ํ•ด์„œ ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ ๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•  ๊ฒƒ์ธ๊ฐ€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

 

(3) ๋‹จ์ผ ์‚ฌ์šฉ์ž ์—ฐ์† ๊ธฐ์–ต์žฅ์น˜ ํ• ๋‹น

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

 

โ–ถ ์‹œ์Šคํ…œ ๋ณดํ˜ธ ๋ฐฉ๋ฒ•(OS ๋ณดํ˜ธ)

  • ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด OS์˜์—ญ์„ ์นจ๋ฒ”ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•œ๋‹ค.
  • CPU ๋‚ด์— ํ•˜๋‚˜์˜ boundary register(๊ฒฝ๊ณ„ ๋ ˆ์ง€์Šคํ„ฐ)๋ฅผ ์ด์šฉํ•œ๋‹ค.

 

(4) ๊ณ ์ • ๋ถ„ํ•  ๊ธฐ์–ต์žฅ์น˜ ํ• ๋‹น

์ฃผ๊ธฐ์–ต์žฅ์น˜๋ฅผ ์ผ์ • ์ˆ˜์˜ ๊ณ ์ •๋œ ํฌ๊ธฐ๋“ค๋กœ ๋ถ„ํ• ํ•˜์—ฌ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, ์ดˆ๊ธฐ์˜ ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹œ์Šคํ…œ์—์„œ ํ™œ์šฉํ–ˆ๋‹ค.

 

โ–ถ ๊ธฐ์–ต์žฅ์น˜์— ํ”„๋กœ๊ทธ๋žจ(์ž‘์—…) ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ์ ˆ๋Œ€ ๋ฒˆ์—ญ ๋ฐ ๋กœ๋”ฉ ๋ฐฉ๋ฒ• : ์ปดํŒŒ์ผ ์‹œ์— ์ •ํ•ด์ง„ ์ฃผ์†Œ์˜ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ
  • ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅ ๋ฒˆ์—ญ ๋ฐ ๋กœ๋”ฉ ๋ฐฉ๋ฒ• : ๋กœ๋”ฉ ์‹œ์— ๋ฐฐ์น˜๋˜๋Š” ์ฃผ์†Œ์˜ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ

 

โ–ถ ์‹œ์Šคํ…œ ๋ณดํ˜ธ ๋ฐฉ๋ฒ•

  • ์ž„์˜์˜ ํ•œ ๋ถ„ํ• ์— ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฅธ ๋ถ„ํ• ์— ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•ด์•ผ ํ•œ๋‹ค.
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ bound register๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์„ ๋ณดํ˜ธํ•œ๋‹ค.
  • lower bound(ํ•˜ํ•œ) register & upper bound(์ƒํ•œ) register

 

โ–ถ ๊ธฐ์–ต์žฅ์น˜์˜ fragmentation(๋‹จํŽธํ™”)ํ˜„์ƒ ๋ฐœ์ƒ(Cons)

์ „์ฒด 18K์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ณ  ์žˆ์œผ๋‚˜, ์ž‘์—… 4(13K)๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋‹ค.

  • ์‚ฌ์šฉ์ž ์ž‘์—…(ํ”„๋กœ๊ทธ๋žจ)์˜ ํฌ๊ธฐ๊ฐ€ ๋ถ„ํ• ์— ์ •ํ™•ํžˆ ๋งž์ง€ ์•Š๊ฑฐ๋‚˜, ๋˜๋Š” ๋ถ„ํ• ์ด ๋„ˆ๋ฌด ์ž‘์•„์„œ ๋Œ€๊ธฐ ์ค‘์ธ ์–ด๋–ค ์ž‘์—…์ด ์ด ๋ถ„ํ• ์— ์ ์žฌ๋  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์— ๋ฐœ์ƒํ•œ๋‹ค.
  • Internal Fragmentation : ์–ด๋–ค ๋ถ„ํ• ์ด ์‚ฌ์šฉ๋˜์—ˆ์œผ๋‚˜, ์‚ฌ์šฉ๋œ ๋ถ„ํ• ์˜ ์ผ๋ถ€๋Š” ์‚ฌ์šฉ๋˜๊ณ  ๋‹ค๋ฅธ ์ผ๋ถ€๋Š” ๋‚จ์•˜์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.
  • External Fragmentation : ์–ด๋–ค ๋ถ„ํ• ์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ณ  ์ด์šฉ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋Œ€๊ธฐ ์ค‘์ธ ์ž‘์—…์—๊ฒŒ๋Š” ๋„ˆ๋ฌด ์ž‘์•„์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

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

 

(5) ๊ฐ€๋ณ€ ๋ถ„ํ•  ๊ธฐ์–ต์žฅ์น˜ ํ• ๋‹น

๊ธฐ์–ต์žฅ์น˜ ๋‹จํŽธํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์ •๋œ ๋ถ„ํ• ์˜ ๊ฐœ๋…์„ ์—†์• ๊ณ  ๊ฐ ์ž‘์—…(ํ”„๋กœ๊ทธ๋žจ)์— ํ•„์š”ํ•œ ๋งŒํผ์˜ ๊ธฐ์–ต ์žฅ์น˜๋ฅผ ๋™์ ์œผ๋กœ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

๊ฐ€๋ณ€ ๋ถ„ํ•  ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ ์ดˆ๊ธฐ ๋ถ„ํ•  ํ• ๋‹น

 

โ–ถ ๊ธฐ์–ต์žฅ์น˜์˜ fragmentation(๋‹จํŽธํ™”)ํ˜„์ƒ ๋ฐœ์ƒ(Cons)

์‹œ์Šคํ…œ ๊ตฌ๋™ ์ดˆ๊ธฐ์—๋Š” ๋ณ„๋‹ค๋ฅธ ๋‚ญ๋น„๊ฐ€ ์—†๋Š”๋ฐ, ์ž‘์—…์— ๋Œ€ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ์˜ ํ• ๋‹น๊ณผ ํ•ด์ œ๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒฝ์šฐ์— ๊ธฐ์–ต์žฅ์น˜ ๋‹จํŽธํ™”์˜ ๋ฌธ์ œ๊ฐ€ ์‹ฌํ™”๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.


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

 

โ–ถ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ํšจ์œจํ™” ๋ฐฉ๋ฒ•

 

1. coalescing holes(๊ณต๋ฐฑ ํ•ฉ๋ณ‘)

์ธ์ ‘ํ•œ ๊ณต๋ฐฑ๋“ค์„ ๊ฒฐํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ํฐ ๊ธฐ์–ต ๊ณต๊ฐ„์œผ๋กœ ๋งŒ๋“ค์–ด ๋ฒ„๋ฆฐ๋‹ค.

 

2. compaction(๊ธฐ์–ต์žฅ์†Œ ์ง‘์•ฝ)

  • ์กด์žฌํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ๊ณต๋ฐฑ๋“ค์„ ํ•˜๋‚˜์˜ ์ปค๋‹ค๋ž€ ๊ธฐ์–ต ๊ณต๊ฐ„์œผ๋กœ ํ†ตํ•ฉํ•œ๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ garbage collection์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.

 

๊ธฐ์–ต์žฅ์†Œ ์ง‘์•ฝ์˜ ๋ฌธ์ œ์ 

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

 

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• - ๊ธฐ์–ต ์žฅ์น˜ ๋ฐฐ์น˜ ๊ธฐ๋ฒ•

  1. first-fit ๊ธฐ๋ฒ• : ์ฃผ๊ธฐ์–ต์žฅ์น˜์˜ ์ฒซ ๋ฒˆ์งธ ์œ ์šฉํ•œ ๊ณต๋ฐฑ์„ ์šฐ์„ ์ ์œผ๋กœ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค.
  2. best-fit ๊ธฐ๋ฒ• : ๊ธฐ์–ต์žฅ์น˜์˜ ๋‹จํŽธํ™”๋ฅผ ์ตœ์†Œ๋กœ ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, ์ ์žฌ ๊ฐ€๋Šฅํ•œ ๊ฐ€์šฉ ๊ณต๊ฐ„ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ณต๋ฐฑ์ด ๋‚จ๋Š” ๋ถ„ํ• ์— ํ• ๋‹นํ•œ๋‹ค.
  3. worst-fit ๊ธฐ๋ฒ• : ์ ์žฌ ๊ฐ€๋Šฅํ•œ ๊ฐ€์šฉ ๊ณต๊ฐ„ ์ค‘ ๊ฐ€์žฅ ํฐ ๊ณต๊ฐ„์— ํ• ๋‹นํ•˜๊ณ , ํ• ๋‹น ํ›„์—๋„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์šฉ ๊ณต๊ฐ„์ด ๋‚จ์•„ ์žˆ๋‹ค.

(6) ๊ธฐ์–ต์žฅ์น˜ Swapping

  • Replacement๋ผ๊ณ ๋„ ํ•˜๊ณ , ํ•˜๋‚˜์˜ ์ž‘์—…์ด ์ „์ฒด ๊ธฐ์–ต์žฅ์น˜๋ฅผ ์‚ฌ์šฉํ•œ ํ›„, ํ•„์š”์— ๋”ฐ๋ผ ๊ทธ ์ž‘์—…์€ swap out(์ œ๊ฑฐ)๋˜๊ณ  ๋‹ค์‹œ ๋‹ค์Œ ์ž‘์—…์ด swap in(์ ์žฌ)๋˜๋Š” ์ˆœ์œผ๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • ์˜ค๋Š˜๋‚  ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” paging system์˜ ๊ธฐ์ดˆ๊ฐ€ ๋๋‹ค.

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

728x90