【応用情報 対策】LRUとは? 「机が狭い!」を解決する、仮想記憶とページ置換えを徹底解説

PR

よかったら運営者のnoteも見てください!

応用情報技術者試験の午前問題では、OSの根幹をなす「仮想記憶」の仕組みを問う、良質な問題がよく出題されます。

例えば、以下のような問題です(令和7年度春期 午前問9より)。

【問題】
仮想記憶管理におけるページ置換えアルゴリズムとしてLRU方式を採用する。主記憶のページ枠が4ページ分(4000, 5000, 6000, 7000番地)ある。

プログラムが参照するページ番号の順が
1 → 2 3 4 2 5 3 1 6 5 4
のとき、最後の参照ページ「4」は、どの番地にページインされるか?

(ただし、最初の1 2 3 4の参照で、それぞれ4000, 5000, 6000, 7000番地にページインされるものとする。)

4000
5000
6000
7000

「ページ置換え」「LRU」「ページイン」…こうした用語に圧倒されてしまうかもしれませんが、「小さな机と大きな本棚」の例え話で考えれば、何も難しくありません。

目次

そもそも「仮想記憶」とは? (机と本棚の例え)

この問題は、「コンピュータの小さな(でも高速な)机」「巨大な(でも低速な)本棚」を、どう効率よく使うか、という話です。

メモリ、HDD/SSD、CPUの関係
  • 主記憶 (メモリ): 高速だが容量が小さく高価な「机」
  • 補助記憶 (HDD/SSD): 低速だが大容量で安価な「本棚」
  • プログラム (CPU): 「あなた」。あなたは机の上にある資料(ページ)しか作業できません

プログラム(あなた)が1000ページの資料(=巨大なプログラム)を使って作業をしたいとします。
しかし、あなたの机(主記憶)には、たった4ページ分の資料しか置けません(これが問題文の「4ページ分」です)。

【問題発生】
机が4ページでいっぱいの時に、本棚(補助記憶)にある5ページ目の資料が必要になったら、どうしますか?

【解決策】
机の上にある資料のうち、どれか1つを本棚に戻し、空いたスペースに新しい5ページ目の資料を持ってくるしかありません。

  • ページイン: 本棚から机に、新しい資料(ページ)を持ってくること。
  • ページ置換え: 机がいっぱいの時に、どれかを本棚に戻して場所を空けること。

ルールが必要だ!「LRU」という整理術

机がいっぱいの時、どの資料を本棚に戻せばよいでしょうか?適当に戻していると、次の瞬間に「あ!今戻した資料、やっぱり必要だった!」と、また本棚に取りに行く羽目になり、非常に非効率です。

そこで、「どの資料(ページ)を追い出すか」を決める賢いルールが必要になります。これがページ置換えアルゴリズムです。

問題文にあるLRU (Least Recently Used)は、そのルールの名前です。

LRU:“最近”、最も使われていない(Least Recently Used)資料(ページ)を本棚に戻す」というルール。

「最後に触ってから、一番時間が経っている資料」は、たぶんもう使わないだろう、という賢い予測に基づいたルールです。

【過去問解説】実際に机の上の資料を入れ替えてみよう

令和7年度 応用情報技術者試験 春期 午前 問9より

それでは、この「LRU」ルールを使って、問題の作業(ページ参照)をシミュレーションしてみましょう。

情報を整理
  • 机のスペース (ページ枠): 4つ(4000番地, 5000番地, 6000番地, 7000番地)
  • ルール: LRU (一番最近使っていないものを追い出す)
  • 作業の順番 (参照順): 1 → 2 → 3 → 4 → 2 → 5 → 3 → 1 → 6 → 5 → 4

机(主記憶)の様子を、順番に見ていきましょう。
「LRU」とは「最も古い(使っていない)」もの、「MRU」とは「最も新しい(使った)」ものです。

参照4000番地5000番地6000番地7000番地備考 (LRU ← 古い … 新しい → MRU)
11(空)(空)(空)ページイン。 [ 1 ]
212(空)(空)ページイン。 [ 1, 2 ]
3123(空)ページイン。 [ 1, 2, 3 ]
41234ページイン。机がいっぱい。 [ 1, 2, 3, 4 ]
21234ヒット! (机の上にあった)。「2」が最新になる。[ 1, 3, 4, 2 ]
55234置換え! (5が無い) LRUは「1」。1を追い出し、4000番地に5を入れる。[ 3, 4, 2, 5 ]
35234ヒット! 「3」が最新になる。[ 4, 2, 5, 3 ]
15231置換え! (1が無い) LRUは「4」。4を追い出し、7000番地に1を入れる。[ 2, 5, 3, 1 ]
65631置換え! (6が無い) LRUは「2」。2を追い出し、5000番地に6を入れる。[ 5, 3, 1, 6 ]
55631ヒット! 「5」が最新になる。[ 3, 1, 6, 5 ]
45641置換え! (4が無い) LRUは「3」。3を追い出し、6000番地に4を入れる。[ 1, 6, 5, 4 ]

結論

「最後の参照ページ4」は、LRUルールに基づき、その時点で最も使われていなかった「ページ3」が置かれていた「6000番地」にページインされます。

したがって、正解は ウ (6000) です。


まとめ

今回は応用情報技術者試験の問題をもとに、LRUについて解説してきました。

  • LRUとは、「一番最後に使ってから時間が経っているもの」を追い出す、賢い「ページ置換え」のルールです。
  • 解くコツは、参照するたびに「どのページが一番古いか」の順番を更新しながら、表を埋めていくことです。

このように、一見複雑な問題も、身近な例に置き換えてシミュレーションすれば必ず解けます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次