๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“ŒCS/OS

[OS] ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜

by dar0m! 2021. 10. 13.
ํŽ˜์ด์ง€ ๋ถ€์žฌ ๋ฐœ์ƒ → ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ํ• ๋‹นํ•ด์•ผ ํ•จ → ํ˜„์žฌ ํ• ๋‹น๋œ ํŽ˜์ด์ง€ ์ค‘ ์–ด๋–ค ๊ฒƒ ๊ต์ฒดํ•  ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•
Demanding Paging์€ ์š”๊ตฌ๋˜์–ด์ง€๋Š” ํŽ˜์ด์ง€๋งŒ backing store์—์„œ ๊ฐ€์ ธ์˜จ๋‹ค. ํ•˜์ง€๋งŒ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ๊ณ„์† ์‹คํ–‰ํ•จ์— ๋”ฐ๋ผ ์š”๊ตฌ ํŽ˜์ด์ง€๋„ ๊ณ„์† ๋Š˜์–ด๋‚˜๊ณ , ์–ธ์  ๊ฐ€๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฐ€๋“ ์ฐจ๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.(memory full)
์—ฌ๊ธฐ์„œ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์ด ์ƒˆ๋กœ ์‹คํ–‰๋˜๊ฑฐ๋‚˜ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋ฅผ ์š”๊ตฌํ•œ๋‹ค๋ฉด ์ด๋ฏธ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ํŽ˜์ด์ง€ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋‹ค์‹œ backing store์— ๋ณด๋‚ด๊ณ (page-out), ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค์•ผํ•œ๋‹ค.(page-in) ์ด๋ฅผ ํŽ˜์ด์ง€ ๊ต์ฒด๋ผ๊ณ  ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ backing store๋กœ page-out์ด ๋œ ํŽ˜์ด์ง€๋ฅผ victim page๋ผ๊ณ  ํ•œ๋‹ค.
  • ์š”๊ตฌ ํŽ˜์ด์ง•(Demanding Paging)
    • ํ•„์š”ํ•œ ํŽ˜์ด์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹นํ•˜๋Š” ํŽ˜์ด์ง• ๊ธฐ๋ฒ•.
    • ๊ธฐ์กด์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”๊ณผ ๋‹ค๋ฅธ ์ ์€ valid bit๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค. ์ด๋Š” ํ˜„์žฌ ๋ฉ”๋ชจ๋ฆฌ์— ํŽ˜์ด์ง€๊ฐ€ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋น„ํŠธ์ด๋‹ค. ํ˜„์žฌ ํŽ˜์ด์ง€๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋‹ค๋ฉด 1, ์—†๋‹ค๋ฉด 0๊ฐ’์„ ๊ฐ–๋Š”๋‹ค. 
    • ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๋Œ€ํ‘œ์ ์œผ๋กœ ๋‘ ๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„ ์š”๊ตฌ ํŽ˜์ด์ง•์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์™€ ์š”๊ตฌ ํŽ˜์ด์ง•์„ ๊ฐ™์€ ์šฉ์–ด๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

 

1. ํŽ˜์ด์ง€ ๋ถ€์žฌ(Page Fault)

ํŽ˜์ด์ง€ ๋ถ€์žฌ๋Š” CPU๊ฐ€ ์ ‘๊ทผํ•˜๋ ค๋Š” ํŽ˜์ด์ง€๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์—†๋Š” ๊ฒฝ์šฐ์ด๋‹ค. ์ฆ‰, ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ valid bit๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ์ด๋‹ค.

์š”๊ตฌ ํŽ˜์ด์ง€(Demanding Paging)
ํŽ˜์ด์ง€ ๋ถ€์žฌ ์ฒ˜๋ฆฌ ๊ณผ์ •

์œ„ ๊ทธ๋ฆผ์€ page fault๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์„ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋‹ค.

  1. ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š”์ง€ valid bit๋ฅผ ํ™•์ธํ•œ๋‹ค.
  2. valid bit๊ฐ€ 0์ด๋ผ๋ฉด CPU์— ์ธํ„ฐ๋ŸฝํŠธ ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด์–ด ์šด์˜์ฒด์ œ ๋‚ด๋ถ€ ํ•ด๋‹น ISR(Interrupt Service Routine)๋กœ ์ ํ”„ํ•œ๋‹ค.
  3. ํ•ด๋‹น ISR์—์„œ backing store(๋””์Šคํฌ)๋ฅผ ํƒ์ƒ‰ํ•˜์—ฌ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์˜ ํŽ˜์ด์ง€๋ฅผ ์ฐพ๋Š”๋‹ค.
  4. ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ๋น„์–ด์žˆ๋Š” ํ”„๋ ˆ์ž„์— ํ• ๋‹นํ•œ๋‹ค.
  5. ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๊ฐฑ์‹ ํ•œ๋‹ค.(ํ”„๋ ˆ์ž„ ๋ฒˆํ˜ธ ์„ค์ •, valid bit 1๋กœ ๋ณ€๊ฒฝ)
  6. ๋‹ค์‹œ ๋ช…๋ น์–ด๋กœ ๋Œ์•„๊ฐ€์„œ ์‹คํ–‰ํ•œ๋‹ค.

