๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ComputerScience ๐Ÿ“š/์šด์˜์ฒด์ œ

[OS] ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ(1) - ๋ฌผ๋ฆฌ, ๋…ผ๋ฆฌ์ฃผ์†Œ ๋ฐ ์—ฐ์† ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น

by dkswnkk 2022. 3. 20.

 

๋ฐฐ๊ฒฝ

๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋Š” ํ˜„๋Œ€ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ์šด์˜์— ์ค‘์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๋Š” ๊ฐ๊ฐ ์ฃผ์†Œ๊ฐ€ ํ• ๋‹น๋œ ์ผ๋ จ์˜ ๋ฐ”์ดํŠธ๋“ค๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. CPU๋Š” PC(program counter)๊ฐ€ ์ง€์‹œํ•˜๋Š” ๋Œ€๋กœ ๋ฉ”๋ชจ๋ฆฌ๋กœ๋ถ€ํ„ฐ ๋‹ค์Œ ์ˆ˜ํ–‰ํ•  ๋ช…๋ น์–ด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ๊ทธ ๋ช…๋ น์–ด๋Š” ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ถ”๊ฐ€์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋” ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ฐ˜๋Œ€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋‚ด๋ณด๋‚ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์— ๊ด€ํ•ด ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ์žฅ์˜ ๋ชฉํ‘œ

1. ๋…ผ๋ฆฌ ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ ์ฃผ์†Œ์˜ ์ฐจ์ด์ ๊ณผ ์ฃผ์†Œ๋ฅผ ๋ณ€ํ™˜ํ•  ๋•Œ MMU(๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์žฅ์น˜)์˜ ์—ญํ• ์„ ์ •๋ฆฌํ•ด ๋ณธ๋‹ค. (ํ˜„์žฌ ๊ฒŒ์‹œ๊ธ€)

2. ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์—ฐ์†์ ์œผ๋กœ ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์ดˆ, ์ตœ์ , ๋ฐ ์ตœ์•… ์ ‘ํ•ฉ ์ „๋žต์„ ์ ์šฉํ•ด ๋ณธ๋‹ค. (ํ˜„์žฌ ๊ฒŒ์‹œ๊ธ€)
3. ๋‹จํŽธํ™”์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ  ๋‹จํŽธํ™”์˜ ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜ ๋‚ด๋ถ€ ๋ฐ ์™ธ๋ถ€ ๋‹จํŽธํ™”์˜ ์ฐจ์ด์ ์„ ์ •๋ฆฌํ•ด ๋ณธ๋‹ค. (ํ˜„์žฌ ๊ฒŒ์‹œ๊ธ€)
4. ์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์„ ์‚ดํŽด๋ณธ๋‹ค. (๋‹ค์Œ ๊ฒŒ์‹œ๊ธ€)
5. TLB(translation look-aside buffer)๊ฐ€ ํฌํ•จ๋œ ํŽ˜์ด์ง• ์‹œ์Šคํ…œ์—์„œ ๋…ผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. (๋‹ค์Œ ๊ฒŒ์‹œ๊ธ€)
6. ๊ณ„์ธต์  ํŽ˜์ด์ง•, ํ•ด์‹œ ํŽ˜์ด์ง• ๋ฐ ์—ญ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์„ค๋ช…ํ•œ๋‹ค. (๋‹ค์Œ ๊ฒŒ์‹œ๊ธ€)

 

๋…ผ๋ฆฌ ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ ์ฃผ์†Œ(Ligical, Physical-Address Space)

