페이지 교체 알고리즘 계산기 (FIFO, LRU, Optimal)
FIFO, LRU, Optimal, LFU, Clock 페이지 교체를 시뮬레이션해 참조마다의 프레임, 히트와 페이지 폴트, 히트율, 벨레이디의 이상 현상 검사까지 보여 줍니다.
이 범위에서는 벨레이디의 이상 현상이 없습니다. 프레임이 늘었는데 폴트가 늘어난 알고리즘이 없습니다.
LRU는 마지막으로 사용한 때가 가장 오래된 페이지를 교체합니다.
- FIFO
- LRU
- Optimal
- LFU
- Clock
| # | 페이지 | 프레임 1 | 프레임 2 | 프레임 3 | 결과 | 내보낸 페이지 |
|---|---|---|---|---|---|---|
| 1 | 7 | 7 | 폴트 | |||
| 2 | 0 | 7 | 0 | 폴트 | ||
| 3 | 1 | 7 | 0 | 1 | 폴트 | |
| 4 | 2 | 2 | 0 | 1 | 폴트 | 7 |
| 5 | 0 | 2 | 0 | 1 | 히트 | |
| 6 | 3 | 2 | 0 | 3 | 폴트 | 1 |
| 7 | 0 | 2 | 0 | 3 | 히트 | |
| 8 | 4 | 4 | 0 | 3 | 폴트 | 2 |
| 9 | 2 | 4 | 0 | 2 | 폴트 | 3 |
| 10 | 3 | 4 | 3 | 2 | 폴트 | 0 |
| 11 | 0 | 0 | 3 | 2 | 폴트 | 4 |
| 12 | 3 | 0 | 3 | 2 | 히트 | |
| 13 | 2 | 0 | 3 | 2 | 히트 | |
| 14 | 1 | 1 | 3 | 2 | 폴트 | 0 |
| 15 | 2 | 1 | 3 | 2 | 히트 | |
| 16 | 0 | 1 | 0 | 2 | 폴트 | 3 |
| 17 | 1 | 1 | 0 | 2 | 히트 | |
| 18 | 7 | 1 | 0 | 7 | 폴트 | 2 |
| 19 | 0 | 1 | 0 | 7 | 히트 | |
| 20 | 1 | 1 | 0 | 7 | 히트 |
| 프레임 수 | FIFO | LRU | Optimal | LFU | Clock |
|---|---|---|---|---|---|
| 1 | 20 | 20 | 20 | 20 | 20 |
| 2 | 15 | 17 | 13 | 15 | 15 |
| 3 | 15 | 12 | 9 | 13 | 14 |
| 4 | 10 | 8 | 8 | 9 | 9 |
| 5 | 9 | 7 | 7 | 7 | 9 |
| 6 | 6 | 6 | 6 | 6 | 6 |
| 7 | 6 | 6 | 6 | 6 | 6 |
메모리가 가득 찼는데 프로그램이 적재되지 않은 페이지를 필요로 하면 운영체제는 내보낼 페이지를 골라야 합니다. 이 선택이 페이지 폴트가 몇 번 일어나는지를 결정합니다. 이 계산기는 대표적인 교체 알고리즘인 FIFO, LRU, Optimal, LFU, Clock(두 번째 기회)을 참조 문자열에 적용해 참조마다의 프레임과 히트·폴트를 보여 주고, 히트율을 구하며, 모든 알고리즘을 프레임 수별로 비교해 벨레이디의 이상 현상이 있으면 드러냅니다.
사용 방법
- 참조 문자열을 입력합니다. 사용되는 순서대로 나열한 페이지 번호입니다.
- 프레임 수를 정합니다.
- 알고리즘을 고릅니다.
- 프레임 표, 폴트 횟수, 프레임 수별 비교를 확인합니다.
계산식
히트율 = 히트 ÷ 참조 수 · 폴트율 = 폴트 ÷ 참조 수 · 폴트에는 빈 프레임에 처음 적재하는 것도 포함
FIFO는 가장 먼저 적재된 페이지를, LRU는 가장 오래 전에 사용된 페이지를, Optimal은 다음 사용이 가장 먼(또는 다시 쓰이지 않는) 페이지를, LFU는 적재된 뒤 가장 적게 사용된 페이지(동점이면 먼저 적재된 것)를 내보냅니다. Clock은 프레임을 돌며 참조 비트를 지우다가 비트가 이미 꺼진 첫 페이지를 내보냅니다. 모든 알고리즘은 교재처럼 처음 적재를 폴트로 셉니다. 비교표는 프레임 1개부터 12개까지 반복해서 실행한 결과입니다.
예시
교재의 참조 문자열 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1과 프레임 3개에서 LRU는 페이지 폴트 12회, 히트 8회(히트율 40%)이고, FIFO는 15회, Clock은 14회, Optimal은 하한인 9회입니다. 문자열 1 2 3 4 1 2 5 1 2 3 4 5에서 FIFO는 프레임 3개일 때 폴트 9회, 4개일 때 10회가 되는데, 이것이 벨레이디의 이상 현상입니다.
자주 묻는 질문
벨레이디의 이상 현상이란 무엇인가요?
일부 참조 문자열에서는 FIFO에 프레임을 더 주면 오히려 페이지 폴트가 늘어납니다. LRU와 Optimal은 스택 알고리즘, 즉 k개 프레임의 페이지가 항상 k + 1개 프레임에 든 페이지의 부분집합이어서 이런 현상이 나타나지 않습니다.
Optimal은 왜 실제 시스템에서 쓰이지 않나요?
앞으로의 페이지 참조 순서를 알아야 하기 때문입니다. 비교 기준으로 쓰이며, 같은 문자열에서 어떤 알고리즘도 이보다 적은 폴트를 낼 수 없습니다.
처음 적재도 폴트로 세나요?
네. 메모리에 없는 페이지는 빈 프레임이 있든 없든 폴트를 일으킵니다. 이를 강제 미스(compulsory miss) 또는 콜드 미스라고 합니다.
출처
최종 업데이트:
이 입력값이 담긴 페이지 주소: https://kakao.mobile/ko/tools/page-replacement-simulator/
인용·퍼가기
kakaoCalc. (2026, November 8). 페이지 교체 알고리즘 계산기 (FIFO, LRU, Optimal). https://kakao.mobile/ko/tools/page-replacement-simulator/
“페이지 교체 알고리즘 계산기 (FIFO, LRU, Optimal).” kakaoCalc, 8 Nov. 2026, kakao.mobile/ko/tools/page-replacement-simulator/.