1.2. ํŽ˜์ด์ง€ ๊ต์ฒด(Page Replacement)

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

์—ฌ๊ธฐ์„œ ์–ด๋–ค ํŽ˜์ด์ง€๋ฅผ page-out ์‹œ์ผœ์•ผํ•  ์ง€ ์ •ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€ ์žˆ๋Š” ํŽ˜์ด์ง€ ์ค‘ CPU์— ์ˆ˜์ •(modigy)๋˜์ง€ ์•Š๋Š” ํŽ˜์ด์ง€๋ฅผ ๊ณ ๋ฅด๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ด๋‹ค. ์ˆ˜์ •๋˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋Š” page-out์ด ๋  ๋•Œ backing store์— ์“ฐ๊ธฐ(write) ์—ฐ์‚ฐ์„ ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. backing store๋Š” ์ฝ๋Š” ์‹œ๊ฐ„๋„ ๋Š๋ฆฌ์ง€๋งŒ, ๊ฑฐ๊ธฐ์— ๋”ํ•ด ์“ฐ๊ธฐ ์ž‘์—…๊นŒ์ง€ ํ•œ๋‹ค๋ฉด ๋”์šฑ ๋น„ํšจ์œจ์ ์ผ ๊ฒƒ์ด๋‹ค.(์ด๋•Œ, page-out ๋˜๋Š” ํŽ˜์ด์ง€๋ฅผ victim page๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค)

1.2.1. Victim Page(ํฌ์ƒ์–‘ ํŽ˜์ด์ง€)

ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ์ˆ˜์ •๋˜์—ˆ๋Š”์ง€ ์•ˆ๋˜์—ˆ๋Š”์ง€๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋Š”๋ฐ, ์ด๋ฅผ ์œ„ํ•ด ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์— modified bit(=dirty bit)๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ด๋ฅผ ๊ฒ€์‚ฌํ•œ๋‹ค. ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ์ˆ˜์ •๋˜์—ˆ๋‹ค๋ฉด ์ด ๋น„ํŠธ๋ฅผ 1๋กœ ๋‘๊ณ , ์ˆ˜์ •๋˜์ง€ ์•Š์œผ๋ฉด 0์œผ๋กœ ๋‘”๋‹ค. ์ด๋ฅผ ์ด์šฉํ•ด์„œ victim page๋Š” ์ตœ๋Œ€ํ•œ ์ˆ˜์ •๋˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋ฅผ ์„ ํƒํ•œ๋‹ค.

์œ„ ๊ทธ๋ฆผ์€ modified bit๋ฅผ ์ถ”๊ฐ€ํ•œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ๋ชจ์Šต์ด๋‹ค. ์—ฌ๊ธฐ์„œ ์ˆ˜์ •๋˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋Š” 0, 2, 3๋ฒˆ 3๊ฐœ์˜ ํŽ˜์ด์ง€๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ ์ด ์ค‘์—์„œ๋Š” ์–ด๋–ค ํŽ˜์ด์ง€๋ฅผ ์„ ํƒํ•ด์•ผ ํ• ๊นŒ?

์ œ์ผ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์€ ๋žœ๋คํ•˜๊ฒŒ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ, ์ด๋Š” ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†๋‹ค. ๊ทธ ๋‹ค์Œ์€ ๊ฐ€์žฅ ๋จผ์ € ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜จ ํŽ˜์ด์ง€๋ฅผ ํฌ์ƒ์–‘ ํŽ˜์ด์ง€๋กœ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋Š” ์•„์ฃผ ์œ ๋ช…ํ•œ FIFO(First-In First-Out) ๋ฐฉ์‹์ด๋‹ค. ์ด ์™ธ์—๋„ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค.

์ด์™€ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ์ƒํ™ฉ์— ๋งž๋Š” ํŽ˜์ด์ง€ ๊ต์ฒด๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์กด์žฌํ•œ๋‹ค.

 

2. ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜

