Learning
토픽 44 / 85·메모리 관리

페이지 교체 알고리즘 (Page Replacement Algorithm)

페이지 교체 알고리즘 (Page Replacement Algorithm)

메모리가 가득 찬 상태에서 페이지 폴트 발생 시 어떤 페이지를 제거할지 결정하는 알고리즘

목적: 페이지 폴트 최소화, 성능 최적화, 스래싱 방지

특징: 지역성 활용, 과거 참조 기반, 트레이드오프

주요 알고리즘

  • FIFO(First-In, First-Out): 가장 오래된 페이지 교체, 단순, Belady's Anomaly(프레임 증가 시 페이지 폴트 증가)
  • Optimal(OPT): 가장 나중에 사용될 페이지 교체, 이론적 최적, 미래 예측 불가능(비현실적)
  • LRU(Least Recently Used): 가장 오래 사용 안된 페이지 교체, 지역성 활용, 실용적, 구현 비용(스택/카운터)
  • LFU(Least Frequently Used): 참조 횟수 적은 페이지 교체, 초기 참조 많으면 오래 유지
  • Clock(Second Chance): FIFO + Reference 비트, 순환 리스트, LRU 근사, 효율적, Linux/Windows
  • MRU(Most Recently Used): 특정 패턴(순차 접근)에서 유리

Reference/Dirty 비트: Reference(R) - 참조 여부, Dirty(D) - 수정 여부, Clock 알고리즘 활용

성능 비교: Optimal(최적) ≈ LRU > Clock > FIFO

Belady's Anomaly: FIFO에서 프레임 증가 시 페이지 폴트 증가하는 역설, LRU는 해당 없음

적용사례: Linux(Clock + LRU), Windows(Clock), 데이터베이스 버퍼 풀

비교: LRU(실용적/비용) vs FIFO(단순/Anomaly) vs Clock(효율/근사) vs Optimal(이론)

연관: 가상 메모리, 페이징, 페이지 폴트, 지역성, Clock