応用情報技術者 2016年 秋期 午前2 問18
問題文
プログラムで使用可能な実メモリ枠が3ページである仮想記憶システムにおいて、大きさ6 ページのプログラムが実行されたとき、ページフォールトは何回発生するか。ここで、プログラム実行時のページ読込み順序は、0, 1,2,3,4,0,2,4,3,1,4,5とする。ページング方式は、LRU (Least Recently Used)とし、初期状態では、実メモリにはいずれのページも読み込まれていないものとする。
選択肢
ア:9
イ:10(正解)
ウ:11
エ:12
ページフォールト回数の計算問題【午前2 解説】
要点まとめ
- 結論:LRU方式で3ページの実メモリに6ページのプログラムを実行するとページフォールトは10回発生します。
- 根拠:初期は空のメモリに順次ページを読み込み、3ページ超過時は最も長く使われていないページを置換するためです。
- 差がつくポイント:ページ参照の順序を正確に追い、LRUの置換ルールを厳密に適用できるかが鍵です。
正解の理由
選択肢イ(10回)が正解です。
初期状態は空のため、最初の3ページ(0,1,2)はすべてページフォールト。以降の参照でLRU置換を適用し、ページフォールトの発生回数を正確に数えると合計10回となります。
初期状態は空のため、最初の3ページ(0,1,2)はすべてページフォールト。以降の参照でLRU置換を適用し、ページフォールトの発生回数を正確に数えると合計10回となります。
よくある誤解
ページフォールトの数を単純にページ数や参照回数で判断しがちですが、LRUの置換ルールを正確に追わないと誤答します。
解法ステップ
- 実メモリの空き状態からページ参照を順に追う。
- 参照ページがメモリにあればページフォールトなし、なければページフォールト発生。
- 空きがあれば新規ページを読み込む。
- 空きがなければLRUルールに従い、最も長く使われていないページを置換。
- すべての参照を処理し、ページフォールトの合計を数える。
選択肢別の誤答解説
- ア(9回):LRUの置換タイミングを誤り、ページフォールトを1回少なく数えています。
- イ(10回):正解。LRUのルールを正確に適用し、ページフォールトを正しくカウント。
- ウ(11回):ページ置換の判断を誤り、余計にページフォールトを数えています。
- エ(12回):ページフォールトの数を過大評価し、置換のタイミングを誤解しています。
補足コラム
LRU(Least Recently Used)は、最も長い間使われていないページを置換する方式で、実際のOSでもよく使われます。ページフォールトの計算問題は、ページ置換アルゴリズムの理解度を測る良問です。
FAQ
Q: LRU方式でページ置換を行う際、どの情報を管理すればよいですか?
A: 各ページの最終参照時刻や参照順序を管理し、最も古い参照のページを特定します。
A: 各ページの最終参照時刻や参照順序を管理し、最も古い参照のページを特定します。
Q: ページフォールトが多いとシステムにどんな影響がありますか?
A: ページフォールトが多いとディスクアクセスが増え、処理速度が大幅に低下します。
A: ページフォールトが多いとディスクアクセスが増え、処理速度が大幅に低下します。
関連キーワード: 仮想記憶、ページフォールト、LRU, ページ置換、メモリ管理

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