Page Reference String

ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ดํŽด๋ณด๊ธฐ ์ „์— Page reference string ์ด๋ผ๋Š” ์šฉ์–ด๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค. CPU๊ฐ€ ๋‚ด๋Š” ์ฃผ์†Œ๋Š” ์ด์ง„์ˆ˜ ๋‹จ์œ„์ด์ง€๋งŒ, ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด์ง„์ˆ˜ ์ฃผ์†Œ ๋‹จ์œ„๊ฐ€ ์•„๋‹Œ ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ๊ณ„์‚ฐํ•ด์•ผํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, CPU๊ฐ€ ๋‚ด๋Š” ์ฃผ์†Œ๋ฅผ ๊ฐ„๋‹จํžˆ ์‹ญ์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•˜์—ฌ {100, 101, 102, 432, 612, 103, 104, 611, 612} ๋ผ๊ณ  ํ•˜์ž. ๋งŒ์•ฝ ํŽ˜์ด์ง€ ํฌ๊ธฐ๊ฐ€ 100bytes๋ผ๋ฉด, ์œ„ ์ฃผ์†Œ๋ฅผ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด {1, 1, 1, 4, 6, 1, 1, 6, 6} ์ด๋‹ค. ์ฃผ์†Œ 100๋ฒˆ์ง€๋Š” 1๋ฒˆ ํŽ˜์ด์ง€์—์„œ offset์ด 0์ธ ์œ„์น˜์ด๊ณ , 101์€ 1๋ฒˆ ํŽ˜์ด์ง€์˜ offset 1์ธ ์œ„์น˜๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋กœ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์„ page reference string์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด {1, 4, 6, 1, 6}์ด๋‹ค. ์ด๋Š” ๊ฐ„๋‹จํžˆ ๋งํ•˜๋ฉด ์—ฐ์†๋œ ํŽ˜์ด์ง€๋Š” ์ƒ๋žตํ•˜๊ณ  ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋งŒ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด ์ด์œ ๋Š” ์—ฐ์†๋œ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•  ๋•Œ๋Š” ํ•œ ๋ฒˆ page fault๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๊ฐ™์€ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ์—๋Š” ์ ˆ๋Œ€ page fault๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ •๋ฆฌํ•˜๋ฉด, page size = 100bytes ์ผ๋•Œ

  • CPU ์ฃผ์†Œ = {100, 101, 102, 432, 612, 103, 104, 611, 612}
  • Page ๋ฒˆํ˜ธ = {1, 1, 1, 4, 6, 1, 1, 6, 6}
  • Page reference string = {1, 4, 6, 1, 6}

2.1. First-In First-Out(FIFO)

  • victim page : page-out ๋˜๋Š” ํŽ˜์ด์ง€๋Š”, ๊ฐ€์žฅ ๋จผ์ € ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜จ ํŽ˜์ด์ง€
  • ์•„์ด๋””์–ด : ์ดˆ๊ธฐํ™” ์ฝ”๋“œ๊ฐ€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๋Š” ์•„์ด๋””์–ด์—์„œ ์‹œ์ž‘๋˜์—ˆ๋‹ค.
  • First-in First-out, ๋ฉ”๋ชจ๋ฆฌ์— ๋จผ์ € ์˜ฌ๋ผ์˜จ ํŽ˜์ด์ง€๋ฅผ ๋จผ์ € ๋‚ด๋ณด๋‚ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ, ํŠนํžˆ ์ดˆ๊ธฐํ™” ์ฝ”๋“œ์—์„œ ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค.
  • ์ฒ˜์Œ ํ”„๋กœ์„ธ์Šค ์‹คํ–‰์‹œ์—๋Š” ๋ฌด์กฐ๊ฑด ํ•„์š”ํ•œ ์ฝ”๋“œ์ด๋ฏ€๋กœ, FIFO ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ดˆ๊ธฐํ™”๋ฅผ ์‹œ์ผœ์ค€ ํ›„ ๊ฐ€์žฅ ๋จผ์ € ๋‚ด๋ณด๋‚ด๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • Belady's Anomaly : ํ”„๋ ˆ์ž„ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉด(= ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์ด ์ฆ๊ฐ€ํ•˜๋ฉด) page fault ์ˆ˜๊ฐ€ ์ค„์–ด๋“œ๋Š” ๊ฒƒ์ด ์ •์ƒ์ ์ด์ง€๋งŒ, ํŠน์ •ํ•œ ํŽ˜์ด์ง€ ์ฐธ์กฐ์—ด์— ๋Œ€ํ•ด์„œ๋Š” ํ”„๋ ˆ์ž„ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•ด๋„ page fault ์ˆ˜๊ฐ€ ์˜คํžˆ๋ ค ์ฆ๊ฐ€ํ•˜๋Š” ์ด์ƒ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋ฅผ Belady's Anomaly๋ผ ํ•œ๋‹ค.

