๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Computer Science/Operating System

12 Paging (ํŽ˜์ด์ง•)

by Dowon Kang 2024. 1. 7.

ํŽ˜์ด์ง•(Paging)์€ ์šด์˜์ฒด์ œ์™€ ํ•˜๋“œ์›จ์–ด๊ฐ€ ํ˜‘๋ ฅํ•˜์—ฌ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋งคํ•‘ํ•˜๋Š” ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ผ์ •ํ•œ ํฌ๊ธฐ์˜ ๊ณ ์ •๋œ ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ธ”๋ก์€ ํŽ˜์ด์ง€๋ผ๊ณ  ๋ถˆ๋ฆฌ๋ฉฐ, ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋Š” ํŽ˜์ด์ง€ ํ”„๋ ˆ์ž„์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๋™์ผํ•œ ํฌ๊ธฐ์˜ ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

๋น„์—ฐ์†์  ํ• ๋‹น

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

 

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

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

  • PTBR์€ "Page Table Base Register"์˜ ์•ฝ์–ด๋กœ, ์ปดํ“จํ„ฐ ์•„ํ‚คํ…์ฒ˜์—์„œ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์ค‘์š”ํ•œ ๋ ˆ์ง€์Šคํ„ฐ์ž…๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ํฌ๊ธฐ๊ฐ€ ํฌ๊ฑฐ๋‚˜ ๋‹ค์–‘ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. PTBR์€ ์ด๋Ÿฌํ•œ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋ฉด, ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ๊ฐ€์ƒ ์ฃผ์†Œ ๊ณต๊ฐ„๊ณผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„ ๊ฐ„์˜ ๋งคํ•‘ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. PTBR์€ ์ด ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ์‹œ์ž‘ ์ง€์ ์„ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์šด์˜์ฒด์ œ๋Š” ๊ฐ€์ƒ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • TLB๋Š” "Translation Lookaside Buffer"์˜ ์•ฝ์–ด๋กœ, ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ณ ์† ์บ์‹œ์ž…๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์—์„œ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋ฉด, TLB๋Š” ๊ฐ€์ƒ ์ฃผ์†Œ์—์„œ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ์˜ ๋ณ€ํ™˜์„ ๋‹ด๋‹นํ•˜๋Š”๋ฐ, ์ด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ๋“ค์„ ์บ์‹œ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

 

๊ณ ์ • ํฌ๊ธฐ ํŽ˜์ด์ง€

๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณ ์ • ํฌ๊ธฐ์˜ ํŽ˜์ด์ง€๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. ์ด ํŽ˜์ด์ง€๋Š” ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์™€ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ์–‘์ชฝ์— ๋™์ผํ•œ ํฌ๊ธฐ๋กœ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

๋‚ด๋ถ€ ๋‹จํŽธํ™”(Internal Fragmentation)

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

๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๊ธฐ๋ฒ•์—์„œ๋Š” ๋‚ด๋ถ€ ๋‹จํŽธํ™”๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๋“ค์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์—๋Š” ๊ฐ€๋ณ€ ํฌ๊ธฐ ํ• ๋‹น, ๋ฉ”๋ชจ๋ฆฌ ํ’€(memory pool) ์‚ฌ์šฉ, ๋˜๋Š” ํž™ ๊ด€๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ตœ์ ํ™”๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 


 

 

ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ(Page Table Entry, PTE)

ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ(Page Table Entry, PTE)๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์—์„œ ํ•œ ๊ฐœ์˜ ํ•ญ๋ชฉ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๊ฐ„์˜ ๋งคํ•‘ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋ฉฐ, ๊ฐ๊ฐ์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ๋Š” ํ•˜๋‚˜์˜ ๊ฐ€์ƒ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ๋งคํ•‘ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ”„๋ ˆ์ž„ ๋ฒˆํ˜ธ(Frame Number): ๊ฐ€์ƒ ํŽ˜์ด์ง€๊ฐ€ ๋งคํ•‘๋˜๋Š” ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์˜ ํ”„๋ ˆ์ž„ ๋ฒˆํ˜ธ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ€์ƒ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์œ ํšจ ๋น„ํŠธ(Valid Bit): ํ•ด๋‹น ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ๊ฐ€ ์œ ํšจํ•œ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋น„ํŠธ์ž…๋‹ˆ๋‹ค. ์œ ํšจํ•œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ๋Š” ๊ฐ€์ƒ ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ ์ฃผ์†Œ ๊ฐ„์˜ ์œ ํšจํ•œ ๋งคํ•‘์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ๊ฐ€์ƒ ํŽ˜์ด์ง€๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ์“ฐ๊ธฐ ๊ถŒํ•œ ๋น„ํŠธ(Write-Protect Bit): ํ•ด๋‹น ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์“ฐ๊ธฐ ๊ถŒํ•œ์„ ์ œ์–ดํ•˜๋Š” ๋น„ํŠธ์ž…๋‹ˆ๋‹ค. ์ด ๋น„ํŠธ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉด ํ•ด๋‹น ํŽ˜์ด์ง€๋Š” ์ฝ๊ธฐ ์ „์šฉ์ด ๋˜์–ด ์“ฐ๊ธฐ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ์•ก์„ธ์Šค ๊ถŒํ•œ ๋น„ํŠธ(Access Rights Bit): ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์ฝ๊ธฐ ๋ฐ ์‹คํ–‰ ๊ถŒํ•œ์„ ์ œ์–ดํ•˜๋Š” ๋น„ํŠธ์ž…๋‹ˆ๋‹ค. ์ด ๋น„ํŠธ๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ํŽ˜์ด์ง€์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐํƒ€ ํ”Œ๋ž˜๊ทธ ๋น„ํŠธ(Other Flags): ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ๊ตฌํ˜„์— ๋”ฐ๋ผ์„œ ์ถ”๊ฐ€์ ์ธ ํ”Œ๋ž˜๊ทธ ๋น„ํŠธ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์บ์‹œ ์‚ฌ์šฉ ์—ฌ๋ถ€ ๋“ฑ์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ๋Š” ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์™€ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ„์˜ ์ค‘์š”ํ•œ ์—ฐ๊ฒฐ์„ ์ œ๊ณตํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

 


 

