メインコンテンツへ
ソフトウェアページ置換アルゴリズム

LRU(Least Recently Used)ページ置換アルゴリズムの説明として正しいものはどれか。

ア.物理メモリに最も長くいるページを追い出す。
イ.最後に参照された時刻が最も古いページを追い出す。正解
ウ.将来参照されないページを予測して追い出す最適アルゴリズムである。
エ.最も参照頻度の低いページを追い出す(参照カウントを使う)。

解説

LRUは「最近使ってないものを捨てる」掃除のコツ。長らく開いていない本を本棚から倉庫へ移すイメージです。「最後に使った時刻」が鍵です。

なぜ イ が正解か

LRU(Least Recently Used)は「直近で最も使われていないページ」を置換対象とするアルゴリズムです。各ページの最終参照時刻を記録し、フォルトが起きたとき「最終参照時刻が最も古いページ」をディスクに追い出します。時間的局所性(最近使ったものはまた使う)の原理を利用しており、理論的に優れた性能を持ちますが、実装にはスタックや参照ビットなどの補助構造が必要です。

なぜ ア は間違いか

物理メモリに最も長くいるページを追い出すのは「FIFO(First In First Out)」アルゴリズムです。FIFOは到着順に管理し、「先に来たものを先に追い出す」単純な方式です。

なぜ ウ は間違いか

将来参照されないページを予測して最適に追い出すのは「OPT(Optimal)アルゴリズム」または「Bélady のアルゴリズム」です。理論上最もフォルト率が低いですが、未来の参照が分からない実環境では実装不可能です。

なぜ エ は間違いか

参照頻度が最も低いページを追い出すのは「LFU(Least Frequently Used)」アルゴリズムです。LFUはカウンタで参照回数を記録し、回数が最小のページを置換します。LRU(時刻ベース)とは異なります。

出典: AI生成問題(学習用)