페이지 교체 알고리즘(FIFO, LRU, LFU, Optimal)을 프레임 테이블로 시각화하고 비교합니다. 단계별 애니메이션, 히트/폴트 통계, Belady의 모순까지 직접 체험하세요.
페이지 교체 알고리즘은 물리 메모리(프레임)가 가득 찼을 때 새 페이지를 적재하기 위해 어떤 페이지를 내보낼지 결정하는 운영체제의 핵심 알고리즘입니다. FIFO(선입선출), LRU(최근 최소 사용), LFU(최소 빈도 사용), Optimal(미래 참조 기반) 등이 대표적입니다.
Belady의 모순은 FIFO 알고리즘에서 프레임 수를 늘렸는데 오히려 페이지 폴트가 증가하는 반직관적 현상입니다. 예를 들어 참조열 1,2,3,4,1,2,5,1,2,3,4,5에서 3프레임일 때 9회 폴트, 4프레임일 때 10회 폴트가 발생합니다. LRU와 Optimal은 스택 알고리즘이므로 이 모순이 발생하지 않습니다.
LRU(Least Recently Used)는 가장 오래 전에 사용된 페이지를 교체하고, LFU(Least Frequently Used)는 사용 빈도가 가장 낮은 페이지를 교체합니다. LRU는 시간 지역성에 강하고, LFU는 빈도 지역성에 강합니다. 실무에서는 LRU가 구현이 간단하고 성능이 좋아 더 널리 사용됩니다.
페이지 교체 알고리즘은 물리 메모리(프레임)가 가득 찼을 때 새 페이지를 적재하기 위해 어떤 페이지를 내보낼지 결정하는 운영체제의 핵심 알고리즘입니다. FIFO(선입선출), LRU(최근 최소 사용), LFU(최소 빈도 사용), Optimal(미래 참조 기반) 등이 대표적입니다.
Belady의 모순은 FIFO 알고리즘에서 프레임 수를 늘렸는데 오히려 페이지 폴트가 증가하는 반직관적 현상입니다. 예를 들어 참조열 1,2,3,4,1,2,5,1,2,3,4,5에서 3프레임일 때 9회 폴트, 4프레임일 때 10회 폴트가 발생합니다. LRU와 Optimal은 스택 알고리즘이므로 이 모순이 발생하지 않습니다.
LRU(Least Recently Used)는 가장 오래 전에 사용된 페이지를 교체하고, LFU(Least Frequently Used)는 사용 빈도가 가장 낮은 페이지를 교체합니다. LRU는 시간 지역성에 강하고, LFU는 빈도 지역성에 강합니다. 실무에서는 LRU가 구현이 간단하고 성능이 좋아 더 널리 사용됩니다.
페이지 교체 알고리즘(FIFO, LRU, LFU, Optimal)을 프레임 테이블로 시각화하고 비교합니다