Skip to the content.

最終更新日:2026年8月19日

まず結論

FIFO方式とは、ページ置換が必要になったときに、主記憶に先に入ったページから順に追い出す方式です。

FIFOは、First In First Out の略です。

基本情報技術者試験では、FIFO方式は 「先に入ったものを先に出す」ページ置換方式 と考えると判断しやすいです。

特に重要なのは、ページが途中で再び参照されても、主記憶に入った順番は更新しないことです。

FIFO
→ 入った順番を見る

LRU
→ 最後に使った時刻を見る

LRUのページ参照列の追い方は、LRUページ置換とは?最後に参照した時刻で置換ページを決めるで確認できます。

直感的な説明

FIFO方式は、行列に並ぶイメージです。

先に並んだ人から順番に呼ばれるように、FIFO方式では、先に主記憶へ入ったページから順番に置き換えられます。

先に入ったページ → 先に出る
あとから入ったページ → あとで出る

例えば、ページ枠に次の順でページが入ったとします。

2 → 5 → 7

ここでページ5をもう一度参照しても、

2 → 5 → 7

という入った順番は変わりません

その後、新しいページ9を入れる必要があれば、最初に入ったページ2を置き換えます。

2 → 5 → 7
↓
9を読み込む
↓
9 → 5 → 7

この「ヒットしても順番を変えない」が、LRUとの大きな違いです。

定義・仕組み

仮想記憶では、プログラムが使うページの一部だけを主記憶に置きます。

主記憶のページ枠がいっぱいの状態で、主記憶にないページを読み込む必要があると、どれかのページを置き換える必要があります。

このとき、どのページを追い出すかを決める方法が、ページ置換アルゴリズムです。

用語 意味
ページ 仮想記憶で扱う固定サイズの単位
ページ枠 主記憶上でページを入れる場所
ページフォールト 必要なページが主記憶にない状態
ページ置換 主記憶のページを入れ替えること
FIFO方式 最初に主記憶へ入ったページを最初に置き換える方式

FIFO方式では、ページ枠にページが入った順番を記録します。

ページ枠がいっぱいの状態で新しいページを入れるときは、最も古く主記憶に入ったページを置き換えます。

ヒットしたときは何もしない

参照したページがすでに主記憶にある状態を、ここでは「ヒット」と考えます。

FIFOでは、ヒットしても置換は発生しません。

さらに、

ヒットした
↓
ページ枠の中身はそのまま
↓
入った順番もそのまま

です。

つまり、FIFOでは「最後に参照された順番」ではなく「最初に入った順番」だけを追います

このテーマは、基本情報技術者試験の「コンピュータシステム」や「オペレーティングシステム」と関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験から確認できます。

科目Aでどう出る?

科目Aでは、FIFO方式の説明や、ページ参照列を使った計算問題として出題されやすいです。

判断するときは、次の表現を見ます。

表現 判断
最初に主記憶へ入ったページを置き換える FIFO方式
先入れ先出し FIFO方式
最後に参照されてから最も時間がたったページを置き換える LRU方式
これから最も長く使われないページを置き換える OPT方式
使用頻度が最も低いページを置き換える LFU方式

特に、LRU方式との違いが大切です。

方式 見るもの ヒットしたとき 置き換えるページ
FIFO 主記憶に入った順番 順番を更新しない 最初に入ったページ
LRU 最後に参照された時刻 最近使った扱いに更新 最も長く使われていないページ

計算問題の基本手順

  1. ページ参照列を左から順に見る
  2. 参照ページがページ枠にあれば、置換しない
  3. FIFOでは、ヒットしても入った順番を更新しない
  4. 参照ページがページ枠になければ、ページフォールトになる
  5. 空き枠があれば、そのまま入れる
  6. 空き枠がなければ、最初に入ったページを置き換える

典型的な追い方

ページ枠が3つで、次の参照列を考えます。

2, 5, 7, 5, 2, 9

途中の状態は次のようになります。

参照 ページ枠 判断
2 2 空き枠に入れる
5 2, 5 空き枠に入れる
7 2, 5, 7 空き枠に入れる
5 2, 5, 7 ヒット。順番は更新しない
2 2, 5, 7 ヒット。順番は更新しない
9 9, 5, 7 最初に入った2を置き換える

最後にページ9を参照した時点では、ページ2が最も古く主記憶に入ったページです。

途中でページ2が再参照されても、FIFOでは入った順番は変わりません。

したがって、

[2, 5, 7]
↓ 9を参照
[9, 5, 7]

となります。

どんな場面で使う?

問題文では、ページ参照列を順に追って、ページ枠の中身やページフォールト回数を求める問題でFIFO方式の考え方が役立ちます。

実際に追跡するときは、ページ枠の中身だけでなく、どのページが最初に入ったかを示す待ち行列もメモすると安全です。ヒットしたページを待ち行列の末尾へ移してはいけません。

よくある誤解・混同

FIFO方式でよくある誤解は、途中で参照されたページを新しい扱いにしてしまうことです。

誤解 正しい理解
参照されたページは順番が新しくなる FIFOでは順番を更新しない
最近使っていないページを追い出す それはLRU方式
ページ番号が小さいものを追い出す ページ番号の大小は関係ない
最後に入ったページを追い出す FIFOは最初に入ったページを追い出す
FIFOとLRUは同じ結果になる 参照順によって結果が変わることがある

特に、次の切り分けを覚えておくと強いです。

FIFO
→ 入った順番を見る

LRU
→ 最後に使った時刻を見る

「参照された順」と「入った順」を混同しない

FIFOでは、

2, 5, 7

の順に入ったあと、

5, 2

と再参照されても、

入った順
2 → 5 → 7

のままです。

ここを、

5や2を参照したから新しくなった

と考えると、LRUの考え方と混ざってしまいます。

まとめ(試験直前用)

  • FIFO方式は、最初に主記憶へ入ったページを最初に置き換える
  • FIFOは First In First Out の略
  • ページ番号の大小では判断しない
  • ヒットしても、主記憶に入った順番は更新しない
  • FIFOは「参照された順」ではなく「入った順」を見る
  • LRUは最後に使った時刻を見る
  • 計算問題では、参照列を左から順に追う

関連記事

© 2024-2026 stemtazoo. All rights reserved.