์šฐ๋ฆฌ๋Š” ์ฃผ์†Œ ๊ณต๊ฐ„์„ ์•„๋ž˜์™€ ๊ฐ™์ด ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋…ผ๋ฆฌ ์ฃผ์†Œ(logical address) CPU๊ฐ€ ์ƒ์„ฑํ•˜๋Š” ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค. ๊ฐ€์ƒ ์ฃผ์†Œ(virtual address)๋ผ๊ณ ๋„ ํ•˜๋ฉฐ, ๋…ผ๋ฆฌ ์ฃผ์†Œ๋‚˜ ๊ฐ€์ƒ ์ฃผ์†Œ๋‚˜ ๊ฐ™์€ ๋œป์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋ฌผ๋ฆฌ ์ฃผ์†Œ(physical address) ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ทจ๊ธ‰ํ•˜๊ฒŒ ๋˜๋Š” ์ฃผ์†Œ[์ฆ‰, ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ(MAR)์— ์ฃผ์–ด์ง€๋Š” ์ฃผ์†Œ]์ž…๋‹ˆ๋‹ค.

 

ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ์ƒ์„ฑ๋œ ๋ชจ๋“  ๋…ผ๋ฆฌ ์ฃผ์†Œ ์ง‘ํ•ฉ์„ ๋…ผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„(logical address space)์ด๋ผ ํ•˜๋ฉฐ ์ด ๋…ผ๋ฆฌ ์ฃผ์†Œ์™€ ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  ๋ฌผ๋ฆฌ ์ฃผ์†Œ ์ง‘ํ•ฉ์„ ๋ฌผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„(physical address space)์ด๋ผ ํ•ฉ๋‹ˆ๋‹ค. 

 ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ์ค‘์—๋Š” ์ด์™€ ๊ฐ™์€ ์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ๊ฐ€์ƒ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ฐ”๊พธ์–ด์ค˜์•ผ ํ•˜๋Š”๋ฐ ์ด ๋ณ€ํ™˜(mapping) ์ž‘์—…์€ ํ•˜๋“œ์›จ์–ด ์žฅ์น˜์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ(memory management unit, MMU)์— ์˜ํ•ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์žฅ์น˜(MMU)

์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด MMU์•ˆ์—๋Š” ์žฌ๋ฐฐ์น˜(relocation) ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์žฌ๋ฐฐ์น˜ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ด์šฉํ•œ ๋™์  ์žฌ๋ฐฐ์น˜

์žฌ๋ฐฐ์น˜ ๋ ˆ์ง€์Šคํ„ฐ ์†์— ๋“ค์–ด์žˆ๋Š” ๊ฐ’์€ ์ฃผ์†Œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋ณด๋‚ด์งˆ ๋•Œ๋งˆ๋‹ค ๊ทธ ๋ชจ๋“  ์ฃผ์†Œ์— ๋”ํ•ด์ง‘๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์žฌ๋ฐฐ์น˜ ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์ด 14000์ด๋ผ๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ 346๋ฒˆ์ง€์— ์•ก์„ธ์Šค ํ•  ๋•Œ, ์‹ค์€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์˜ 14346๋ฒˆ์ง€์— ์•ก์„ธ์Šค ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

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

 

