問19 キャッシュの置換と LRU

応用情報​技術者試験 令和7年度 秋期 午前、全80問のうちの問19。

出典:令和7年度 秋期 応用情報技術者試験 午前 問19(表は原本の画像を文字に書き起こした)

4 ブロックのキャッシュメモリ C0〜C3 が表に示す状態である。ここで,新たに別のブロックの内容をキャッシュメモリにロードする必要が生じたとき,C2 のブロックを置換の対象とするアルゴリズムはどれか。

キャッシュメモリロード時刻(分:秒)最終参照時刻(分:秒)参照回数
C00:0⁠00:0⁠81⁠0
C10:0⁠30:0⁠61
C20:0⁠40:0⁠53
C30:0⁠50:1⁠05

表は横に送ると続きが見えます。

  1. アFIFO
  2. イLFU
  3. ウLIFO
  4. エLRU
答えと解説を開く

正解はエです。

各アルゴリズムがどのブロックを追い出すかを表で確かめます。LRU (Least Recently Used) は、最後に参照されてから最も時間がたったブロックを追い出します。最終参照時刻は C0 が 0:0⁠8、C1 が 0:0⁠6、C2 が 0:0⁠5、C3 が 0:1⁠0 なので、いちばん古いのは C2 です。だから C2 を置換の対象にするのは LRU のエです。

ほかの選択肢が違う理由

  • アFIFO は、最も早くロードした物から追い出します。ロード時刻が最も早いのは 0:0⁠0 の C0 です。
  • イLFU は、参照回数が最も少ない物を追い出します。参照回数が最も少ないのは 1 回の C1 です。
  • ウLIFO は、最後にロードした物から追い出します。ロード時刻が最も遅いのは 0:0⁠5 の C3 です。

仕組み

キャッシュは容量が小さいので、新しいデータを入れるには何かを追い出す必要があります。追い出す物の選び方が置換のアルゴリズムです。

「最近使った物はまた使う」という性質 (時間の局所性) があるので、長く使っていない物を追い出す LRU は、よく当たる選び方として広く使われています。

この問に出る言葉