最終更新日:2026年8月15日
fe fe-technology computer-system
まず結論
LRU(Least Recently Used)方式とは、最後に参照されてから最も長い時間が経過したブロックを置き換え対象にする方式です。
基本情報技術者試験では、次のように切り分けると判断しやすくなります。
最後に使った時刻が古い
→ LRU
使われた回数が少ない
→ LFU
読み込まれた順が古い
→ FIFO
最近使われていない
→ NRU
特に、LRUとFIFOの違いを混同しないことが重要です。
直感的な説明
机の上に4冊しか本を置けないとします。
新しい本を1冊置くために、どれか1冊を棚へ戻さなければなりません。
LRUでは、
最後に手に取ってから、一番長い時間が経っている本
を棚へ戻します。
例えば、机の上にA、B、C、Dの4冊があり、最近の利用状況が次のようだったとします。
A:ついさっき使った
B:10分前に使った
C:1時間前に使った
D:昨日使って以来、使っていない
この場合、LRUで置き換え対象になるのはDです。
ポイントは、最初に机へ置いた時刻ではなく、最後に使った時刻を見ることです。
定義・仕組み
LRUは、キャッシュメモリなどの限られた領域から、どのブロックを追い出すか決める置換方式の一つです。
キャッシュに空きがない状態で新しいデータを格納する場合、既存のブロックの一つを置き換える必要があります。
LRUでは、各ブロックが最後に参照された時点を考えます。
最近参照された
→ これからも使われる可能性がある
長い間参照されていない
→ 置き換え候補にする
FIFOとの違い
FIFO(First In First Out)は、最も早く読み込まれたブロックを置き換えます。
LRU
→ 最後に使ったのはいつ?
FIFO
→ 最初に入ったのはいつ?
例えば、最も古く読み込まれたブロックでも、直前に参照されていれば、LRUでは残ります。
一方、FIFOでは途中で何回参照されたかは関係なく、読み込まれた順番だけを見ます。
LFUとの違い
LFU(Least Frequently Used)は、参照回数が最も少ないブロックを置き換えます。
LRU
→ 最後に使った時刻
LFU
→ 使われた回数
「最近使われたか」と「何回使われたか」は別の判断基準です。
NRUとの違い
NRU(Not Recently Used)は、最近参照されていないブロックを優先して置き換える考え方です。
LRUのように「最後に参照された時刻を厳密に比較する」というより、最近使われたかどうかを区分して判断します。
このテーマは、基本情報技術者試験のコンピュータ構成要素やメモリ管理と関係します。公式の出題範囲やシラバスは、IPA:基本情報技術者試験から確認できます。
科目Aでどう出る?
科目Aでは、置換方式の説明から該当する用語を選ぶ問題が出ます。
そのときは、文章の中で何を基準に置き換えているかを確認します。
| 問題文の表現 | 判断 |
|---|---|
| 最後に参照されてから最も長い時間が経過 | LRU |
| 参照回数が最も少ない | LFU |
| 読み込まれてから最も長い時間が経過 | FIFO |
| 最近参照されていない | NRU |
選択肢を切る順番
まず、「時間」なのか「回数」なのかを見ます。
回数が少ない
→ LFU
時間に注目
→ LRU / FIFO
次に、時間の基準を確認します。
最後に参照された時刻
→ LRU
最初に読み込まれた時刻
→ FIFO
これだけで、多くの選択肢を切れます。
どんな場面で使う?
LRUの考え方は、限られた高速な記憶領域を効率よく使いたい場面で使われます。
例えば、次のような場面です。
- キャッシュメモリ
- ページ置換
- データキャッシュ
- Webブラウザやアプリのキャッシュ管理
共通しているのは、保存できる量に限りがあるため、何を残して何を追い出すか決める必要があることです。
よくある誤解・混同
LRUは「最初に入ったもの」を追い出す
それはFIFOの考え方です。
LRU
→ 最後に使われた時刻を見る
FIFO
→ 入った順番を見る
LRUは「最も使用回数が少ないもの」を追い出す
それはLFUです。
LRU
→ Recency:最近使われたか
LFU
→ Frequency:何回使われたか
英単語の意味から切り分けると覚えやすくなります。
長くキャッシュにあるブロックほどLRUで追い出される
必ずしもそうではありません。
古くからキャッシュに存在していても、直前に何度も参照されていればLRUでは残ります。
LRUで見るのは、キャッシュへ入った時刻ではなく、最後に参照された時刻です。
LRUとNRUは同じ
似ていますが、判断の細かさが異なります。
LRUは最後に参照された順序を使って、最も古いものを選びます。
NRUは最近参照されていないものを候補にする考え方です。
FE試験では、まず次の言葉で切り分けるのが安全です。
「最後に参照されてから最も長い」
→ LRU
「一定時間参照されていない」
→ NRU
まとめ(試験直前用)
- LRUは、最後に参照されてから最も長い時間が経過したブロックを置き換える
- LFUは、参照回数が最も少ないブロックを置き換える
- FIFOは、最も早く読み込まれたブロックを置き換える
- NRUは、最近参照されていないブロックを優先する
- LRUとFIFOで迷ったら、「最後に使った時刻」か「最初に入った時刻」かを見る
- LRUとLFUで迷ったら、「時間」か「回数」かを見る