์—ฐ์† ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น

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

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

 ์•„๋ž˜ ์ด๋ฏธ์ง€๋Š” ์ด ๊ธฐ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๊ฐ€๋ณ€ ํŒŒํ‹ฐ์…˜

  1. ์ฒ˜์Œ์—๋Š” ํ”„๋กœ์„ธ์Šค 5, 8 ๋ฐ 2๊ฐ€ ์ ์žฌ๋˜์–ด ์žˆ๊ณ  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์™„์ „ํžˆ ํ™œ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค.
  2. ํ”„๋กœ์„ธ์Šค 8์ด ์ข…๋ฃŒ๋œ ํ›„ ํ•˜๋‚˜์˜ ์—ฐ์†๋œ hole์ด ์ƒ๊น๋‹ˆ๋‹ค.
  3. ๋‚˜์ค‘์— ํ”„๋กœ์„ธ์Šค 9๊ฐ€ ๋„์ฐฉํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค.
  4. ๊ทธ๋Ÿฐ๋‹ค์Œ ํ”„๋กœ์„ธ์Šค 5๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ๋‘ ๊ฐœ์˜ ์—ฐ์†๋˜์ง€ ์•Š์€ hole์ด ์ƒ๊น๋‹ˆ๋‹ค.

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

 ๋„์ฐฉ ํ”„๋กœ์„ธ์Šค์˜ ์š”๊ตฌ๋ฅผ ์ถฉ์กฑ์‹œํ‚ค๊ธฐ์— ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? 

  1. ๋‹จ์ˆœํžˆ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฑฐ๋ถ€ํ•˜๊ณ  ์ ์ ˆํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
  2. ์ด๋Ÿฌํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋Œ€๊ธฐ ํ์— ๋„ฃ๋Š”๋‹ค.
  3. ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‚˜์ค‘์— ํ•ด์ œ๋˜๋ฉด ์šด์˜์ฒด์ œ๋Š” ๋Œ€๊ธฐ ํ๋ฅผ ๊ฒ€์‚ฌํ•˜์—ฌ ๋Œ€๊ธฐ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ๋ฅผ ์ถฉ์กฑ์‹œํ‚ฌ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

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

 ์ด๋Ÿฌํ•œ ๊ธฐ๋ฒ•์€ ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฌธ์ œ(dynamic storage allocation problem)์˜ ํŠน๋ณ„ํ•œ ํ•œ ์˜ˆ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ผ๋ จ์˜ ๊ฐ€์šฉ ๊ณต๊ฐ„-๋ฆฌ์ŠคํŠธ๋กœ๋ถ€ํ„ฐ ํฌ๊ธฐ n-๋ฐ”์ดํŠธ ๋ธ”๋ก์„ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ๋งŒ์กฑ์‹œ์ผœ ์ค„ ๊ฒƒ์ด๋ƒ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์€ ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ์ œ์‹œ๋˜์–ด ์žˆ๋Š”๋ฐ ๋Œ€ํ‘œ์ ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ธฐ๋ฒ•๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์ดˆ ์ ํ•ฉ(first-fit) ์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฐ€์šฉ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•œ๋‹ค. 
๊ฒ€์ƒ‰์€ ์ง‘ํ•ฉ์˜ ์‹œ์ž‘์—์„œ๋ถ€ํ„ฐ ํ•˜๊ฑฐ๋‚˜ ์ง€๋‚œ๋ฒˆ ๊ฒ€์ƒ‰์ด ๋๋‚ฌ๋˜ ๊ณณ์—์„œ ์‹œ์ž‘๋  ์ˆ˜ ์žˆ๋‹ค. 
์ถฉ๋ถ„ํžˆ ํฐ ๊ฐ€์šฉ ๊ณต๊ฐ„์„ ์ฐพ์•˜์„ ๋•Œ ๊ฒ€์ƒ‰์„ ๋๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
์ตœ์  ์ ํ•ฉ(best-fit) ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„ ์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€ ๊ฒƒ์„ ํƒํ•œ๋‹ค.
๋ฆฌ์ŠคํŠธ๊ฐ€ ํฌ๊ธฐ ์ˆœ์œผ๋กœ ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ์ „ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฒ€์ƒ‰ํ•ด์•ผ๋งŒ ํ•œ๋‹ค.
์ด ๋ฐฉ๋ฒ•์€ ์•„์ฃผ ์ž‘์€ ๊ฐ€์šฉ ๊ณต๊ฐ„์„ ๋งŒ๋“ค์–ด ๋‚ธ๋‹ค.
์ตœ์•… ์ ํ•ฉ(worst-fit) ๊ฐ€์žฅ ํฐ ๊ฐ€์šฉ ๊ณต๊ฐ„์„ ํƒํ•œ๋‹ค.
์ด ๋ฐฉ์‹์—์„œ ํ• ๋‹นํ•ด ์ฃผ๊ณ  ๋‚จ๊ฒŒ ๋˜๋Š” ๊ฐ€์šฉ ๊ณต๊ฐ„์€ ์ถฉ๋ถ„ํžˆ ์ปค์„œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋“ค์„ ์œ„ํ•˜์—ฌ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.
์ด๋•Œ ๊ฐ€์šฉ ๊ณต๊ฐ„ ๋“ค์ด ํฌ๊ธฐ ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ์ „ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค ๊ฒ€์ƒ‰ํ•ด์•ผ๋งŒ ํ•œ๋‹ค.

 ๋ชจ์˜์‹คํ—˜(simulation)์„ ํ†ตํ•ด์„œ ์—ฐ๊ตฌํ•ด ๋ณด๋ฉด ์ตœ์ดˆ ์ ํ•ฉ๊ณผ ์ตœ์  ์ ํ•ฉ ๋ชจ๋‘๊ฐ€ ์‹œ๊ฐ„๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์ด์šฉ ํšจ์œจ ์ธก๋ฉด์—์„œ ์ตœ์•… ์ ํ•ฉ๋ณด๋‹ค ์ข‹๋‹ค๋Š” ๊ฒƒ์ด ์ž…์ฆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์ดˆ ์ ํ•ฉ์ด๋‚˜ ์ตœ์  ์ ํ•ฉ์ด๋‚˜ ๊ณต๊ฐ„ ํšจ์œจ์„ฑ ์ธก๋ฉด์—์„œ๋Š” ์–ด๋Š ๊ฒƒ์ด ํ•ญ์ƒ ๋” ์ข‹๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์—†์ง€๋งŒ ์ตœ์ดˆ ์ ํ•ฉ์ด ์ผ๋ฐ˜์ ์œผ๋กœ ์†๋„๊ฐ€ ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค.

 

