포스트

임베디드 스터디 - 페이지 교체 알고리즘

임베디드 스터디 - 페이지 교체 알고리즘

페이지 교체 알고리즘이란

  • 빈 프레임이 없을 때 희생 페이지를 선택하여 교체하는 알고리즘
  • 목표: 페이지 폴트 횟수 최소화

6가지 알고리즘 비교

OPT (Optimal)

  • 앞으로 가장 사용되지 않는 페이지를 교체
  • 성능이 이론적으로 가장 우수하나 미래 참조 순서를 알아야 하므로 구현 불가
  • 다른 알고리즘의 성능 비교 기준(이론적 상한)으로 사용

FIFO (First In First Out)

  • 메모리에 가장 먼저 들어온 페이지를 교체
  • 단점: 자주 사용될 페이지도 교체될 수 있어 효율 낮음
  • Belady의 모순: 프레임 수를 늘렸는데 오히려 페이지 폴트가 많이 발생하는 현상 (FIFO에서만 발생)

LRU (Least Recently Used)

  • 최근에 가장 오래 사용되지 않은 페이지를 교체
  • 과거 참조 이력 전체를 추적 → 성능 우수하나 매 참조마다 최근 사용 시점 기록 필요

LFU (Least Frequently Used)

  • 참조 횟수가 가장 적은 페이지를 교체
  • 매 참조마다 카운터 유지 필요

NRU (Not Recently Used)

  • 최근 클록 인터럽트 주기 동안 참조되지 않은 페이지를 교체
  • 참조 비트(R)와 변경 비트(M) 두 개로 4가지 등급 분류
등급RM교체 우선순위
000최우선 교체
101높음
210낮음
311최후 교체

Clock 알고리즘

  • 페이지를 원형으로 배치하고 시계 바늘처럼 순회
  • 참조 비트 = 0이면 페이지 교체, 1이면 0으로 바꾸고 넘어감
  • 실제 OS(Linux 등)에서 가장 많이 사용되는 이유: 오버헤드가 낮고 구현이 단순해서

알고리즘 특성 요약

알고리즘핵심 특성
OPT이론적 최적, 구현 불가 — 성능 비교 기준
FIFO구현 단순, Belady의 모순 발생 가능
LRU성능 우수, 타임스탬프 오버헤드 큼
LFU성능 우수, 카운터 오버헤드 큼
NRUR/M 두 비트로 등급 분류
Clock참조 비트 하나 + 포인터, 오버헤드 적음
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.