ページ置換:FIFOとLRUで差が出る

参照列とフレーム数を動かし、FIFOLRUOPT のページフォルトを並べて比較します。FIFO では枠を増やすと逆に悪化する Beladyの異常 も再現できます。

3 枠
12 個
5 種
アルゴリズム:
参照列:
FIFO フォルト
LRU フォルト
OPT フォルト(最良)
フォルト率(選択中)
置換の流れ(FIFO)── 赤=フォルト(ロード)、緑=ヒット、▲=このステップで追い出されたページ
ページフォルト(メモリに無く、ロード) ヒット(すでにメモリにある) そのフレームに常駐中
物理メモリ(フレーム)は限られているので、新しいページが必要なのに空きが無いとき、どれか1枚を追い出して入れ替えます。これがページ置換です。
FIFO は「最初に入れたページ」を追い出す。LRU は「最も長く使われていないページ」を追い出す。OPT は「この先いちばん遠くで使われるページ」を追い出す理論上の最良(未来が見える前提なので実装は不可)。
同じ参照列でも追い出すページが違うので、ページフォルトの回数に差が出ます。スライダーとボタンで動かしてみましょう。

いま何が起きている?

ここがポイント