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

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

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

Virtual Memory Management: Replacement Strategies for Fixed Alloc.1

Locality

โœ” ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ”„๋กœ๊ทธ๋žจ/๋ฐ์ดํ„ฐ์˜ ํŠน์ • ์˜์—ญ์„ ์ง‘์ค‘์ ์œผ๋กœ ์ฐธ์กฐํ•˜๋Š” ํ˜„์ƒ

โœ” ๊ณต๊ฐ„์  ์ง€์—ญ์„ฑ (Spatial locality)
โœ” ์‹œ๊ฐ„์  ์ง€์—ญ์„ฑ (Temporal locality)

Locality(Example)

โœ” ๊ฐ€์ •

  • paging system
  • page size = 1000 words
  • Machine instruction size = 1 word
  • ์ฃผ์†Œ ์ง€์ •์€ word ๋‹จ์œ„๋กœ ์ด๋ฃจ์–ด์ง
  • ํ”„๋กœ๊ทธ๋žจ์€ 4๋ฒˆ page์— continuous allocation ๋จ
  • n = 1000
    null
null

Replacement Strategies

โœ” Fixed Allocation

  • MIN(OPT, B0) algorithm
  • Random algorithm
  • FIFO algorithm
  • LRU(Least Recently Used) algorithm
  • LFU(Least Frequently Used) algorithm
  • NUR(Not Used Recently) algorithm
  • Clock algorithm
  • Second chance algorithm

โœ” Variable Allocation

  • WS(Working Set) algorithm
  • PFF(Page Fault Frequency) algorithm
  • VMIN(Variable MIN) algorithm

Min Algorithm (OPT algorithm)

null

โœ” 1966 Beadly๊ฐ€ ์ œ์‹œ

โœ” Minimize page fault frequency(proved)

  • Optimal Solution

โœ” ๊ธฐ๋ฒ•

  • ์•ž์œผ๋กœ ๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์ฐธ์กฐ๋˜์ง€ ์•Š์„ page ๊ต์ฒด
    • Tie-breaking rule: page ๋ฒˆํ˜ธ๊ฐ€ ๊ฐ€์žฅ ํฐ/์ž‘์€ ํŽ˜์ด์ง€ ๊ต์ฒด

โœ” ์‹คํ˜„ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ธฐ๋ฒ• (Unrealizable)

  • Page reference string์„ ๋ฏธ๋ฆฌ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค

โœ” ๊ต์ฒด ๊ธฐ๋ฒ•์˜ ์„ฑ๋Šฅ ํ‰๊ฐ€ ๋„๊ตฌ๋กœ ์‚ฌ์šฉ

Example

null

โœ” Number of page faultes = 6

Random Algorithm

null

โœ” ๋ฌด์ž‘์œ„๋กœ ๊ต์ฒดํ•  page ์„ ํƒ

โœ” Low ovehead

โœ” No policy

โœ” ํ‰๊ฐ€ ์ง€ํ‘œ๋กœ ์‚ฌ์šฉ

FIFO Algorithm

null

โœ” First In First Out

  • ๊ฐ€์žฅ ์˜ค๋ž˜๋œ page๋ฅผ ๊ต์ฒด

โœ” Page๊ฐ€ ์ ์žฌ๋œ ์‹œ๊ฐ„ ๊ธฐ์–ตํ•˜๊ณ ์žˆ์–ด์•ผ ํ•จ

โœ” ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” page๊ฐ€ ๊ต์ฒด ๋œ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Œ

  • Locality์— ๋Œ€ํ•œ ๊ณ ๋ ค๊ฐ€ ์—†์Œ

โœ” FIFO anomaly (Belady's anomaly)

  • FIFO ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฒฝ์šฐ, ๋” ๋งŽ์€ page frame์„ ํ• ๋‹น ๋ฐ›์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  page fault์˜ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค

Example

null

โœ” Number of page faults = 10

Example (FIFO anomaly)

null

LRU (Least Recently Used) Algorithm

null

โœ” ๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์ฐธ์กฐ๋˜์ง€ ์•Š์€ page ๊ต์ฒด
โœ” Page ์ฐธ์กฐ ์‹œ๋งˆ๋‹ค ์‹œ๊ฐ„์„ ๊ธฐ๋กํ•ด์•ผ ํ•จ

โœ” Locality์— ๊ธฐ๋ฐ˜์„ ๋‘” ๊ต์ฒด ๊ธฐ๋ฒ•
โœ” MIN algorithm์— ๊ทผ์ ‘ํ•œ ์„ฑ๋Šฅ

โœ” ์‹ค์ œ๋กœ ๊ฐ€์žฅ ๋งŽ์ด ํ™œ์šฉ๋˜๋Š” ๊ธฐ๋ฒ•

โœ” ๋‹จ์ 

  • ์ฐธ์กฐ์‹œ๋งˆ๋‹ค ์‹œ๊ฐ„์„ ๊ธฐ๋กํ•ด์•ผ ํ•จ(Overhead)
    • ๊ฐ„์†Œํ™”๋œ ์ •๋ณด ์ˆ˜์ง‘์œผ๋กœ ํ•ด์†Œ (์‹œ๊ฐ„ ๋Œ€์‹  ์ˆœ์„œ๋งŒ ๊ธฐ๋ก)
  • Loop ์‹คํ–‰์— ํ•„์š”ํ•œ ํฌ๊ธฐ๋ณด๋‹ค ์ž‘์€ ์ˆ˜์˜ pageframe์ด ํ• ๋‹น๋œ ๊ฒฝ์šฐ, page fault ์ˆ˜๊ฐ€ ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€
    • Allocation ๊ธฐ๋ฒ•์—์„œ ํ•ด๊ฒฐ

Example

null

โœ” Number of page faults = 7

๋Œ“๊ธ€