平成23年度 秋期 午前 問21
ソフトウェア
仮想記憶の説明
デマンドページング方式による仮想記憶の説明として,適切なものはどれか。
- アあるページのアクセス時に,連続する後続のページも主記憶に読み込む。
- イプログラムで次に必要な手続を指定して,当該ページを主記憶に読み込む。
- ウプログラムと同時に,処理対象のデータ部分も主記憶に読み込む。
- エページフォールトが発生したときに,当該ページを主記憶に読み込む。
答えと解説を見る
✓ これが正解エページフォールトが発生したときに,当該ページを主記憶に読み込む。
解説
要求されて初めて、そのページを読み込みます。
仮想記憶は、主記憶より広い見かけの記憶空間を用意しておき、実際に使う部分だけを主記憶へ置く仕組みです。どの部分をいつ主記憶へ移すかについては、大きく二つの考え方があります。使われそうだと見込んで前もって運んでおくやり方と、実際に求められてから運ぶやり方です。デマンドページングという呼び名のデマンドは要求という意味ですから、この方式は後者、つまり求められてから動く側を指しています。では、その要求はどのような形で届くのでしょうか。プログラムがある番地に触れたとき、そこを含む部分が主記憶に見当たらなければ、装置が割込みを上げます。これがページフォールトです。割込みを受けた OS が、補助記憶から当該の部分を主記憶へ読み込み、中断していた命令を再開させます。読み込むのは求められた部分だけで、空き枠が尽きていれば、どれかを追い出してから入れます。ですから見分けの軸は一本に絞れます。読み込みのきっかけが、先回りの見込みなのか、それとも実際に起きた不足なのかという点です。前もって運ぶ側は見込みが当たれば待ち時間を減らせますが、外れると主記憶を無駄に使います。求められてから運ぶ側は無駄がない代わりに、そのつど待たされます。
ほかの選択肢はなぜ違うのか
- アあるページのアクセス時に,連続する後続の…:触れられた部分に続く分までまとめて運んでおくという記述です。まだ求められていないものを見込みで先に運ぶ形なので、要求を待ってから動くという考え方とは逆を向いています。
- イプログラムで次に必要な手続を指定して,当…:次に使う手続をプログラムの側が前もって指定するという記述です。実際には OS が割込みを受けて動くので、運ぶ相手をプログラムが名指しする造りにはなっていません。
- ウプログラムと同時に,処理対象のデータ部分…:プログラムと一緒に、処理の対象になるデータまで同時に運び入れるという記述です。使うかどうかがまだ分からない段階で運ぶ点は先回りにあたり、不足が起きてから動く形とは別物です。
出典:平成23年度 秋期 応用情報技術者試験 午前 問21
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)