๐Ÿ› ๏ธ OS

[OS] 13. ํŽ˜์ด์ง•์„ ํ†ตํ•œ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

JINiOS 2024. 3. 5. 20:39
728x90
  • ์—ฐ์† ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์˜ ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ์ 
    1. ์™ธ๋ถ€ ๋‹จํŽธํ™”
    2. ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ํฐ ํ”„๋กœ์„ธ์Šค ์‹คํ–‰ ๋ถˆ๊ฐ€
  • ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ
    • ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ผ๋ถ€๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜์—ฌ, ์‹ค์ œ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ณด๋‹ค ๋” ํฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ธฐ์ˆ 
    • ํŽ˜์ด์ง•, ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜

 

1. ํŽ˜์ด์ง•์ด๋ž€

  • ์™ธ๋ถ€ ๋‹จํŽธํ™”๊ฐ€ ๋ฐœ์ƒํ–ˆ๋˜ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ œ?
    • ๊ฐ๊ธฐ ๋‹ค๋ฅธ ํฌ๊ธฐ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์—ฐ์†์ ์œผ๋กœ ํ• ๋‹น๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ
    • ๊ทธ๋Ÿฌ๋ฉด, ํ”„๋กœ์„ธ์Šค๋ฅผ ์ผ์ • ํฌ๊ธฐ๋กœ ์ž๋ฅด๊ณ , ์ด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๋ถˆ์—ฐ์†์ ์œผ๋กœ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์–ด๋–จ๊นŒ? → ์™ธ๋ถ€ ๋‹จํŽธํ™”๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ฒ ์ฃ !
  • ํŽ˜์ด์ง•: paging
    • ํ”„๋กœ์„ธ์Šค์˜ ๋…ผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ํŽ˜์ด์ง€(page)๋ผ๋Š” ์ผ์ • ๋‹จ์œ„๋กœ ์ž๋ฅด๊ณ ,
    • ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฌผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ํ”„๋ ˆ์ž„(frame)์ด๋ผ๋Š” ํŽ˜์ด์ง€์™€ ๋™์ผํ•œ ์ผ์ •ํ•œ ๋‹จ์œ„๋กœ ์ž๋ฅธ ๋’ค
    • ํŽ˜์ด์ง€๋ฅผ ํ”„๋ ˆ์ž„์— ํ• ๋‹นํ•˜๋Š” ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•
  • ํŽ˜์ด์ง•์—์„œ์˜ ์Šค์™€ํ•‘
    • ํ”„๋กœ์„ธ์Šค ๋‹จ์œ„์˜ ์Šค์™‘ ์ธ, ์Šค์™‘ ์•„์›ƒ์ด ์•„๋‹Œ ํŽ˜์ด์ง€ ๋‹จ์œ„์˜ ์Šค์™‘ ์ธ(ํŽ˜์ด์ง€ ์ธ), ์Šค์™‘ ์•„์›ƒ(ํŽ˜์ด์ง€ ์•„์›ƒ)
    • ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋  ํ•„์š”๊ฐ€ ์—†๋Š” ํŽ˜์ด์ง€๋“ค์€ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜๋กœ ์Šค์™‘ ์•„์›ƒ
    • ์‹คํ–‰์— ํ•„์š”ํ•œ ํŽ˜์ด์ง€๋“ค์€ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์Šค์™‘ ์ธ
    • ํŽ˜์ด์ง€ ์ธ์•„์›ƒ์ด ์‹œ์‚ฌํ•˜๋Š” ์ : ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ชจ๋“  ํŽ˜์ด์ง€๊ฐ€ ์ „๋ถ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜์–ด์žˆ์„ ํ•„์š”๋Š” ์—†๋‹ค๋Š” ์ 
    • ๋‹ฌ๋ฆฌ ๋งํ•ด ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ํฐ ํ”„๋กœ์„ธ์Šค๋„ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋‹ค
  •  ๋ฌธ์ œ!!
    • ํ”„๋กœ์„ธ์Šค๋ฅผ ์ด๋ฃจ๋Š” ํŽ˜์ด์ง€๊ฐ€ ์–ด๋Š ํ”„๋ ˆ์ž„์— ์ ์žฌ๋˜์–ด ์žˆ๋Š”์ง€ CPU๊ฐ€ ์ผ์ผ์ด ์•Œ๊ธฐ๋ž€ ์–ด๋ ต๋‹ค
    • ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ๋ถˆ์—ฐ์†์ ์œผ๋กœ ๋ฐฐ์น˜๋˜์–ด ์žˆ๋‹ค๋ฉด CPU์ž…์žฅ์—์„œ ์ด๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜๊ฐ€ ์—†์Œ
    • CPU ์ž…์žฅ์—์„œ ‘๋‹ค์Œ์— ์‹คํ–‰ํ•  ๋ช…๋ น์–ด ์œ„์น˜’๋ฅผ ์ฐพ๊ธฐ๊ฐ€ ์–ด๋ ค์›Œ์ง
    • → ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•: ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”

 

2. ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”

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

 

3. ๋‚ด๋ถ€ ๋‹จํŽธํ™”

  • ํŽ˜์ด์ง€ ํฌ๊ธฐ๊ฐ€ 10KB, ํ”„๋กœ์„ธ์Šค ํฌ๊ธฐ 108KB?
  • 2KB: ๋‚ด๋ถ€ ๋‹จํŽธํ™”
  • ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€ ํฌ๊ธฐ๋ณด๋‹ค ์ž‘์€ ํฌ๊ธฐ๋กœ ๋ฐœ์ƒ(ํŽ˜์ด์ง€์™€ ํ”„๋กœ์„ธ์Šค ํฌ๊ธฐ๊ฐ€ ๋ฐฐ์ˆ˜์˜ ํฌ๊ธฐ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ)

 

4. PTBR

  • ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ์žˆ๊ณ , ๊ฐ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ CPU ๋‚ด์˜ ํ”„๋กœ์„ธ์Šค ํ…Œ์ด๋ธ” ๋ฒ ์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ(PTBR)๊ฐ€ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
  • ๊ทธ๋Ÿฐ๋ฐ, ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ์œผ๋ฉด? ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์‹œ๊ฐ„ ๋‘ ๋ฐฐ๋กœ
  • ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด ํ•œ ๋ฒˆ, ํŽ˜์ด์ง€ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด ํ•œ ๋ฒˆ
  • ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด TLB

 

5. TLB

  • TLB: CPU ๊ณ์— ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ
  • ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ์ผ๋ถ€๋ฅผ ๊ฐ€์ ธ์™€ ์ €์žฅ
  • CPU๊ฐ€ ์ ‘๊ทผํ•˜๋ ค๋Š” ๋…ผ๋ฆฌ ์ฃผ์†Œ๊ฐ€ TLB์— ์žˆ๋‹ค๋ฉด? TLB ํžˆํŠธ (๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ํ•œ ๋ฒˆ)
  • CPU๊ฐ€ ์ ‘๊ทผํ•˜๋ ค๋Š” ๋…ผ๋ฆฌ ์ฃผ์†Œ๊ฐ€ TLB์— ์—†๋‹ค๋ฉด TLB ๋ฏธ์Šค (๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ๋‘ ๋ฒˆ)

 

6. ํŽ˜์ด์ง•์—์„œ์˜ ์ฃผ์†Œ ๋ณ€ํ™˜

  • ํŠน์ • ์ฃผ์†Œ์— ์ ‘๊ทผํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ์–ด๋–ค ์ •๋ณด๊ฐ€ ํ•„์š”ํ• ๊นŒ?
    • ์–ด๋–ค ํŽ˜์ด์ง€/ํ”„๋ ˆ์ž„์— ์ ‘๊ทผํ•˜๊ณ  ์‹ถ์€์ง€
    • ์ ‘๊ทผํ•˜๋ ค๋Š” ์ฃผ์†Œ๊ฐ€ ๊ทธ ํŽ˜์ด์ง€ ํ˜น์€ ํ”„๋ ˆ์ž„์œผ๋กœ๋ถ€ํ„ฐ ์–ผ๋งˆ๋‚˜ ๋ฉ€์–ด์ ธ ์žˆ๋Š”์ง€
    • ํŽ˜์ด์ง• ์‹œ์Šคํ…œ์—์„œ์˜ ๋…ผ๋ฆฌ ์ฃผ์†Œ
      • ํŽ˜์ด์ง• ๋ฒˆํ˜ธ(page number)์™€ ๋ณ€์œ„(offset)
      • <ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ, ๋ณ€์œ„> ๋กœ ์ด๋ฃจ์–ด์ง„ ๋…ผ๋ฆฌ ์ฃผ์†Œ๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ํ†ตํ•ด <ํ”„๋ ˆ์ž„ ๋ฒˆํ˜ธ, ๋ณ€์œ„> ๋กœ ๋ณ€ํ™˜๋œ๋‹ค

 

7. ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ

ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ๊ฐ๊ฐ์˜ ํ–‰: ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ(PTE)

ํ˜„์žฌ๊นŒ์ง€ ์„ค๋ช…ํ•œ PTE๋Š” "ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ", "ํ”„๋ ˆ์ž„ ๋ฒˆํ˜ธ"์˜€์Œ

  • ์ด์™ธ์— ๋‹ด๊ธฐ๋Š” ์ •๋ณด๋Š”? ์šด์˜์ฒด์ œ๋งˆ๋‹ค ์ฐจ์ด๊ฐ€ ์žˆ์Œ
    • ์œ ํšจ ๋น„ํŠธ
      • ํ˜„์žฌ ํ•ด๋‹น ํŽ˜์ด์ง€์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ์ง€ ์—ฌ๋ถ€
      • ํ˜„์žฌ ํŽ˜์ด์ง€๊ฐ€ ์Šค์™‘์˜์—ญ์— ์žˆ๋Š”์ง€, ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š”์ง€์˜ ์—ฌ๋ถ€๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Œ
      • 1์ด๋ฉด ๋ฉ”๋ชจ๋ฆฌ ์ ์žฌ, 0์ด๋ฉด ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜-์Šค์™‘์˜์—ญ์— ์ ์žฌ
      • ๋งŒ์•ฝ ์œ ํšจ๋น„ํŠธ๊ฐ€ 0์ธ ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•˜๋ฉด?
        • ํŽ˜์ด์ง€ ํดํŠธ(page fault)๋ผ๋Š” ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ
          1. CPU๋Š” ๊ธฐ์กด์˜ ์ž‘์—… ๋‚ด์—ญ์„ ๋ฐฑ์—…ํ•ฉ๋‹ˆ๋‹ค.
          2. ํŽ˜์ด์ง€ ํดํŠธ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
          3. ํŽ˜์ด์ง€ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด์€ ์›ํ•˜๋Š” ํŽ˜์ด์ง€๋ฅผ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๊ฐ€์ ธ์˜จ ๋’ค ์œ ํšจ ๋น„ํŠธ๋ฅผ 1๋กœ ๋ณ€๊ฒฝํ•ด ์ค๋‹ˆ๋‹ค.
          4. ํŽ˜์ด์ง€ ํดํŠธ๋ฅผ ์ฒ˜๋ฆฌํ–ˆ๋‹ค๋ฉด ์ด์ œ CPU๋Š” ํ•ด๋‹น ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
    • ๋ณดํ˜ธ ๋น„ํŠธ
      • ํŽ˜์ด์ง€ ๋ณดํ˜ธ ๊ธฐ๋Šฅ์„ ์œ„ํ•ด ์กด์žฌํ•˜๋Š” ๋น„ํŠธ
      • ์ฝ๊ธฐ, ์“ฐ๊ธฐ, ์‹คํ–‰ ๋“ฑ ๊ถŒํ•œ์„ ๋‚˜๋ˆ„์–ด์„œ ์„ค์ •
    • ์ฐธ์กฐ ๋น„ํŠธ
      • CPU๊ฐ€ ์ด ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•œ ์ ์ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€
    • ์ˆ˜์ • ๋น„ํŠธ(dirty bit)
      • CPU๊ฐ€ ์ด ํŽ˜์ด์ง€์— ๋ฐ์ดํ„ฐ๋ฅผ ์“ด ์ ์ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€
      • ์ˆ˜์ • ๋น„ํŠธ์˜ ์กด์žฌ ์ด์œ ?
        ์ˆ˜์ •๋œ ํŽ˜์ด์ง€๋Š” ์Šค์™‘ ์•„์›ƒ๋  ๋•Œ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜์—๋„ ์“ฐ๊ธฐ ์ž‘์—…์„ ๊ฑฐ์ณ์•ผ ํ•œ๋‹ค.(๋ณ€๊ฒฝ ๋‚ด์—ญ์„ ๋ฐ˜์˜ํ•ด์•ผํ•œ๋‹ค)
            •  

 

 

 

 

 


 

 

 

ใ€Žํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ์ปดํ“จํ„ฐ ๊ตฌ์กฐ+์šด์˜์ฒด์ œใ€ ๊ฐ•์˜ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค

728x90