最終更新日:2026年7月25日
fe fe-technology computer-system algorithm
まず結論
FIFO方式とは、ページ置換が必要になったときに、主記憶に先に入ったページから順に追い出す方式です。
FIFOは、First In First Out の略です。
基本情報技術者試験では、FIFO方式は 「先に入ったものを先に出す」ページ置換方式 と考えると判断しやすいです。
LRU方式と違って、ページが途中で参照されても、主記憶に入った順番は更新しない ところが重要です。
直感的な説明
FIFO方式は、行列に並ぶイメージです。
先に並んだ人から順番に呼ばれるように、FIFO方式では、先に主記憶へ入ったページから順番に置き換えられます。
先に入ったページ → 先に出る
あとから入ったページ → あとで出る
例えば、ページ枠に次の順でページが入ったとします。
1 → 2 → 3 → 4
ページ枠がいっぱいの状態で新しいページ5を入れる必要がある場合、FIFO方式では、最初に入ったページ1を置き換えます。
ここで、途中でページ2やページ3が参照されても、FIFOでは「入った順番」だけを見ます。
定義・仕組み
仮想記憶では、プログラムが使うページの一部だけを主記憶に置きます。
主記憶のページ枠がいっぱいの状態で、主記憶にないページを読み込む必要があると、どれかのページを置き換える必要があります。
このとき、どのページを追い出すかを決める方法が、ページ置換アルゴリズムです。
| 用語 | 意味 |
|---|---|
| ページ | 仮想記憶で扱う固定サイズの単位 |
| ページ枠 | 主記憶上でページを入れる場所 |
| ページフォールト | 必要なページが主記憶にない状態 |
| ページ置換 | 主記憶のページを入れ替えること |
| FIFO方式 | 最初に主記憶へ入ったページを最初に置き換える方式 |
FIFO方式では、ページ枠にページが入った順番を記録します。
ページ枠がいっぱいの状態で新しいページを入れるときは、最も古く主記憶に入ったページ を置き換えます。
このテーマは、基本情報技術者試験の「コンピュータシステム」や「オペレーティングシステム」と関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。
科目Aでどう出る?
科目Aでは、FIFO方式の説明や、ページ参照列を使った計算問題として出題されやすいです。
判断するときは、次の表現を見ます。
| 表現 | 判断 |
|---|---|
| 最初に主記憶へ入ったページを置き換える | FIFO方式 |
| 先入れ先出し | FIFO方式 |
| 最後に参照されてから最も時間がたったページを置き換える | LRU方式 |
| これから最も長く使われないページを置き換える | OPT方式 |
| 使用頻度が最も低いページを置き換える | LFU方式 |
特に、LRU方式との違いが大切です。
| 方式 | 見るもの | 置き換えるページ |
|---|---|---|
| FIFO | 主記憶に入った順番 | 最初に入ったページ |
| LRU | 最後に参照された時刻 | 最近使われていないページ |
FIFOでは、ページが参照されても、入った順番は変わりません。
LRUでは、ページが参照されると「最近使ったページ」として扱いが更新されます。
どんな場面で使う?
問題文では、ページ参照列を順に追って、ページ枠の中身を更新する問題でFIFO方式の考え方が役立ちます。
基本手順は次のとおりです。
- ページ参照列を左から順に見る
- 参照ページがページ枠にあれば、置換はしない
- FIFOでは、ヒットしても入った順番は更新しない
- 参照ページがページ枠になければ、ページフォールトになる
- 空き枠があれば、そのまま入れる
- 空き枠がなければ、最初に入ったページを置き換える
例えば、ページ枠が3つで、次の順に参照するとします。
1, 2, 3, 2, 4
途中の状態を簡単に追うと、次のようになります。
| 参照 | ページ枠 | 考え方 |
|---|---|---|
| 1 | 1 | 空き枠に入れる |
| 2 | 1, 2 | 空き枠に入れる |
| 3 | 1, 2, 3 | 空き枠に入れる |
| 2 | 1, 2, 3 | ヒット。順番は更新しない |
| 4 | 4, 2, 3 | 最初に入った1を置き換える |
この例では、途中でページ2を参照しています。
しかし、FIFO方式ではページ2を「最近使った」として順番更新しません。
ここがLRU方式との大きな違いです。
よくある誤解・混同
FIFO方式でよくある誤解は、途中で参照されたページを新しい扱いにしてしまうこと です。
| 誤解 | 正しい理解 |
|---|---|
| 参照されたページは順番が新しくなる | FIFOでは順番を更新しない |
| 最近使っていないページを追い出す | それはLRU方式 |
| ページ番号が小さいものを追い出す | ページ番号の大小は関係ない |
| 最後に入ったページを追い出す | FIFOは最初に入ったページを追い出す |
| FIFOとLRUは同じ結果になる | 参照順によって結果が変わることがある |
特に、次の切り分けを覚えておくと強いです。
FIFO:入った順番を見る
LRU:最後に使った時刻を見る
FIFOでは、ページ枠にヒットしたときは「置換しない」だけです。
LRUのように、最近使ったページとして順番を並べ替える必要はありません。
まとめ(試験直前用)
- FIFO方式は、最初に主記憶へ入ったページを最初に置き換える
- FIFOは First In First Out の略
- ページ番号の大小では判断しない
- ヒットしても、主記憶に入った順番は更新しない
- LRUは最後に使った時刻を見る
- 計算問題では、参照列を左から順に追う