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

基本情報技術者 2011年 春期 午前(科目A)21


問題文

LRUアルゴリズムで、ページ置換えの判断基準に用いられる項目はどれか。

選択肢

最後に参照した時刻(正解)
最初に参照した時刻
単位時間当たりの参照頻度
累積の参照回数

🔒 解説は解答すると表示されます

LRUページ置換アルゴリズム【午前解説】

正解の理由

正解は (最後に参照した時刻)です。LRUは直近の参照履歴に基づき、最も長く参照されていないページを置換します。言い換えれば「最後に使われた日時」が古いページほど置換候補として優先されます。
他の選択肢は「頻度」や「最初の参照」という別の基準であり、LRUの定義と一致しません。

解法ステップ

  1. 問題文からキーワードを抽出:「LRU」「ページ置換」「判断基準」→ 最近性を問う問題と認識。
  2. 各選択肢を「最近性」「頻度」「初回参照」に分類する。
  3. LRUは「最近性(最後に参照した時刻)」を使うアルゴリズムと即断する。
  4. 正答として を選択する。試験ではキーワード一致が最も確実です。

選択肢別の誤答解説

  • :正解。最後に参照した時刻(または直近の参照履歴)で最も古いページを置換するのがLRUの本質です。
  • イ:最初に参照した時刻はページの導入順や生存期間を示すだけで、最近性の評価には用いません。FIFO(先入れ先出し)では導入順が関係しますが、これは最初参照時刻と単純には一致しません。
  • ウ:単位時間当たりの参照頻度は「最近の頻度」を測る指標で、LFU(Least Frequently Used)や頻度ベースの手法に関係します。LRUは頻度を直接使いません。
  • エ:累積の参照回数もLFU的な基準であり、長期的なアクセス回数が少ないページを置換する方針です。LRUとは評価軸が異なります。

よくある誤解

  • 「参照回数が少ない=LRUの置換対象」と誤認する:参照回数(累積や単位時間当たりの頻度)はLFUや頻度ベースの手法の基準です。
  • 「最初に参照した時刻が古い=LRU」と混同する:初回参照時刻はそのページの生存期間を示すだけで、最近性評価には使わないことが多いです。
  • 実装方式(タイムスタンプ vs リスト)を混同して、挙動の定義を誤る:実装は複数ありますが、判断基準は常に「最近使われたか否か」です。

補足コラム

LRUを実装する方法はいくつかあります。実用的には完全な時刻比較を行うのではなく、次のような近似やデータ構造で効率化します。
  • 双方向連結リスト+ハッシュ(参照でノードを先頭へ移動)…O(1)で更新可能。
  • タイムスタンプ(アクセス時に現在時刻を記録)…比較は簡単だが更新コストや精度に注意。
  • 時計(Clock)アルゴリズム…LRUの近似で実装コストを下げる方法。
    参考としてPythonのcollections.OrderedDictを使った簡易LRU例を示します。
from collections import OrderedDict

class LRUCache:
    def __init__(self, capacity):
        self.cache = OrderedDict()
        self.cap = capacity

    def access(self, key, value=None):
        # アクセスがあれば最新に移動
        if key in self.cache:
            self.cache.move_to_end(key)  # 末尾を最新とする
        else:
            if len(self.cache) >= self.cap:
                self.cache.popitem(last=False)  # 先頭(最も古い)を削除
            self.cache[key] = value

FAQ

Q1: LRUとLFUはどちらが優れているですか?
A1: ワークロード次第です。短期的な局所性(直近の参照が重要な場合)はLRUが有利で、長期的に頻繁に参照されるものを残したいならLFUが有利です。どちらも一長一短です。
Q2: LRUは最適な置換アルゴリズムですか?
A2: 未来の参照列が完全に分かっていればBeladyの最適解(OPT)が最適ですが、現実には未来は分かりません。LRUは実用的で有効なヒューリスティックです。
Q3: 試験で「参照回数」や「最初の時刻」が選択肢にある場合の見分け方は?
A3: 「最近」「直近」「最後に」といった語があればLRU、「頻度」「回数」「累積」「平均」などならLFUや頻度ベース候補と判断します。

関連キーワード: LRU、ページ置換、キャッシュ、仮想記憶、LFU、時計アルゴリズム、参照時刻、最近使用、置換アルゴリズム
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

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

クイズ画面へ遷移する

すぐに利用可能!

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

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