Demand Paging
β’
νλ‘κ·Έλ¨μ΄ μ€νλ λ κ·Έ νλ‘μΈμ€λ₯Ό ꡬμ±νλ μ£Όμ곡κ°μ νμ΄μ§λ₯Ό μ λΆ λ©λͺ¨λ¦¬λ₯Ό νκΊΌλ²μ μ¬λ¦¬λ κ² μλλΌ demand paging κΈ°λ²μ μ¬μ©
β’
μμ²μ΄ λμ λ λ©λͺ¨λ¦¬μ μ¬λ¦°λ€.
β’
IO μμ κ°μ
β¦
νλ‘κ·Έλ¨μ ꡬμ±νλ μ£Όμκ³΅κ° μ€μμ μ€μ λ‘ λΉλ²ν μ¬μ©λλ λΆλΆμ μ§κ·Ήν μ νμ
β¦
μ’μ μννΈμ¨μ΄μΌμλ‘ λ°©μ΄μ μΈ μ½λκ° λλΆλΆ
β¦
μ΄λ° λ°©μ΄μ μΈ μ½λλ₯Ό νλ²μ μ¬λ¦¬λ©΄ λ©λͺ¨λ¦¬ λλΉ
β’
물리 λ©λͺ¨λ¦¬ μ¬μ©λ κ°μ
β’
λΉ λ₯Έ μλ΅ μκ°
β’
λ λ§μ νλ‘κ·Έλ¨ μμ© κ°λ₯
β’
μ°μΈ‘μ μν΅μ λμ€ν¬(swap area)
β’
valid/invalid bit μ μ¬μ©
β¦
invalid
βͺ
μ¬μ©λμ§ μλ μ£Όμ μμ
βͺ
νμ΄μ§κ° 물리μ λ©λͺ¨λ¦¬μ μλ κ²½μ°
β¦
μ²μμλ λͺ¨λ page entry κ° invalid λ‘ μ΄κΈ°ν
β¦
address translation μ invalid bit μ΄ set λμ΄μμΌλ©΄ page fault
β’
μμ
β¦
1λ² νμ΄μ§μ μ κ·Όνλ €κ³ λ³΄λ page table μμ invalid bit μ΄λ€. κ·Έλ¬λ©΄ μ΄ νμ΄μ§κ° λ©λͺ¨λ¦¬μ μλ€λ λ»
β¦
λμ€ν¬μμ λ©λͺ¨λ¦¬λ‘ μ¬λ¦°λ€. β IO μμ
β μ¬μ©μ νλ‘μΈμ€κ° μ§μ λͺ»νλ μΌ
β¦
page fault
β¦
κ·Έλ¬λ©΄ CPU λ μ΄μ 체μ μ λμ΄κ°λ€.
β¦
μ΄μ 체μ λ fault λ νμ΄μ§λ₯Ό λ©λͺ¨λ¦¬μ μ¬λ¦°λ€.
page fault
β’
invalid page λ₯Ό μ κ·Όνλ©΄ MMUκ° trap μ λ°μμν΄
β’
kernel mode λ‘ λ€μ΄κ°μ page fault handler κ° invoke λ¨
β’
page fault μ²λ¦¬ 루ν΄
1.
invalid reference μΈμ§ νμΈ(bad address, protection violation) β process λ₯Ό abort νλ€.
2.
λΉμ΄μλ page frame μ κ°μ Έμ€κ³ λΉ νμ΄μ§κ° μμΌλ©΄ μ«μλ΄κ³ λΊμ΄μ¨λ€.
3.
ν΄λΉ νμ΄μ§λ₯Ό disk μμ memory λ‘ μ½μ΄μ¨λ€.
a.
disk IO κ° λλκΈ°κΉμ§ μ΄ νλ‘μΈμ€λ CPU λ₯Ό μ μ λΉν¨(block)
b.
disk read κ° λλλ©΄ page table entry λ₯Ό κΈ°λ‘νκ³ valid λ‘ λ°κΎΌλ€.
c.
ready queue μ process λ₯Ό insert νλ€.
β’
emtry frame μ΄ μλ κ²½μ° page replacement λ₯Ό ν΄μΌνκ³ replacement algorithm μΌλ‘ page fault rate μ μ΅μννλ€.
Replace Algorithm
optimal algorithm
β’
κ°μ₯ λ¨Ό λ―Έλμ μ°Έμ‘°λλ page λ₯Ό replace
β’
μ΄λ€ νμ΄μ§κ° μ°Έμ‘°λ μ§ μλ€λ κ°μ μ΄ μμ΄μΌ νλ€.
β’
κ·Έλμ μ€μ λ‘ μ μ©νμ§λ λͺ»νλ€.
β’
μ€μ μμ€ν
μμ μ¬μ©νλ λ€λ₯Έ μκ³ λ¦¬μ¦ μ±λ₯μ λν upper bound λ₯Ό μ 곡νλ€.
FIFO algorithm
β’
κ°μ₯ λ¨Όμ λ€μ΄μ¨ κ²μ replace
β’
λ©λͺ¨λ¦¬ ν¬κΈ°λ₯Ό λ리λλ° μ±λ₯μ΄ λλΉ μ§λ(fault λ₯Ό λ λ§μ΄ λ) νΉμ΄μ μ΄ μλ€.
Least Recently Used algorithm
β’
κ°μ₯ μ€λ μ μ μ°Έμ‘°λ κ²μ replace
Least Frequently Used algorithm
β’
μ°Έμ‘° νμκ° κ°μ₯ μ μ νμ΄μ§λ₯Ό replace
β’
μ΅μ μ°Έμ‘° νμκ° μ¬λ¬κ°μΈ κ²½μ°
β¦
LUF μ체μμλ μμλ‘ μ μ
β¦
μ±λ₯ ν₯μμ μν΄ μ¬λ¬ νμ΄μ§ μ€ PRU μκ³ λ¦¬μ¦ κ΅¬ν κ°λ₯
β’
μ₯λ¨μ
β¦
μ₯κΈ°μ μΈ μκ° κ·λͺ¨λ₯Ό 보기 λλ¬Έμ page μ μΈκΈ°λ λ°μ
β¦
μ΅κ·Όμ± λ°μ λΆκ°
β¦
LRU λ³΄λ€ κ΅¬νμ΄ λ³΅μ‘
LRU vs LFU
LRU λ 리μ€νΈλ‘ ꡬνν κ²½μ° μκ° λ³΅μ‘λκ° O(1)
LFU λ 리μ€νΈλ‘ ꡬννλ©΄ O(N) μκ° λ³΅μ‘λ
LFU λ₯Ό νμΌλ‘ ꡬννλ©΄ O(logN)
CPUκ° μμ²ν νμ΄μ§ μμ
1,1,1,1,2,2,3,3,2,4,5
β’
LRU λ κ°μ₯ μ€λ μ μ μ°Έμ‘°ν νμ΄μ§λ₯Ό μμ - 1λ² νμ΄μ§(λλμ§ μμ)
β’
LFU λ κ°μ₯ μ°Έμ‘° νμκ° μ μ νμ΄μ§λ₯Ό μμ - 4λ² νμ΄μ§(λμκ΄ μ±
λμΆ μμ)
β¦
κ°κ³Όνλ κ²μ μκ°μ λ°λ₯Έ μμΈ‘μ΄ λΆμ‘±
λ€μν μΊμ± νκ²½
β’
μΊμ± κΈ°λ²
β¦
νμ λ λΉ λ₯Έ 곡κ°μ μμ²λ λ°μ΄ν°λ₯Ό μ μ₯ν΄ λμλ€κ° νμ μμ²μ μΊμλ‘λΆν° μ§μ μλΉμ€νλ λ°©μ
β¦
paging system μΈμλ cache memory, buffer caching, web caching λ± λ€μν λΆμΌμμ μ¬μ©
β’
μΊμ μ΄μμ μκ° μ μ½
β¦
κ΅μ²΄ μκ³ λ¦¬μ¦μμ μμ ν νλͺ©μ κ²°μ νλ μΌμ μ§λμΉκ² λ§μ μκ°μ΄ 걸리λ κ²½μ° μ€μ μμ€ν
μμ μ¬μ©ν μ μμ
β’
μ¬μ€ LRU, LFU λ κ°μ λ©λͺ¨λ¦¬ νμ΄μ§ κΈ°λ²μμ μ¬μ©ν μ μλ€.
β¦
LRU, LFU λ± μ΄μ μ°Έμ‘° λ΄μ©μ μ μ₯νλ €λ©΄ ν΄λΉ μκ³ λ¦¬μ¦ λ‘μ§μ΄ μνλμ΄μΌ νλλ°, page κ° μ΄λ―Έ λ©λͺ¨λ¦¬μ μλ κ²½μ°μλ OS κ° CPU μ μ΄κΆμ μ»μ§ λͺ»ν΄ ν΄λΉ μκ³ λ¦¬μ¦ λ‘μ§ μνμ ν μκ° μλ€.
Clock algorithm
β’
LRU κ·Όμ¬(approximation) μκ³ λ¦¬μ¦
β’
second chance algorithm, Not Used Recently λλ Not Recently Used λ±μΌλ‘ λΆλ¦Ό
β’
β’
reference bit μ μ¬μ©νλ€. νμ΄μ§ μ°Έμ‘°κ° λ°μνλ©΄ νλμ¨μ΄μμ ν΄λΉ νμ΄μ§μ reference bit μ 1λ‘ λ°κΎΌλ€.
β’
0 μ μλ―Έλ μκ³ λ°λμ΄ νλ°ν΄ λλ λμ μ°Έμ‘°κ° μμλ€.
β’
1 μ μ΅μ ν λ² μ°Έμ‘°κ° μμλ€. κ·Έλμ OS κ° λ΄μ«μ νμ΄μ§ μ°Ύμ λ 1μ΄λ©΄ 0μΌλ‘ λ°κΎΈκ³ λ€μμΌλ‘ λμ΄κ°
β’
modified bit(dirty bit) μ ν¨κ» μ¬μ©ν΄μ μ°Έμ‘° μ΄μΈμλ λ³κ²½ νμ΄μ§μ λν΄μλ κΈ°λ‘ μ μ₯
page frame allocation
β’
κ° νλ‘μΈμ€μ μΌλ§λ§νΌμ page frame μ ν λΉν κ²μΈκ°?
β’
allocation μ νμμ±
β¦
λ©λͺ¨λ¦¬ μ°Έμ‘° λͺ
λ Ήμ΄ μνμ λͺ
λ Ήμ΄, λ°μ΄ν° λ± μ¬λ¬ νμ΄μ§ λμμ μ°Έμ‘°
β¦
λͺ
λ Ήμ΄ μνμ μν΄ μ΅μν ν λΉλμ΄μΌ νλ frame μ μκ° μμ
β¦
loop λ₯Ό ꡬμ±νλ page λ€μ νκΊΌλ²μ allocate λμ΄μΌ ν¨
β¦
μ΅μνμ allocation μ΄ μμΌλ©΄ 맀 loop λ§λ€ page fault
β’
equal allocation: λͺ¨λ νλ‘μΈμ€μ λκ°μ κ°―μ ν λΉ
β’
proportional allocation: νλ‘μΈμ€ ν¬κΈ°μ λΉλ‘νμ¬ ν λΉ
β’
priority allocation: νλ‘μΈμ€μ priority μ λ°λΌ λ€λ₯΄κ² ν λΉ
global replacement
β’
replace μ λ€λ₯Έ process μ ν λΉλ frame μ λΉΌμμ μ μλ€.
β’
process λ³ ν λΉλ μ‘°μ κ°λ₯
β’
working set, PFF μκ³ λ¦¬μ¦
local replacement
β’
μμ μκ² ν λΉλ frame λ΄μμλ§ replacement