๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

  1. ํ•˜๋“œ์›จ์–ด ์ง€์› CPU์™€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ„์˜ ์ ‘๊ทผ์ค‘ OS๊ฐ€ ๊ฐœ์ž…ํ•˜๊ฒŒ๋˜๋ฉด ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง„๋‹ค. ๋”ฐ๋ผ์„œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ๋ณดํ˜ธ๊ธฐ๋ฒ•์€ ํ•˜๋“œ์›จ์–ด๊ฐ€ ์ง€์›ํ•ด์•ผํ•œ๋‹ค. Base register์™€ Limit register๋ฅผ ํ†ตํ•ด ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋œ ์—ฌ์–ต์˜ ํฌ๊ธฐ๋ฅผ ์ €์žฅ ๋ฐ ๋ณดํ˜ธํ•œ๋‹ค. (Base register์™€ Limit register๋Š” Preivileged instruction์— ์˜ํ•ด ์„ค์ • ๊ฐ€๋Šฅ)

๋ฉ”์ธ๋ฉ”๋ชจ๋ฆฌ

์ฃผ์†Œ ํ• ๋‹น

๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์— ๋ช…๋ น์–ด์™€ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์€ ์‹œ์ ์— ๋”ฐ๋ผ ๊ตฌ๋ถ„๋œ๋‹ค

  1. ์ปดํŒŒ์ผ ์‹œ๊ฐ„ (Compile time): ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋‚ด์— ๋“ค์–ด๊ฐˆ ์œ„์น˜๋ฅผ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์— ์•Œ ์ˆ˜ ์žˆ์œผ๋ฉด ์ ˆ๋Œ€์ฝ”๋“œ ์ƒ์„ฑ ๊ฐ€๋Šฅํ•˜๋‹ค.
  2. ์ ์žฌ ์‹œ๊ฐ„ (Load time): ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ด์ง„์ฝ”๋“œ๋ฅผ ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅ ์ฝ”๋“œ๋กœ ์ƒ์„ฑ, ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ ์žฌ์‹œ ์‹ฌ๋ณผ๊ณผ ๋ฒˆ์ง€์ˆ˜ ๋ฐ”์ธ๋”ฉ๋œ๋‹ค.
  3. ์‹คํ–‰ ์‹œ๊ฐ„ (Execution time): ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋„์ค‘ ๋‹ค๋ฅธ ์„ธ๊ทธ๋จผํŠธ๋กœ ์ด๋™ํ•˜๊ฒŒ๋˜๋ฉด, ๋ฐ”์ธ๋”ฉ์ด ์‹คํ–‰์‹œ๊ฐ„์— ์ด๋ค„์ง„๋‹ค.

๋…ผ๋ฆฌ ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ

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

**๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์žฅ์น˜(MMU)**์— ์˜ํ•ด ๊ฐ€์ƒ ์ฃผ์†Œ(๋…ผ๋ฆฌ์  ์ฃผ์†Œ)๊ฐ€ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜๋œ๋‹ค.

๋™์ 

  • ๋™์ ์ ์žฌ: ๋™์  ์ ์žฌ์—์„œ๋Š” ์‹ค์ œ ํ˜ธ์ถœ๋˜๊ธฐ์ „๊นŒ์ง€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์•„๋‹Œ ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅ ์ƒํƒœ๋กœ ๋””์Šคํฌ์—์„œ ๋Œ€๊ธฐํ•œ๋‹ค. ํ˜ธ์ถœ ์‹œ ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅ ์—ฐ๊ฒฐ ์ ์žฌ๊ธฐ( Relocatable linking loader)๊ฐ€ ๋ถˆ๋ ค ์š”๊ตฌ๋œ ๋ฃจํ‹ด์„ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๊ฐ€์ ธ์˜จ๋‹ค.
  • ๋™์  ์—ฐ๊ฒฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(DLL): ๊ณต์œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ„์— ๊ณต์œ ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ DLL์ธ์Šคํ„ด์Šค๊ฐ€ ํ•˜๋‚˜๋งŒ ์กด์žฌํ•ด๋„๋œ๋‹ค. (OS ์ง€์›์ด ํ•„์š”ํ•˜๋‹ค.)

๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฐฉ์‹

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

  • Hole: ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก

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

  1. First-Fit: ์ฒซ๋ฒˆ์งธ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฐ€์šฉ๊ณต๊ฐ„ ํ• ๋‹น
  2. Best-Fit: ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฒƒ ์„ ํƒ
  3. Worst-Fit: ๊ฐ€์žฅ ํฐ ๊ฐ€์šฉ ๊ณต๊ฐ„ ์„ ํƒ

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

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

Paging

  • Physical memory๋Š” Frame๋กœ ๊ฐ™์€ ํฌ๊ธฐ ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ ์ง„๋‹ค.
  • Logical memory๋Š” Page๋กœ ๊ฐ™์€ ํฌ๊ธฐ์˜ ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ ์ง„๋‹ค.
  • Address = Page number (ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์ ‘๊ทผ์‹œ ์‚ฌ์šฉ) + Page offset (์ฐธ์กฐ๋˜๋Š” ํ”„๋ ˆ์ž„ ๋‚ด์—์„œ์˜ ์œ„์น˜)
  1. ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ P๋ฅผ ์ถ”์ถœํ•˜์—ฌ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์ธ๋ฑ์Šค๋กœ ํ™œ์šฉ
  2. ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์—์„œ ํ”„๋ ˆ์ž„ ๋„˜๋ฒ„ ์ถ”์ถœ
  3. ๋…ผ๋ฆฌ ์ฃผ์†Œ์˜ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ํ”„๋ ˆ์ž„ ๋ฒˆํ˜ธ๋กœ ๋ฐ”๊พผ๋‹ค.

๋ชจ๋“  ํ”„๋ ˆ์ž„์ด ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์™ธ๋ถ€ ๋‹จํŽธํ™”๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋งˆ์ง€๋ง‰ ํ”„๋ ˆ์ž„์— ๋‚ด๋ถ€ ๋‹จํŽธํ™”๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

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

  • ํ”„๋ ˆ์ž„ํ…Œ์ด๋ธ”: ์šด์˜์ฒด์ œ๊ฐ€ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ํ”„๋ ˆ์ž„์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์€ ์ž๋ฃŒ๊ตฌ์กฐ
  • HW ์ง€์›: ํ”„๋กœ์„ธ์Šค๋ณ„ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฏ€๋กœ, ํ”„๋กœ์„ธ์Šค๊ฐ€ ์„ ํƒ๋˜๋ฉด ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋‹ค์‹œ ์ ์žฌํ•˜๊ณ  ์ €์žฅ๋œ ์‚ฌ์šฉ์ž ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”๋กœ๋ถ€ํ„ฐ ์ ์ ˆํ•œ ํ•˜๋“œ์›จ์–ด ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”๊ฐ’์„ ๋‹ค์‹œ ์ ์žฌํ•ด์•ผ๋œ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์ปดํ“จํ„ฐ๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๋ฉ”์ธ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๊ณ  ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ๊ธฐ์ค€ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ํ•˜์—ฌ๊ธˆ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ํ•œ๋‹ค.
  • TLB(Translation Look-Aside Buffer): ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”๋ฒˆํ˜ธ๋ฅผ ๋ฐ›์•„ ํ”„๋ ˆ์ž„๋„˜๋ฒ„ ๋ฐ˜ํ™˜ (์บ์‹œ)