2.2. Optimal(OPT)

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

  • victim page : page-out ๋˜๋Š” ํŽ˜์ด์ง€๋Š”, ๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ํŽ˜์ด์ง€

  • Optimal ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์•ž์œผ๋กœ ๊ฐ€์žฅ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ํŽ˜์ด์ง€๋ฅผ ๊ฐ€์žฅ ์šฐ์„ ์ ์œผ๋กœ ๋‚ด๋ณด๋ƒ„
  • FIFO์— ๋น„ํ•ด ํŽ˜์ด์ง€ ๊ฒฐํ•จ์˜ ํšŸ์ˆ˜๋ฅผ ๋งŽ์ด ๊ฐ์†Œ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
  • ํ•˜์ง€๋งŒ, ์‹ค์งˆ์ ์œผ๋กœ ํŽ˜์ด์ง€๊ฐ€ ์•ž์œผ๋กœ ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๋Š” ๋ณด์žฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜ํ–‰ํ•˜๊ธฐ ์–ด๋ ค์šด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

2.3. Least-Recently-Used(LRU)

  • victim page : page-out ๋˜๋Š” ํŽ˜์ด์ง€๋Š”, ์ตœ๊ทผ์— ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํŽ˜์ด์ง€
  • ์•„์ด๋””์–ด : ์ตœ๊ทผ์— ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์œผ๋ฉด, ๋‚˜์ค‘์—๋„ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค. (์‹ค์ œ๋กœ๋„ ์ตœ๊ทผ์— ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋Š” ์•ž์œผ๋กœ๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ํ™•๋ฅ ์ด ๋†’๋‹ค)

  • Least-Recently-Used, ์ตœ๊ทผ์— ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ๋‚ด๋ ค๋ณด๋‚ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • LRU๋Š” ๊ทผ์‚ฌ ํ•ด๋ฅผ ๊ตฌํ•˜๋ฏ€๋กœ OPT๋ณด๋‹ค๋Š” ํŽ˜์ด์ง€ ๊ฒฐํ•จ์ด ๋” ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์ง€๋งŒ, FIFO๋ณด๋‹ค๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ ๊ฒŒ ์ผ์–ด๋‚œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ˜„์žฌ ๋Œ€๋ถ€๋ถ„ ํ™˜๊ฒฝ์—์„œ๋Š” LRU๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.
  • OPT์˜ ๊ฒฝ์šฐ ๋ฏธ๋ž˜ ์˜ˆ์ธก์ด์ง€๋งŒ, LRU์˜ ๊ฒฝ์šฐ๋Š” ๊ณผ๊ฑฐ๋ฅผ ๋ณด๊ณ  ํŒ๋‹จํ•˜๋ฏ€๋กœ ์‹ค์งˆ์ ์œผ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค.
  • ์ตœ๊ทผ ์ฐธ์กฐ ์‹œ๊ฐ์„ ์†Œํ”„ํŠธ์›จ์–ด์ ์œผ๋กœ ์œ ์ง€ํ•ด์•ผํ•˜๋ฏ€๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์šด์˜์— ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

3. ๊ต์ฒด ๋ฐฉ์‹

Global ๊ต์ฒด

๋ฉ”๋ชจ๋ฆฌ ์ƒ์˜ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค ํŽ˜์ด์ง€์— ๋Œ€ํ•ด ๊ต์ฒดํ•˜๋Š” ๋ฐฉ์‹

Local ๊ต์ฒด

๋ฉ”๋ชจ๋ฆฌ ์ƒ์˜ ์ž๊ธฐ ํ”„๋กœ์„ธ์Šค ํŽ˜์ด์ง€์—์„œ๋งŒ ๊ต์ฒดํ•˜๋Š” ๋ฐฉ์‹

 

๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ฒฝ์šฐ, ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ๋‹ค์–‘ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ์˜ฌ๋ผ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๋‹ค์–‘ํ•œ ํ”„๋กœ์„ธ์Šค์˜ ํŽ˜์ด์ง€๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•œ๋‹ค.

ํŽ˜์ด์ง€ ๊ต์ฒด ์‹œ, ๋‹ค์–‘ํ•œ ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™œ์šฉํ•ด victim page๋ฅผ ์„ ์ •ํ•˜๋Š”๋ฐ, ์„ ์ • ๊ธฐ์ค€์„ Global๋กœ ํ•˜๋Š๋ƒ, Local๋กœ ํ•˜๋Š๋ƒ์— ๋Œ€ํ•ด ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค. → ์‹ค์ œ๋กœ๋Š” ์ „์ฒด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ž๊ธฐ ํ”„๋กœ์„ธ์Šค ํŽ˜์ด์ง€์—์„œ๋งŒ ๊ต์ฒด๋ฅผ ํ•˜๋ฉด, ๊ต์ฒด๋ฅผ ํ•ด์•ผํ•  ๋•Œ ๊ฐ๊ฐ ๋ชจ๋‘ ๊ต์ฒด๋ฅผ ์ง„ํ–‰ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋น„ํšจ์œจ์ ์ด๋‹ค.

 

 

์ฐธ๊ณ 

๋Œ“๊ธ€