エンベデッドシステムスペシャリスト 2015年 午前2 問08
問題文
ページング方式の仮想記憶において、ページ置換えアルゴリズムにLRU方式を採用した場合、ページの参照順序が1、2、3、2、3、1、4、2、4、3、1であるプログラムを実行するとき、ページの読込みは何回発生するか。ここで、主記憶のページ枠は3で、初期状態では主記憶にどのページも存在しないものとする。
選択肢
ア:4
イ:5
ウ:6
エ:7(正解)
🔒 解説は解答すると表示されます
ページ置換えのLRU方式【午前2解説】
正解の理由
LRU方式は、主記憶のページ枠に空きがない状態で新しいページを読み込むとき、最も長い間参照されていないページを置き換える方式です。
参照順序を追うと、ページの読込みが必要になるのは、ページが主記憶に存在しないときです。今回、読込みは合計7回発生します。したがって、該当するのはエです。
解法ステップ
ページ枠は3個です。表の「主記憶内」は、各参照後に主記憶にあるページを示しています。
- 最初に参照するページ1、2、3は、主記憶に存在しないため、それぞれ読込みます。
- その後の2、3、1は主記憶にあるため、読込みは発生しません。
- ページ4を参照すると、ページ枠が満杯です。ページ1、2、3のうち、最後に参照された時点が最も古いページ2を置き換えます。
- 次のページ2、ページ3、ページ1も順に主記憶にないため、それぞれ読込みます。
- 読込みが発生した回数を数えると、合計7回です。
選択肢別の誤答解説
-
ア:4
ページ枠が満杯になった後の置換えを正しく数えられていない可能性があります。ページ4以降も、主記憶に存在しないページを参照するたびに読込みが発生します。 -
イ:5
置き換えたページが後で再び参照されると、そのページをもう一度読み込む必要があります。ページ2、3、1の再読込みをすべて数える必要があります。 -
ウ:6
置換え時にLRUの対象ページを誤ると、後続の参照で主記憶にないページを見落とすことがあります。各参照のたびに、最も古く参照されたページを確認します。 -
エ:7
読込みが発生する参照は、ページ1、2、3、4、2、3、1です。合計7回となるため、正しい選択肢です。
よくある誤解
-
ページ枠から追い出されたページは、再参照されても読込み不要だと思う
追い出されたページは主記憶に存在しないため、再び参照されたときには読込みが発生します。 -
LRUを、最も長く主記憶に置かれているページを追い出す方式だと考える
判断基準は主記憶に入った時刻ではなく、最後に参照された時刻です。 -
主記憶にあるページへの参照も読込みとして数える
主記憶に存在するページへの参照はヒットであり、ページの読込みは発生しません。
補足コラム
LRUは「Least Recently Used」の略で、「最も最近使われていない」ページを置き換えます。参照のたびに各ページの最終参照時刻を更新し、枠が満杯のときに最終参照時刻が最も古いページを選びます。
この問題では、ページが主記憶に存在しない参照の回数を数えれば、ページの読込み回数を求められます。
FAQ
Q. ページの読込みとページフォールトは同じですか?
A. 主記憶に存在しないページを参照するとページフォールトが発生し、そのページを主記憶へ読み込む必要があります。この問題では、その読込み回数を数えています。
A. 主記憶に存在しないページを参照するとページフォールトが発生し、そのページを主記憶へ読み込む必要があります。この問題では、その読込み回数を数えています。
Q. LRUでは、参照されたページをどう扱いますか?
A. そのページを「最近参照された」と記録します。次に置換えが必要になったとき、最後に参照された時点が最も古いページを選びます。
A. そのページを「最近参照された」と記録します。次に置換えが必要になったとき、最後に参照された時点が最も古いページを選びます。
関連キーワード: ページング、仮想記憶、ページ置換え、LRU、ページフォールト、主記憶、ページ枠

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

