좋습니다!
운영체제에서 메모리 교체(Memory Replacement) 알고리즘 중 하나인 FIFO (First-In First-Out)를 그림과 함께 쉽게 설명드릴게요.
7, 0, 1, 2, 0, 3, 0, 4각 단계에서 어떤 페이지가 교체되는지 시각화한 그림:
[ 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 들어옴)
페이지 요청: 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)
| 요청 | 상태 | 교체 발생 | 메모리 상태 |
|---|---|---|---|
| 7 | MISS | O | [7] |
| 0 | MISS | O | [7, 0] |
| 1 | MISS | O | [7, 0, 1] |
| 2 | MISS | ✅ | [0, 1, 2] (7 out) |
| 0 | HIT | [0, 1, 2] | |
| 3 | MISS | ✅ | [1, 2, 3] (0 out) |
| 0 | MISS | ✅ | [2, 3, 0] (1 out) |
| 4 | MISS | ✅ | [3, 0, 4] (2 out) |
→ 총 6번의 페이지 폴트 발생
필요하시면 LRU, Optimal 알고리즘도 비교해서 설명드릴게요.
그림까지 같이 보여드릴 수도 있어요! 😊