๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โญ Group_Study/Operating System

[8์ฃผ์ฐจ] Virtual Memory Management: Replacement Strategies for Fixed Alloc. 2

by ํฌ์ŠคํŠธ์‰์ดํฌ 2023. 1. 23.

Virtual Memory Management: Replacement Strategies for Fixed Alloc. 2

LFULeast Frequently Used) Algorithm

โœ” ๊ฐ€์žฅ ์ฐธ์กฐ ํšŸ์ˆ˜๊ฐ€ ์ ์€ page ๊ต์ฒด

  • Tie-braking rule: LRU

โœ” page ์ฐธ์กฐ ์‹œ๋งˆ๋‹ค, ์ฐธ์กฐ ํšŸ์ˆ˜๋ฅผ ๋ˆ„์  ์‹œ์ผœ์•ผํ•จ

โœ” Locality ํ™œ์šฉ

  • LRU ๋Œ€๋น„ ์ ์€ overhead

โœ” ๋‹จ์ 

  • ์ตœ๊ทผ ์ ์žฌ๋œ ์ฐธ์กฐ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์€ page๊ฐ€ ๊ต์ฒด๋  ๊ฐ€๋Šฅ์„ฑ
  • ์ฐธ์กฐ ํšŸ์ˆ˜ ๋ˆ„์  overhead

Example

โœ” Number of page faults = 7

NUR(Not Used Recently) Algorithm

โœ” LRU approximation shceme

  • LRU๋ณด๋‹ค ์ ์€ overhead๋กœ ๋น„์Šทํ•œ ์„ฑ๋Šฅ ๋‹ฌ์„ฑ ๋ชฉ์ 

โœ” Bit vector ์‚ฌ์šฉ

  • Reference bit vector(r), Updated bit vector(m)
  • reference bit๊ฐ€ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ดˆ๊ธฐํ™” ๋˜๋Š” ํŠน์„ฑ ์ด์šฉ

โœ” ๊ต์ฒด ์ˆœ์„œ

  1. (r, m) = (0, 0)
  2. (r, m) = (0, 1)
  3. (r, m) = (1, 0)
  4. (r, m) = (1, 1)
  • update bit ์ง€์–‘(memory write back)

Clock Algorithm

โœ” IBM VM/370 OS

โœ” Reference bit ์‚ฌ์šฉํ•จ

  • ์ฃผ๊ธฐ์  ์ดˆ๊ธฐํ™” ์—†์Œ

โœ” Page frame๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฐ€๋ฆฌํ‚ค๋Š” pointer(์‹œ๊ณ„๋ฐ”๋Š˜)์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ต์ฒด๋  page ๊ฒฐ์ •

์„ค๋ช…

โœ” Pointer๋ฅผ ๋Œ๋ฆฌ๋ฉด์„œ ๊ต์ฒด page ๊ฒฐ์ •

  • ํ˜„์žฌ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” page์˜ reference bit(r) ํ™•์ธ
  • r = 0 ์ธ ๊ฒฝ์šฐ, ๊ต์ฒด page๋กœ ๊ฒฐ์ •
  • r = 1์ธ ๊ฒฝ์šฐ, reference bit ์ดˆ๊ธฐํ™” ํ›„ pointer ์ด๋™

โœ” ๋จผ์ € ์ ์žฌ๋œ page๊ฐ€ ๊ต์ฒด๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Œ

  • FIFO์™€ ์œ ์‚ฌ

โœ” Reference bit๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ต์ฒด ํŽ˜์ด์ง€ ๊ฒฐ์ •

  • Locaity ๋ฐ˜์˜
  • LRU(or NRU)์™€ ์œ ์‚ฌ

Example

Second Chance Algorithm

โœ” Clock algorithm ๊ณผ ์œ ์‚ฌ

โœ” Update bit(m)๋„ ํ•จ๊ป˜ ๊ณ ๋ คํ•จ

  • ํ˜„์žฌ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” page์˜ (r, m) ํ™•์ธ
  • (0, 0): ๊ต์ฒด page๋กœ ๊ฒฐ์ •
  • (0, 1): -> (0, 0), write-back (cleaning) list์— ์ถ”๊ฐ€ ํ›„ ์ด๋™
  • (1, 0): -> (0, 0)ํ›„ ์ด๋™
  • (1, 1): -> (0, 1)ํ›„ ์ด๋™

Example

Other Algorithms

โœ” Additional-reference-bits algorithm

  • LRU approximation
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ reference bit
    • ๊ฐ time-interval์— ๋Œ€ํ•œ ์ฐธ์กฐ ์—ฌ๋ถ€ ๊ธฐ๋ก
    • History register for each page

โœ” MRU(Most Recently Used) Algorithm

  • LRU์™€ ์ •๋ฐ˜๋Œ€ ๊ธฐ๋ฒ•

โœ” MFU(Most Frequently Used) Algorithm

  • LFU์™€ ์ •๋ฐ˜๋Œ€ ๊ธฐ๋ฒ•

๋Œ“๊ธ€