CS

3. 페이지 교체 알고리즘(FIFO, LRU, OPT, LFU)의 단점과 해결 방법

milm2 2025. 3. 5. 14:08

1. FIFO (First In First Out) - 선입선출

✅ 단점

- 오래된 페이지가 먼저 제거되므로, 자주 사용되는 페이지도 제거될 가능성이 있음

- Belady's Anomaly(벨라디의 역설) 발생 가능

  * 일반적으로 페이지 프레임 개수가 증가하면 페이지 폴트가 감소해야 하지만, FIFO에서는 오히려 페이지 폴트가 증가할 수도 있음

  * 오래된 페이지를 무조건 제거하기 때문에, 최근 자주 사용된 페이지라도 교체될 수 있음

 

✅ 해결 방법

✔️ Second Chance (Clock Algorithm) 적용

- FIFO 방식에서 페이지를 제거하기 전에 한 번 더 기회를 줌

- 페이지에 **참조 비트(Reference Bit)**를 추가해서,

  * 참조 비트가 1이면: 페이지를 교체하지 않고, 비트를 0으로 바꿔서 다시 대기열로 이동

  * 참조 비트가 0이면: 페이지 교체 수행

- FIFO의 단순한 구조를 유지하면서도 자주 사용되는 페이지를 보호할 수 있음

 

2. LRU (Least Recently Used) - 가장 오랫동안 사용되지 않은 페이지 교체

✅ 단점

- 최근 사용된 페이지를 반영할 수 있지만, 구현 비용이 높음

- 페이지 사용 기록을 저장해야 하므로, 추가적인 메모리 및 CPU 오버헤드가 발생

- 사용 기록을 저장하는 방법:

  * 카운터 기반 → 각 페이지의 마지막 사용 시간을 저장해야 함

  * 스택 기반 → 페이지가 참조될 때마다 정렬해야 함

 

✅ 해결 방법

✔️ LRU Approximation (LRU 근사 알고리즘) 사용

- 참조 비트(Reference Bit) 또는 페이지 접근 히스토리를 사용하여 완벽한 LRU 대신 근사적인 방법을 사용

- Clock Algorithm: FIFO + LRU 혼합 방식 (Second Chance 알고리즘과 유사)

- NFU (Not Frequently Used) 알고리즘: LRU처럼 최근 사용 기록을 반영하지만, 계산을 단순하게 만듦

 

✔️ LRU-K 알고리즘

- 최근 K번 참조된 시점을 기준으로 교체할 페이지를 결정 (예: LRU-2는 최근 2번 참조된 시간을 기준으로 판단)

- 장점: 단순 LRU보다 짧은 기간 동안만 많이 사용된 페이지가 유지되는 문제를 해결 가능

 

3. OPT (Optimal Page Replacement) - 가장 오랫동안 사용되지 않을 페이지 교체

✅ 단점

- 실제 시스템에서는 구현할 수 없음 (미래를 예측해야 함)

- 가장 적은 페이지 폴트를 발생시키는 이상적인 방법이지만, 실제 운영체제에서는 OPT 방식으로 동작할 수 없음

 

✅ 해결 방법

✔️ LRU 또는 LFU를 대체 알고리즘으로 사용

- OPT는 현실적으로 불가능하므로, 최근 사용 기록을 바탕으로 OPT에 가까운 성능을 내는 알고리즘(LRU, LFU 등)을 사용

- 예를 들어, LPU-K는 최근 K번 참조된 기록을 기준으로 페이지를 교체하여 OPT에 가까운 성능을 낼 수 있음

 

4. LFU (Least Frequently Used) - 사용 빈도가 가장 적은 페이지 교체

✅ 단점

- 최근에 사용된 페이지라도, 과거에 사용 빈도가 적다면 제거될 가능성이 있음

  * 예: 처음 등장한 페이지는 무조건 1회 사용 → 바로 제거될 가능성이 큼

- 오래된 페이지가 계속 유지될 수도 있음

  * 한 번 많이 사용된 페이지가 계속 남아 있어서, 최근 자주 사용되는 페이지가 제거될 수도 있음

 

✅ 해결 방법

✔️ LFU + Aging (가중치 감소 적용)

- 시간이 지날수록 과거의 사용 횟수 가중치를 줄이는 방식

- 예를 들어, 일정 시간마다 모든 페이지의 사용 횟수를 절반으로 줄이면, 오래된 페이지가 계속 유지되는 문제를 해결 가능

 

✔️ Adaptive LFU (적응형 LFU) 사용

- LRU와 혼합해서 최근 사용 패턴을 반영하도록 개선

- 예를 들어, 최근 K번의 참조 횟수만 고려하는 LFU-K 알고리즘을 사용하면, LFU의 단점(오래된 데이터 유지)을 해결할 수 있음

 

✅결론

알고리즘 단점 해결 방법
FIFO 오래된 페이지라도 무조건 제거됨 (Belady's Anomaly 발생 가능) Second Chance (Clock Algorithm) 사용
LRU 사용 기록 저장 오버헤드 큼 LRU Approximation (Clock Algorithm, NFU, LRU-K) 사용
OPT 미래를 예측해야 하므로 구현 불가능 LRU-K, LFU 등 현실적인 대안 사용
LFU 최근 사용된 페이지라도 과거에 사용 횟수가 적으면 제거될 가능성 Aging 적용, LFU-K 사용하여 최신 패턴 반영