- 운영체제에서 프로세스가 사용하는 **가상 메모리(Virtual Memory)**는 실제 물리 메모리보다 큰 주소 공간을 가짐.
- 하지만 실제 물리 메모리는 한정되어 있기 때문에, 페이지 부재(Page Fault)가 발생할 때마다 메모리에서 어떤 페이지를 교체할지 결정하는 페이지 교체 알고리즘이 필요함.
- 페이지 교체 알고리즘은 **페이지 부재율(Page Fault Rate)**을 최소화하는 것이 핵심 목표!!
- 메모리 참조열(reference string)을 사용하여 페이지 부재 횟수를 측정하는 방법으로 알고리즘들을 평가
1. FIFO (First-In First-Out)

1) 개념
- 가장 먼저 메모리에 들어온 페이지를 가장 먼저 내보내는 방식
- 큐(Queue) 형태로 페이지를 관리
2) 작동 방식
- 메모리에 공간이 있을 때는 그대로 페이지를 적재
- 공간이 없을 경우 가장 오래전에 들어온 페이지를 제거
3) 예시
- 참조열: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
- 프레임 수: 3
- 결과: 9번의 페이지 부재
4) 특징
- Belady의 모순(Belady's Anomaly): 프레임 수가 늘어나도 페이지 부재가 더 많아질 수 있음
2. OPT (Optimal Algorithm)

1) 개념
- 미래에 가장 오랫동안 사용되지 않을 페이지를 제거
- 가장 이상적인 알고리즘이지만 미래 참조 정보를 알아야 하므로 구현은 불가능
2) 작동 방식
- 페이지 부재 발생 시, 앞으로 가장 오랫동안 참조되지 않을 페이지를 교체
3) 예시
- 참조열: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
- 프레임 수: 4
- 결과: 6번의 페이지 부재
4) 특징
- 실제로는 구현되지 않지만 다른 알고리즘의 성능 비교 기준으로 사용됨
3. LRU (Least Recently Used)

1) 개념
- 가장 오랫동안 사용되지 않은 페이지를 교체
- 실제 사용 빈도를 고려하는 방식
2) 구현 방법
- 카운터 방식: 각 페이지에 시간값 저장
- 스택 방식: 페이지를 스택으로 관리하여 최근 참조된 순서 유지
3) 예시
- 참조열: 1, 2, 1, 0, 4, 1, 3
- 프레임 수: 3
- 최종 메모리 상태: 1, 4, 3
- 결과: 8번의 페이지 부재
4) 특징
- 실제 시스템에서 널리 사용됨
- 최근 사용된 페이지는 앞으로도 사용할 가능성이 높다는 가정
4. Second Chance (2차 기회)

1) 개념
- FIFO에 **참조 비트(reference bit)**를 추가한 LRU 근사 알고리즘
- 참조 비트가 1이면 2차 기회를 주고, 0이면 바로 교체
2) 작동 방식
- 순환 큐 형태로 페이지를 관리
- 포인터가 교체 대상 페이지를 가리킴
- 참조 비트가 1이면 0으로 초기화하고 다음으로 이동
- 0인 페이지를 만나면 교체
3) 특징
- 구현이 단순하면서도 성능은 LRU에 근접
- 하드웨어 지원 없이도 운영체제 수준에서 구현 가능
5. LFU (Least Frequently Used)
1) 개념
- 가장 적게 참조된 페이지를 교체
- 참조 횟수가 적은 페이지는 앞으로도 사용할 확률이 낮다고 가정
2) 작동 방식
- 각 페이지마다 참조 횟수를 기록
- 페이지 부재 시, 카운터 값이 가장 작은 페이지 제거
3) 문제점
- 오래전에 잠깐 자주 참조되고 이후 사용되지 않는 페이지가 계속 남아 있을 수 있음
6. MFU (Most Frequently Used)
1) 개념
- 가장 많이 참조된 페이지를 제거
- 자주 참조된 페이지는 이미 역할을 다했을 가능성이 크다고 가정
2) 작동 방식
- LFU와 반대로, 카운터 값이 가장 큰 페이지를 교체
3) 문제점
- 기본 가정이 항상 성립하지 않으며, 대부분의 경우 LFU보다 효율이 낮음
7. 전역 vs 지역 페이지 교체
1) 전역 교체 (Global Replacement)
- 모든 프레임을 대상으로 교체
- 시스템 전체에서 가장 적절한 페이지를 제거할 수 있음
- 하지만 한 프로세스가 다른 프로세스의 프레임을 침범할 수 있어 예측 어려움
2) 지역 교체 (Local Replacement)
- 자신에게 할당된 프레임 내에서만 페이지를 교체
- 각 프로세스의 메모리 안정성을 보장
- 하지만 전체적인 효율성은 낮아질 수 있음
8. 마무리
| 알고리즘 | 핵심 전략 | 장점 | 단점 |
| FIFO | 가장 먼저 들어온 페이지 제거 | 구현 간단 | Belady’s anomaly 가능 |
| OPT | 미래에 가장 늦게 사용될 페이지 제거 | 이론적으로 최적 | 실제 구현 불가능 |
| LRU | 가장 오래 사용되지 않은 페이지 제거 | 성능 우수 | 구현 비용 큼 |
| Second Chance | LRU 근사, 참조 비트 활용 | 효율적, 구현 쉬움 | 약간의 부정확성 |
| LFU | 참조 횟수가 적은 페이지 제거 | 사용 빈도 반영 | 과거 사용 잔재 가능 |
| MFU | 참조 횟수가 많은 페이지 제거 | 빠른 교체 가능 | 잘못된 가정일 수 있음 |
'OS' 카테고리의 다른 글
| [운영체제] 파일 시스템이란?? (1) | 2025.06.02 |
|---|---|
| [운영체제] 스레싱과 지역성이란?? (0) | 2025.05.28 |
| [운영체제] 가상 기억장치란?? (0) | 2025.05.21 |
| [운영체제] 페이지 테이블 구조 란?? (0) | 2025.05.19 |
| [운영체제] 페이징 과 TLB (0) | 2025.05.14 |