๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์Šคํ„ฐ๋””/์šด์˜์ฒด์ œ

[์šด์˜์ฒด์ œ์™€ ์ •๋ณด๊ธฐ์ˆ ์˜ ์›๋ฆฌ] 7์žฅ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

by moon101 2023. 3. 25.

1. ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ

  • ๋…ผ๋ฆฌ์  ์ฃผ์†Œ(๊ฐ€์ƒ ์ฃผ์†Œ): ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์„ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜๋ฉด ๊ทธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์œ„ํ•œ ๋…์ž์ ์ธ ์ฃผ์†Œ ๊ณต๊ฐ„
  • ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ: ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์— ์‹ค์ œ๋กœ ์˜ฌ๋ผ๊ฐ€๋Š” ์œ„์น˜. ๋ณดํ†ต ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‚ฎ์€ ์ฃผ์†Œ ์˜์—ญ์—๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ์˜ฌ๋ผ๊ฐ€๊ณ , ๋†’์€ ์ฃผ์†Œ ์˜์—ญ์—๋Š” ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋“ค์ด ์˜ฌ๋ผ๊ฐ„๋‹ค

์ฃผ์†Œ๋ฐ”์ธ๋”ฉ: ํ”„๋กœ์„ธ์Šค์˜ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋กœ ์—ฐ๊ฒฐ์‹œ์ผœ ์ฃผ๋Š” ์ž‘์—…

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

MMU ๊ธฐ๋ฒ• (MMU scheme)

  • MMU๋Š” ํŠน์ • ํ”„๋กœ์„ธ์Šค์˜ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๊ฐ’์— ๊ธฐ์ค€ ๋ ˆ์ง€์Šคํ„ฐ์˜ ๊ฐ’์„ ๋”ํ•ด ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๊ฐ’์„ ์–ป์–ด๋‚ธ๋‹ค
  • ์ด๋•Œ ๊ธฐ์ค€ ๋ ˆ์ง€์Šคํ„ฐ(base register)๋Š” ์žฌ๋ฐฐ์น˜ ๋ ˆ์ง€์Šคํ„ฐ(relocation register)๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ ๊ทธ ํ”„๋กœ์„ธ์Šค์˜ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค
  • MMU ๊ธฐ๋ฒ•์—์„œ๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์ด ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ํ•œ ์žฅ์†Œ์— ์—ฐ์†์ ์œผ๋กœ ์ ์žฌ๋˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ€์ •ํ•œ๋‹ค
  • ๋ฉ”๋ชจ๋ฆฌ ๋ณด์•ˆ์„ ์šด์˜์ฒด์ œ๋Š” ํ•œ๊ณ„ ๋ ˆ์ง€์Šคํ„ฐ(limit register)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ํ•œ๊ณ„ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ํ˜„์žฌ CPU์—์„œ ์ˆ˜ํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์˜ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ์˜ ์ตœ๋Œ“๊ฐ’, ์ฆ‰ ๊ทธ ํ”„๋กœ์„ธ์Šค์˜ ํฌ๊ธฐ๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค
  • ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๊ฐ’ > ํ•œ๊ณ„ ๋ ˆ์ง€์Šคํ„ฐ -> ํŠธ๋žฉ ๋ฐœ์ƒ (ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ•์ œ์ข…๋ฃŒ ์‹œํ‚ด)

 

2. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์™€ ๊ด€๋ จ๋œ ์šฉ์–ด

๋™์ ๋กœ๋”ฉ(dynamic loading)

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

๋™์ ์—ฐ๊ฒฐ(dynamic linking)

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

์ค‘์ฒฉ(overlays)

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

