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

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

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

Virtual Memory Management: Replacement Strategies for Variable Alloc.

Working Set(WS) Alogrithm

โœ” 1968 Denning

โœ” Working Set

  • Process๊ฐ€ ํŠน์ • ์‹œ์ ์— ์ž์ฃผ ์ฐธ์กฐํ•˜๋Š” page๋“ค์˜ ์ง‘ํ•ฉ
  • ์ตœ๊ทผ ์ผ์ •์‹œ๊ฐ„ ๋™์•ˆ ์ฐธ์กฐ๋œ page๋“ค์˜ ์ง‘ํ•ฉ
  • ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ณ€ํ•จ
  • W(t, Δ)
    • The working set of a process at time t
    • Time interval[t - Δ, t]๋™์•ˆ ์ฐธ์กฐ๋œ pages๋“ค์˜ ์ง‘ํ•ฉ
    • Δ: window size, system parameter

Working set Memory management

โœ” Locality์— ๊ธฐ๋ฐ˜

โœ” Working set์„ ๋ฉ”๋ชจ๋ฆฌ์— ํ•ญ์ƒ ์œ ์ง€

  • Page fault rate(thrashing) ๊ฐ์†Œ
  • ์‹œ์Šคํ…œ ์„ฑ๋Šฅ ํ–ฅ์ƒ

โœ” Window size๋Š” ๊ณ ์ •

  • Memory allocation์€ ๊ฐ€๋ณ€
  • Δ ๊ฐ’์ด ์„ฑ๋Šฅ์„ ๊ฒฐ์ •์ง“๋Š” ์ฃผ์š” ์š”์†Œ

Working size vs WS size

โœ” locality

Working set transition

โœ” ๋ฃจํ”„ -> ๋ฃจํ”„ ์ „ํ™˜๋  ๋•Œ๋Š” ์ผ์‹œ์ ์œผ๋กœ working set size๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค

Example

์„ฑ๋Šฅํ‰๊ฐ€

โœ” Variable Allocation์—์„œ๋Š” Page fault ์ˆ˜ ์™ธ ๋‹ค๋ฅธ ์ง€ํ‘œ๋„ ํ•จ๊ป˜ ๋ด์•ผ ํ•œ๋‹ค

  • ํ‰๊ท  ํ• ๋‹น page frame
  • page fault ์ฒ˜๋ฆฌ ๋น„์šฉ
  • page frame ์œ ์ง€ ๋น„์šฉ

โœ” Example

  • Time interval [1, 10]
    • # of page fault = 5
    • ํ‰๊ท  ํ• ๋‹น page frame ์ˆ˜ = 3.2
  • ํ‰๊ฐ€
    • ํ‰๊ท  3.2๊ฐœ์˜ page frame์„ ํ• ๋‹น ๋ฐ›์€ ์ƒํƒœ์—์„œ 5๋ฒˆ์˜ page fault ๋ฐœ์ƒ

window size vs page fault

โœ” life time: page ์œ ์ง€ ๋น„์šฉ ์ฆ๊ฐ€

โœ” ์ ์ ˆํ•œ window size ์„ค์ • ๋ฐ ์œ ์ง€๊ฐ€ ์ค‘์š”

ํŠน์„ฑ ์ •๋ฆฌ

โœ” ์ ์žฌ ๋˜๋Š” page๊ฐ€ ์—†๋”๋ผ๋„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ฐ˜๋‚ฉํ•˜๋Š” page๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค
โœ” ์ƒˆ๋กœ ์ ์žฌ๋˜๋Š” page๊ฐ€ ์žˆ๋”๋ผ๋„ ๊ต์ฒด ๋˜๋Š” page๊ฐ€ ์—†์„ ์ˆ˜ ์žˆ๋‹ค

โœ” ๋‹จ์ 

  • Working set management overhead
  • Residence set(์ƒ์ฃผ ์ง‘ํ•ฉ)์„ page fault๊ฐ€ ์—†๋”๋ผ๋„, ์ง€์†์ ์œผ๋กœ ๊ด€๋ฆฌ ํ•ด์•ผ ํ•œ๋‹ค.

Page Fault Frequency (PFF) algorithm

โœ” Residence set size๋ฅผ page fault rate์— ๋”ฐ๋ผ ๊ฒฐ์ •

  • Low page fault rate (long inter fault time)
    • process์—๊ฒŒ ํ• ๋‹น๋œ PF ์ˆ˜๋ฅผ ๊ฐ์†Œ
  • High page fault rate (short inter-fault time)
    • process์—๊ฒŒ ํ• ๋‹น๋œ PF ์ˆ˜๋ฅผ ์ฆ๊ฐ€

โœ” Residence set ๊ฐฑ์‹  ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น

  • Page fault๊ฐ€ ๋ฐœ์ƒ ์‹œ์—๋งŒ ์ˆ˜ํ–‰
  • Low overhead

Criteria for page fault rate

โœ” IFT > τ: Low page fault rate
โœ” IFT < τ: High page fault rate

โœ” τ: threshold value

  • system parameter