์š”๊ตฌ ํŽ˜์ด์ง•(Demand Paging)

์š”๊ตฌ ํŽ˜์ด์ง•(Demand Paging)์€ ์šด์˜์ฒด์ œ๊ฐ€ ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰์„ ์œ„ํ•ด ๋ชจ๋“  ํŽ˜์ด์ง€๋ฅผ ํ•œ ๋ฒˆ์— ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜์ง€ ์•Š๊ณ , ์‹ค์ œ๋กœ ํ•„์š”ํ•œ ํŽ˜์ด์ง€๋งŒ ์ ์žฌํ•˜๋Š” ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ํšจ์œจ์„ฑ์„ ๋†’์ด๊ณ , ์‹œ์Šคํ…œ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์š”๊ตฌ ํŽ˜์ด์ง•์˜ ์ฃผ์š” ํŠน์ง• 

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

์š”๊ตฌ ํŽ˜์ด์ง•์€ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์šด์˜์ฒด์ œ์—์„œ ์ฑ„ํƒ๋˜์–ด, ํšจ์œจ์ ์ด๊ณ  ์œ ์—ฐํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

 

 


 

 

 

ํŽ˜์ด์ง•์˜ ์ž‘๋™: ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋  ๋•Œ, ํ•„์š”ํ•œ ํŽ˜์ด์ง€๋“ค์ด ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ํŽ˜์ด์ง€๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์—†๋Š” ๊ฒฝ์šฐ ํŽ˜์ด์ง€ ๋ถ€์žฌ(Page Fault)๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ์šด์˜์ฒด์ œ๋Š” ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ๋””์Šคํฌ์—์„œ ๊ฐ€์ ธ์™€ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

 

ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์‹œ์Šคํ…œ์—์„œ ํŽ˜์ด์ง€ ๋ถ€์žฌ(Page Fault)๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์–ด๋–ค ํŽ˜์ด์ง€๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ œ๊ฑฐํ•˜๊ณ  ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋กœ ๊ต์ฒดํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์žˆ์œผ๋ฉฐ, ๊ฐ๊ฐ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์˜ ํšจ์œจ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๋‹ค๋ฅธ ์ „๋žต์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ข…๋ฅ˜๋“ค 

  1. FIFO (First-In-First-Out): ๋ฉ”๋ชจ๋ฆฌ์— ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์˜ค๋ž˜์ „์— ๋ฉ”๋ชจ๋ฆฌ์— ๋“ค์–ด์˜จ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค.
  2. LRU (Least Recently Used): ๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•  ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ํŽ˜์ด์ง€์˜ ์‚ฌ์šฉ ์‹œ๊ฐ„์„ ๊ฐฑ์‹ ํ•˜๊ณ , ๊ต์ฒดํ•  ๋•Œ๋Š” ์‚ฌ์šฉ ์‹œ๊ฐ„์ด ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ํŽ˜์ด์ง€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  3. LFU (Least Frequently Used): ์‚ฌ์šฉ ๋นˆ๋„๊ฐ€ ๊ฐ€์žฅ ์ ์€ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•  ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ํŽ˜์ด์ง€์˜ ์‚ฌ์šฉ ํšŸ์ˆ˜๋ฅผ ๊ฐฑ์‹ ํ•˜๊ณ , ๊ต์ฒดํ•  ๋•Œ๋Š” ์‚ฌ์šฉ ํšŸ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ ์€ ํŽ˜์ด์ง€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  4. Optimal: ์ด๋ก ์ ์œผ๋กœ ์ตœ์ ์ธ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ, ๋ฏธ๋ž˜์˜ ํŽ˜์ด์ง€ ์ ‘๊ทผ์„ ๋ชจ๋‘ ๊ณ ๋ คํ•˜์—ฌ ์ตœ์†Œํ•œ์˜ ํŽ˜์ด์ง€ ๋ถ€์žฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ๋Š” ๋ฏธ๋ž˜์˜ ์ ‘๊ทผ ํŒจํ„ด์„ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๊ตฌํ˜„์ด ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
  5. Clock (๋˜๋Š” Second-Chance): FIFO์™€ LRU์˜ ์ค‘๊ฐ„ ์ง€์ ์— ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ, ์ฐธ์กฐ ๋น„ํŠธ(Reference Bit)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€์˜ "์ˆœ์„œ"๋ฅผ ์ถ”์ •ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
  6. NRU (Not Recently Used): ํŽ˜์ด์ง€์˜ ์ฐธ์กฐ ์—ฌ๋ถ€์™€ ์ˆ˜์ • ์—ฌ๋ถ€์— ๋”ฐ๋ผ ํŽ˜์ด์ง€๋ฅผ 4๊ฐœ์˜ ํด๋ž˜์Šค๋กœ ๋ถ„๋ฅ˜ํ•˜๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.

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

๋Œ“๊ธ€