PAGE REPLACEMENT

페이지 교체 기준

FIFO, LRU, Clock은 모두 메모리가 꽉 찼을 때 내보낼 페이지를 고르지만, reference bit와 dirty bit를 보느냐에 따라 성능과 쓰기 비용이 갈린다.

01

fault 발생

필요한 페이지가 메모리에 없어 OS가 빈 프레임 또는 victim을 찾는다.

major/minor 구분
02

후보 선택

정책에 따라 가장 오래된 페이지, 가장 덜 최근 사용 페이지, ref=0 페이지를 고른다.

victim
03

쓰기 비용 판단

dirty bit가 1이면 내보내기 전에 디스크에 반영해야 한다.

write-back
04

PTE 갱신

새 페이지를 올리고 valid/frame/reference/dirty 비트를 갱신한다.

mapping update
FIFO
가장 먼저 들어온 페이지 제거 구현은 쉽지만 자주 쓰는 오래된 페이지도 내보낼 수 있다.
Belady anomaly
LRU
가장 오래 안 쓴 페이지 제거 지역성에 강하지만 정확한 시간 기록은 비용이 크다.
timestamp/list cost
Clock
reference bit로 두 번째 기회 제공 ref=1이면 0으로 내리고 다음 후보를 보며 LRU를 싸게 근사한다.
second chance
Dirty aware
수정된 페이지는 교체 비용이 큼 clean victim을 우선하면 디스크 쓰기를 줄일 수 있다.
I/O latency

성능 해석

참조열 알고리즘별 프레임 상태를 같은 참조열로 표로 그려 fault 수를 비교한다.
메모리 증가 FIFO는 프레임이 늘어도 fault가 늘 수 있으므로 단순 직관을 조심한다.
쓰기량 fault 횟수뿐 아니라 dirty page write-back 횟수도 운영 비용이다.