์Šค์™€ํ•‘(swapping)

  • ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜จ ํ”„๋กœ์„ธ์Šค์˜ ์ฃผ์†Œ ๊ณต๊ฐ„ ์ „์ฒด๋ฅผ ๋””์Šคํฌ์˜ ์Šค์™‘ ์˜์—ญ์— ์ผ์‹œ์ ์œผ๋กœ ๋‚ด๋ ค๋†“๋Š” ๊ฒƒ
  • ์ด๋•Œ ์Šค์™‘ ์˜์—ญ์€ backing store๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ, ๋””์Šคํฌ ๋‚ด์— ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ๋Š” ๋ณ„๋„๋กœ ์กด์žฌํ•˜๋Š” ์ผ์ • ์˜์—ญ์„ ๋งํ•œ๋‹ค
  • ๋‹ค์ˆ˜์˜ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ถฉ๋ถ„ํžˆ ํฐ ์ €์žฅ๊ณต๊ฐ„์ด์–ด์•ผ ํ•˜๊ณ , ์–ด๋Š ์ •๋„์˜ ์ ‘๊ทผ ์†๋„๊ฐ€ ๋ณด์žฅ๋˜์–ด์•ผ ํ•จ
  • ์Šค์™‘ ์ธ: ๋””์Šคํฌ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์˜ฌ๋ฆฌ๋Š” ์ž‘์—…
  • ์Šค์™‘ ์•„์›ƒ: ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋””์Šคํฌ๋กœ ๋‚ด๋ฆฌ๋Š” ์ž‘์—…
  • ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ˆ˜๋ฅผ ์กฐ์ ˆํ•œ๋‹ค -> ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ •๋„๋ฅผ ์กฐ์ ˆ
  • ์Šค์™€ํ•‘์—์„œ๋Š” ๋ณดํ†ต ๋””์Šคํฌ๋‚ด์˜ ์Šค์™‘ ์˜์—ญ์— ํ”„๋กœ์„ธ์Šค์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅ๋œ๋‹ค. -> ๋”ฐ๋ผ์„œ, ๋””์Šคํฌ์˜ ํƒ์ƒ‰ ์‹œ๊ฐ„(seek time)์ด๋‚˜ ํšŒ์ „์ง€์—ฐ์‹œ๊ฐ„(rotational latency) ๋ณด๋‹ค๋Š” ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ์ „์†ก ์‹œ๊ฐ„(transfer time)์ด ๋Œ€๋ถ€๋ถ„์„ ์ฐจ์ง€ํ•œ๋‹ค. 

 

3. ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ํ• ๋‹น ๋ฐฉ์‹

๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ

  • ์šด์˜์ฒด์ œ ์ƒ์ฃผ ์˜์—ญ๊ณผ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค ์˜์—ญ์œผ๋กœ ๋‚˜๋‰˜์–ด ์‚ฌ์šฉ๋œ๋‹ค.
  • ์šด์˜์ฒด์ œ ์ƒ์ฃผ ์˜์—ญ: ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ์™€ ํ•จ๊ป˜ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‚ฎ์€ ์ฃผ์†Œ ์˜์—ญ์„ ์‚ฌ์šฉ -> ์šด์˜์ฒด์ œ ์ปค๋„ ์œ„์น˜
  • ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค ์˜์—ญ: ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ๋†’์€ ์ฃผ์†Œ ์˜์—ญ์„ ์‚ฌ์šฉ

์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค ์˜์—ญ์˜ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•

1) ์—ฐ์†ํ• ๋‹น(contiguous allocation) 

  • ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ์—ฐ์†์ ์ธ ๊ณต๊ฐ„์— ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ์‹
  • ๊ณ ์ •๋ถ„ํ• (fixed partition allocation): ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์–ด์ง„ ๊ฐœ์ˆ˜๋งŒํผ์˜ ์˜๊ตฌ์ ์ธ ๋ถ„ํ• (partition)๋กœ ๋ฏธ๋ฆฌ ๋‚˜๋ˆ„์–ด๋‘๊ณ  ๊ฐ ๋ถ„ํ• ์— ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ ์žฌํ•ด ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ฒŒ ํ•จ
  • ๊ฐ€๋ณ€๋ถ„ํ• (variable partition allocation): ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋ถ„ํ• ์˜ ํฌ๊ธฐ, ๊ฐœ์ˆ˜๊ฐ€ ๋™์ ์œผ๋กœ ๋ณ€ํ•˜๋Š” ๋ฐฉ์‹ 

