FIFO 메모리 페이지 교체

좋습니다!
운영체제에서 메모리 교체(Memory Replacement) 알고리즘 중 하나인 FIFO (First-In First-Out)를 그림과 함께 쉽게 설명드릴게요.


✅ FIFO (First-In First-Out) 페이지 교체란?

  • 가장 먼저 들어온 페이지를 가장 먼저 쫓아내는 방식입니다.
  • 큐(Queue) 자료구조처럼 동작합니다.
  • 메모리에 먼저 들어온 페이지가 가장 먼저 나갑니다.

🧠 예시 상황

  • 프레임 수 (메모리에 올릴 수 있는 페이지 수): 3
  • 페이지 참조 순서:
    👉 7, 0, 1, 2, 0, 3, 0, 4

📊 FIFO 페이지 교체 시뮬레이션

각 단계에서 어떤 페이지가 교체되는지 시각화한 그림:

[ 7 ]         → MISS (7 넣음)
[ 7 0 ]       → MISS (0 넣음)
[ 7 0 1 ]     → MISS (1 넣음)
[ 2 0 1 ]     → MISS (7 나가고 2 들어옴)
[ 2 0 1 ]     → HIT  (0 이미 있음)
[ 2 3 1 ]     → MISS (0 나가고 3 들어옴)
[ 2 3 1 ]     → HIT  (0 이미 없음 → MISS, 1 나가고 0 들어옴)
[ 4 3 0 ]     → MISS (2 나가고 4 들어옴)

🖼️ 그림으로 표현 (프레임이 3개일 때):

페이지 요청:       7   0   1   2   0   3   0   4
메모리 상태:
                ┌───┐
           7 →  │ 7 │
                └───┘
                ┌───┐
           0 →  │ 0 │
                └───┘
                ┌───┐
           1 →  │ 1 │
                └───┘
                ┌───┐
           2 →  │ 2 │  (7 out)
                └───┘
           0 →  HIT (이미 있음)
           3 →  │ 3 │  (0 out)
           0 →  │ 0 │  (1 out)
           4 →  │ 4 │  (2 out)

✅ 페이지 교체 횟수 및 페이지 폴트

요청상태교체 발생메모리 상태
7MISSO[7]
0MISSO[7, 0]
1MISSO[7, 0, 1]
2MISS[0, 1, 2] (7 out)
0HIT[0, 1, 2]
3MISS[1, 2, 3] (0 out)
0MISS[2, 3, 0] (1 out)
4MISS[3, 0, 4] (2 out)

→ 총 6번의 페이지 폴트 발생


🔚 정리

  • FIFO의 장점: 구현이 아주 간단하다.
  • 단점: 오래된 게 꼭 필요 없는 건 아니라서 성능이 떨어질 수도 있음
    (예: Belady의 anomaly 현상 가능)

필요하시면 LRU, Optimal 알고리즘도 비교해서 설명드릴게요.
그림까지 같이 보여드릴 수도 있어요! 😊

profile
AI 답변 글을 주로 올립니다.

0개의 댓글