戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2015年 秋期 午前(科目A)17


問題文

仮想記憶管理のページ入替え方式のうち、最後に使われてからの経過時間が最も長いページを入れ替えるものはどれか。

選択肢

FIFO
LFU
LIFO
LRU(正解)

仮想記憶管理のページ入替え方式(最後に使われてからの経過時間が最も長いページを入れ替えるものはどれか)【午前2 解説】

要点まとめ

  • 結論→ 最後に使われてからの経過時間が最も長いページを入れ替える方式は LRU(Least Recently Used)であり正解は です。
  • 根拠→ 「最後に使われてからの経過時間」が示すのは“最近の使用の新しさ(recency)”で、LRUはこれを基準に置換を行います。
  • 差がつくポイント→ FIFO は投入順、LFU は使用頻度、LIFO は直近投入を優先する点を混同しないことが高得点の鍵です。

正解の理由

正解は (LRU)です。問題文の「最後に使われてからの経過時間が最も長いページを入れ替える」という定義はまさに LRU の定義そのものです。LRU は「もっとも長い間参照されていない(最も古く参照された)ページ」を置換対象にする方式で、直近性(recency)に基づいて判断します。将来参照を知る理想的な方式(OPT)とは異なりますが、現実的なオンライン戦略として局所性のあるワークロードで有効です。

よくある誤解

  • FIFO と混同してしまう:FIFO は「最初に入った(oldest loaded)ページ」を追い出す方式で、使用の最近性(最後に参照された時間)を見ているわけではありません。
  • LFU と誤認する:LFU は「参照回数(frequency)」が最小のページを外す方式で、直近に使われたかどうかは関係ありません。
  • LRU が常に最良だと思い込む:LRU は現実的かつ優れた方式ですが、最適(未来を知る OPT)ではなく、実装コストや特定のワークロードでの挙動に注意が必要です。

解法ステップ

  1. 問題文からキーワードを拾う:「最後に使われてからの経過時間」→「最後に参照された時刻(recency)」。
  2. 各方式の定義を確認:FIFO(投入順)、LFU(参照回数)、LIFO(最終投入順)、LRU(最終参照時刻)。
  3. 「recency」に対応する方式は LRU であると判断する。
  4. 選択肢から を選ぶ。

選択肢別の誤答解説

  • ア: FIFO — ページをメモリに入れた順序(先入れ)で追い出す方式。参照の「最後の使用時刻」は考慮しません。
  • イ: LFU — 一定期間内や累積で参照回数が最も少ないページを置換します。頻度(frequency)基準であり「最終使用からの経過時間」は対象にしません。
  • ウ: LIFO — スタックのように「最後に入れた(または最後に使った)ものを先に出す」方式で、問題文の条件とは逆の概念です。実運用ではほとんど使われません。
  • エ: LRU — 最後に使われてからの経過時間(recency)が最も長いページを置換する方式で、設問の定義に完全に一致します。

補足コラム

  • 実装上の工夫:完全な LRU を高速に実装するにはコストが高く、参照ビットや CLOCK アルゴリズム、エイジング(aging)などで近似することが多いです。
  • スタックアルゴリズム性:LRU はスタックアルゴリズムの一種で、メモリフレーム数を増やしてもページフォールト数が減少する性質(包含性)を持ち、Belady の異常を起こしません。対して FIFO は Belady の異常を起こす場合があります。
  • 実際の OS では:完全な LRU はコスト面で不利なため、近似手法(Clock、2nd-chance、LRU-K 等)が用いられます。

FAQ

Q1. LRU は常に最良の選択ですか?
A1. いいえ。将来アクセスを完全に予測できる最適アルゴリズム(OPT)に比べれば劣りますし、実装コストや特定ワークロードでは近似手法の方が有利です。
Q2. LFU と LRU はどちらが使われやすいですか?
A2. ワークロード次第ですが、局所性(recency)が強い場合は LRU が有利、長期的な頻度が重要なら LFU が有利です。実用OSでは LRU の近似が多用されます。
Q3. LRU を効率的に実装する方法は?
A3. ハードウェアの参照ビットと CLOCK(ポインタを回す)や、段階的に古さを表すエイジング、あるいはハッシュ+リンクリストで近似する方法があります。

関連キーワード: 仮想記憶、ページ置換、LRU、FIFO、LFU、LIFO、ページフォールト、CLOCK、参照ビット、スタックアルゴリズム
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について