2) ๋ถˆ์—ฐ์†ํ• ๋‹น(noncontiguous allocation)

  • ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ์—ฌ๋Ÿฌ ์˜์—ญ์— ๋ถ„์‚ฐํ•ด ์ ์žฌํ•˜๋Š” ๋ฐฉ์‹
  • ํŽ˜์ด์ง• ๊ธฐ๋ฒ• : ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋ถ„ํ• ํ•˜๋Š” ๊ธฐ์ค€์— ๋”ฐ๋ผ ๋™์ผํ•œ ํฌ๊ธฐ๋กœ ๋‚˜๋ˆ„์–ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•
  • ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜ ๊ธฐ๋ฒ•: ํฌ๊ธฐ๋Š” ์ผ์ •ํ•˜์ง€ ์•Š์ง€๋งŒ ์˜๋ฏธ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•
  • ํŽ˜์ด์ง€๋“œ ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜: ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜์„ ๊ธฐ๋ณธ์œผ๋กœ ํ•˜์ง€๋งŒ ์ด๋ฅผ ๋‹ค์‹œ ๋™์ผ ํฌ๊ธฐ์˜ ํŽ˜์ด์ง€๋กœ ๋‚˜๋ˆ„์–ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•

 

4. ํŽ˜์ด์ง• ๊ธฐ๋ฒ•

ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์ด๋ž€?

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

1) ์ฃผ์†Œ ๋ณ€ํ™˜ ๊ธฐ๋ฒ•

  • CPU๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๋ฅผ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ(p)์™€ ํŽ˜์ด์ง€ ์˜คํ”„์…‹(d)์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ฃผ์†Œ ๋ณ€ํ™˜(address translation)์— ์‚ฌ์šฉํ•œ๋‹ค
  • ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋Š” ์ธ๋ฑ์Šค๋กœ ์‚ฌ์šฉ๋˜๊ณ , ํ•ด๋‹น ์ธ๋ฑ์Šค์˜ ํ•ญ๋ชฉ(entry)์—๋Š” ๊ทธ ํŽ˜์ด์ง€์˜ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์ƒ์˜ ๊ธฐ์ค€ ์ฃผ์†Œ(base address), ์ฆ‰ ์‹œ์ž‘ ์œ„์น˜๊ฐ€ ์ €์žฅ๋œ๋‹ค.

2) ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ๊ตฌํ˜„

  • ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์—์„œ ์ฃผ์†Œ ๋ณ€ํ™˜์„ ํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์— ์œ„์น˜ํ•œ๋‹ค
  • ์šด์˜์ฒด์ œ๋Š” ํ˜„์žฌ CPU์—์„œ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ๊ธฐ์ค€ ๋ ˆ์ง€์Šคํ„ฐ์™€ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ๊ธธ์ด ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • TLB(Translation Look-aside Buffer): ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์ ‘๊ทผ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ด๊ณ  ๋ฉ”๋ชจ๋ฆฌ์˜ ์ ‘๊ทผ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ณ ์†์˜ ์ฃผ์†Œ ๋ณ€ํ™˜์šฉ ํ•˜๋“œ์›จ์–ด ์บ์‹œ

3) ๊ณ„์ธต์  ํŽ˜์ด์ง•

  • 2๋‹จ๊ณ„ ํŽ˜์ด์ง•(two-level paging) ๊ธฐ๋ฒ•
    • ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์— ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ๋‚ญ๋น„๋ฅผ ์ค„์ธ๋‹ค
    • ์ฃผ์†Œ ๋ณ€ํ™˜์„ ์œ„ํ•ด 1. ์™ธ๋ถ€ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”(outer page table)๊ณผ 2. ๋‚ด๋ถ€ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”(inner page table)์„ ์‚ฌ์šฉํ•œ๋‹ค.
    • ๋Œ€์‹  ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ์†Œ๋ชจ๋Š” ์ค„์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•œ ์ ‘๊ทผ ํšŸ์ˆ˜๊ฐ€ ๋งŽ์•„์ ธ์„œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚œ๋‹ค. -> ํ•ด๊ฒฐ์ฑ…์€ TLB ์‚ฌ์šฉ