๋‹จํŽธํ™”(Fragmentation)

(1) ์™ธ๋ถ€ ๋‹จํŽธํ™”(external fragmentation)

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

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

(2) ๋‚ด๋ถ€ ๋‹จํŽธํ™”(internal fragmemtation)

๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋‚ญ๋น„ํ•˜๋Š” ํ˜„์ƒ์ธ ๋‹จํŽธํ™”๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ๋„ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 18,464B ํฌ๊ธฐ์˜ ๊ฐ€์šฉ ๊ณต๊ฐ„์ด ์žˆ๊ณ , ์–ด๋Š ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ 18,462B๋ฅผ ์š”๊ตฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ด…์‹œ๋‹ค. ์š”๊ตฌ๋œ ๋ธ”๋ก์„ ์ •ํ™•ํžˆ ํ• ๋‹นํ•˜๋ฉด 2B์˜ ๊ฐ€์šฉ ๊ณต๊ฐ„(hole)์ด ๋‚จ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์š”์ฒญํ•˜๋ฉด ํ• ๋‹น์„ ํ•ญ์ƒ 2์˜ ์ง€์ˆ˜ ๋ฐฐ ํ˜•ํƒœ๋กœ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ๋ณดํ†ต์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ํ• ๋‹น๋œ ๊ณต๊ฐ„์€ ์š”๊ตฌ๋œ ๊ณต๊ฐ„๋ณด๋‹ค ์•ฝ๊ฐ„ ๋” ํด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— ์ด๋“ค ๋‘ ํฌ๊ธฐ ์‚ฌ์ด์˜ ๋‚จ๋Š” ๋ถ€๋ถ„์ด ๋ฐ”๋กœ ๋‚ด๋ถ€ ๋‹จํŽธํ™”(internal fragmentation)์ด๊ณ , ์ด ๋‚ด๋ถ€ ๋‹จํŽธํ™” ์—ญ์‹œ ์‚ฌ์šฉ์ด ๋ชป ๋˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

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

 

[OS] ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ(2) - ํŽ˜์ด์ง• ๊ธฐ๋ฒ•

์„œ๋ก  ์ง€๊ธˆ๊นŒ์ง€ ๋…ผ์˜๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๋ฌผ๋ฆฌ ๊ณต๊ฐ„์ด ์—ฐ์†์ ์ด์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ํ”„๋กœ์„ธ์Šค์˜ ๋ฌผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์ด ์—ฐ์†๋˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•์ธ ํŽ˜์ด์ง•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด ๋ณด๊ฒ 

dkswnkk.tistory.com

 

๋Œ“๊ธ€