Alogrithm

Example

โœ” τ = 2, # of pages = 5 (0, 1, 2, 3, 4)
โœ” Initially pages {0, 3, 4} in the memory at time 0
โœ” ษท = 2 2 3 1 2 4 2 4 0 3

์„ฑ๋Šฅ ํ‰๊ฐ€

โœ” Variable Allocation์—์„œ๋Š” Page fault ์ˆ˜ ์™ธ ๋‹ค๋ฅธ ์ง€ํ‘œ๋„ ํ•จ๊ป˜ ๋ด์•ผ ํ•œ๋‹ค

  • ํ‰๊ท  ํ• ๋‹น page frame
  • page fault ์ฒ˜๋ฆฌ ๋น„์šฉ
  • page frame ์œ ์ง€ ๋น„์šฉ

โœ” Example

  • Time interval [1, 10]
    • # of page fault = 5
    • ํ‰๊ท  ํ• ๋‹น page frame ์ˆ˜ = 3.7
  • ํ‰๊ฐ€
    • ํ‰๊ท  3.7๊ฐœ์˜ page frame์„ ํ• ๋‹น ๋ฐ›์€ ์ƒํƒœ์—์„œ 5๋ฒˆ์˜ page fault ๋ฐœ์ƒ

ํŠน์ง•

โœ” ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ ๋ณ€ํ™”๊ฐ€ page fault ๋ฐœ์ƒ ์‹œ์—๋งŒ ๋ณ€ํ•œํ•˜

  • Low overhead

Variable MIN (VMIN) algorithm

โœ” Variable allocation ๊ธฐ๋ฐ˜ ๊ต์ฒด ๊ธฐ๋ฒ• ์ค‘ optimal algorithm

  • ํ‰๊ท  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๋Ÿ‰๊ณผ page fault ๋ฐœ์ƒ ํšŸ์ˆ˜ ๋ชจ๋‘ ๊ณ ๋ ค ํ–ˆ์„ ๋•Œ์˜ Optimal

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

  • Page reference string์„ ๋ฏธ๋ฆฌ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ‰๊ฐ€์— ํ™œ์šฉ

โœ” ๊ธฐ๋ฒ•

  • [t, t + Δ] ๊ณ ๋ คํ•˜์—ฌ ๊ต์ฒดํ•  page ์„ ํƒ

Algorithrm

โœ” Page r์ด t ์‹œ๊ฐ„์— ์ฐธ์กฐ ๋˜๋ฉด, page r์ด (t, t + Δ] ์‚ฌ์ด์— ๋‹ค์‹œ ์ฐธ์กฐ ๋˜๋Š”์ง€ ํ™•์ธ

โœ” ์ฐธ์กฐ ๋œ๋‹ค๋ฉด page r์„ ์œ ์ง€
โœ” ์ฐธ์กฐ ์•ˆ ๋‹จ๋œ๋‹ค๋ฉด page r์„ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋‚ด๋ฆผ

Example

์„ฑ๋Šฅ ํ‰๊ฐ€

โœ” Variable Allocation์—์„œ๋Š” Page fault ์ˆ˜ ์™ธ ๋‹ค๋ฅธ ์ง€ํ‘œ๋„ ํ•จ๊ป˜ ๋ด์•ผ ํ•œ๋‹ค

  • ํ‰๊ท  ํ• ๋‹น page frame
  • page fault ์ฒ˜๋ฆฌ ๋น„์šฉ
  • page frame ์œ ์ง€ ๋น„์šฉ

โœ” Example

  • Time interval [1, 10]
    • # of page fault = 5
    • ํ‰๊ท  ํ• ๋‹น page frame ์ˆ˜ = 1.6
  • ํ‰๊ฐ€
    • ํ‰๊ท  1.76์˜ page frame์„ ํ• ๋‹น ๋ฐ›์€ ์ƒํƒœ์—์„œ 5๋ฒˆ์˜ page fault ๋ฐœ์ƒ

์ตœ์  ์„ฑ๋Šฅ์„ ์œ„ํ•œ Δ ๊ฐ’์€?

โœ” $Δ = {R \over U}$

  • U = ํ•œ ๋ฒˆ์˜ ์ฐธ์กฐ ์‹œ๊ฐ„ ๋™์•ˆ page๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์œ ์ง€ํ•˜๋Š” ๋น„์šฉ
  • R = Page fault ๋ฐœ์ƒ ์‹œ ์ฒ˜๋ฆฌ๋˜๋Š” ๋น„์šฉ

โœ” R > Δ * U, (Δ๊ฐ€ ์ž‘์€ ๊ฒฝ์šฐ)

  • ์ฒ˜๋ฆฌ ๋น„์šฉ > page ์œ ์ง€ ๋น„์šฉ

โœ” R < Δ * U, (Δ๊ฐ€ ํฐ ๊ฒฝ์šฐ)

  • ์ฒ˜๋ฆฌ ๋น„์šฉ < page ์œ ์ง€ ๋น„์šฉ

๋Œ“๊ธ€