4) ์—ญํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”(inverted paging table)

  • ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ํŽ˜์ด์ง€ ํ”„๋ ˆ์ž„ ํ•˜๋‚˜๋‹น ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์— ํ•˜๋‚˜์”ฉ์˜ ํ•ญ๋ชฉ์„ ๋‘๋Š” ๋ฐฉ์‹์ด๋‹ค
  • ์ฆ‰, ๋…ผ๋ฆฌ์  ์ฃผ์†Œ์— ๋Œ€ํ•ด ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ์— ๋Œ€ํ•ด ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“œ๋Š” ๊ฒƒ
  • ์‹œ์Šคํ…œ ์ „์ฒด์— ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ํ•˜๋‚˜๋งŒ ๋‘๋Š” ๋ฐฉ๋ฒ•

5) ๊ณต์œ  ํŽ˜์ด์ง€

  • ๊ณต์œ  ์ฝ”๋“œ(shared code) = ์žฌ์ง„์ž… ๊ฐ€๋Šฅ ์ฝ”๋“œ(re-entrant code) = ์ˆœ์ˆ˜ ์ฝ”๋“œ(pure code)
    • ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ํšจ์œจ์ ์ธ ์‚ฌ์šฉ์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋„๋ก ์ž‘์„ฑ๋œ ์ฝ”๋“œ
    • ์ฝ๊ธฐ ์ „์šฉ ํŠน์„ฑ์„ ๊ฐ€์ง„๋‹ค
  • ๊ณต์œ  ํŽ˜์ด์ง€(shared page) 
    • ๊ณต์œ ์ฝ”๋“œ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํŽ˜์ด์ง€
    • ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ๊ณต์œ ๋˜๋Š” ํŽ˜์ด์ง€์ด๋ฏ€๋กœ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์— ํ•˜๋‚˜๋งŒ ์ ์žฌ๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ข€ ๋” ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค

6) ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ

  • ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ๊ฐ ํ•ญ๋ชฉ์—๋Š” ์ฃผ์†Œ ๋ณ€ํ™˜ ์ •๋ณด๋ฟ ์•„๋‹ˆ๋ผ ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ๋ฅผ ์œ„ํ•œ ๋ณดํ˜ธ๋น„ํŠธ(protection bit)์™€ ์œ ํšจ-๋ฌดํšจ ๋น„ํŠธ(valid-invalid bit)๋ฅผ ๋‘๊ณ  ์žˆ๋‹ค
  • ๋ณดํ˜ธ๋น„ํŠธ: ๊ฐ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ(์–ด๋– ํ•œ ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•˜๋Š”์ง€)์˜ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ๋‹ค. 
  • ์œ ํšจ-๋ฌดํšจ ๋น„ํŠธ: ์œ ํšจ์ผ ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฉ”๋ชจ๋ฆฌ ํ”„๋ ˆ์ž„์— ๊ทธ ํŽ˜์ด์ง€๊ฐ€ ์กด์žฌํ•˜๊ณ  ์ ‘๊ทผ์ด ํ—ˆ์šฉ๋˜๋ฉฐ, ๋ฌดํšจ์ผ ๊ฒฝ์šฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ทธ ์ฃผ์†Œ ๋ถ€๋ถ„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฑฐ๋‚˜, ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€ ์žˆ์ง€ ์•Š๊ณ  ๋ฐฑํ‚น ์Šคํ† ์–ด์— ์กด์žฌํ•ด ํ•ด๋‹น ๋ฉ”๋ชจ๋ฆฌ ํ”„๋ ˆ์ž„์— ์œ ํšจํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์ด ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค

5. ์„ธ๊ทธ๋จผํ…Œ์ด์…˜

ํ”„๋กœ์„ธ์Šค์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ์˜๋ฏธ ๋‹จ์œ„์˜ ์„ธ๊ทธ๋จผํŠธ๋กœ ๋‚˜๋ˆ„์–ด ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๋Š” ์„ธ๊ทธ๋จผํ…Œ์ด์…˜ ๊ธฐ๋ฒ•

  • ์„ธ๊ทธ๋จผํŠธ๋Š” ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๊ธฐ๋Šฅ ๋‹จ์œ„ ๋˜๋Š” ์˜๋ฏธ ๋‹จ์œ„๋กœ ๋‚˜๋ˆˆ ๊ฒƒ (์˜ˆ: ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ์Šคํƒ)
  • ์„ธ๊ทธ๋จผํ…Œ์ด์…˜ ๊ธฐ๋ฒ•์€ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์ „์— 2๊ฐ€์ง€๋ฅผ ํ™•์ธํ•œ๋‹ค.
    • 1. ์š”์ฒญ๋œ ์„ธ๊ทธ๋จผํŠธ ๋ฒˆํ˜ธ๊ฐ€ STLR(Segment-Table Length Register)์— ์ €์žฅ๋œ ๊ฐ’๋ณด๋‹ค ์ž‘์€ ๊ฐ’์ธ๊ฐ€?
    • 2. ๋…ผ๋ฆฌ์  ์ฃผ์†Œ์˜ ์˜คํ”„์…‹๊ฐ’์ด ๊ทธ ์„ธ๊ทธ๋จผํŠธ์˜ ๊ธธ์ด(STLR๋ณด๋‹ค ์ž‘์€ ๊ฐ’์ธ๊ฐ€? (ํ•œ๊ณ„์ ๊ณผ ์˜คํ”„์…‹๊ฐ’ ๋น„๊ต)
  • ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ”์˜ ๊ฐ ํ•ญ๋ณต์— ๋ณดํ˜ธ๋น„ํŠธ์™€ ์œ ํšจ-๋ฌดํšจ ๋น„ํŠธ๋ฅผ ๋‘”๋‹ค
  • ์„ธ๊ทธ๋จผํŠธ๋Š” ์˜๋ฏธ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์–ด ๊ณต์œ ์™€ ๋ณด์•ˆ์˜ ์ธก๋ฉด์—์„œ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์— ๋น„ํ•ด ํšจ๊ณผ์ ์ด๋‹ค

6. ํŽ˜์ด์ง€๋“œ ์„ธ๊ทธ๋จผํ…Œ์ด์…˜

ํŽ˜์ด์ง• ๊ธฐ๋ฒ•๊ณผ ์„ธ๊ทธ๋จผํ…Œ์ด์…˜ ๊ธฐ๋ฒ•์˜ ์žฅ์ ๋งŒ์„ ์ทจํ•˜๋Š” ์ฃผ์†Œ ๋ณ€ํ™˜ ๊ธฐ๋ฒ•

  • ํ”„๋กœ๊ทธ๋žจ์„ ์˜๋ฏธ ๋‹จ์œ„์˜ ์„ธ๊ทธ๋จผํŠธ๋กœ ๋‚˜๋ˆ„์ง€๋งŒ ์ž„์˜์˜ ๊ธธ์ด๊ฐ€ ์•„๋‹ˆ๋ผ ๋™์ผํ•œ ํฌ๊ธฐ ํŽ˜์ด์ง€๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค
  • ์ฃผ์†Œ ๋ณ€ํ™˜์„ ์œ„ํ•ด ์™ธ๋ถ€์˜ ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ”๊ณผ ๋‚ด๋ถ€์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์ด์šฉํ•œ๋‹ค

 

 

 

๋Œ“๊ธ€