エンベデッドシステムスペシャリスト 2020年 午前2 問08
問題文
ページング方式の仮想記憶において、あるプロセスが仮想アドレス空間全体に対応したページテーブルをもつ場合、ページテーブルに必要な領域の大きさをバイトで表すとすると、を表す式はどれか。ここで、仮想アドレス空間の大きさはバイト、ページサイズはバイト、ページテーブルの各エントリの大きさはバイトとし、その他の情報については考慮しないものとする。
選択肢
ア:
イ:
ウ:(正解)
エ:
🔒 解説は解答すると表示されます
ページテーブルの必要容量【午前2解説】
正解の理由
仮想アドレス空間全体をページに分割し、各ページに対応するページテーブルエントリを1つ用意します。
- 仮想アドレス空間の大きさ:バイト
- ページサイズ:バイト
- ページテーブルのエントリ数:
- 1エントリの大きさ:バイト
したがって、ページテーブル全体の大きさは、
となります。よって、を表すウが正解です。
解法ステップ
-
ページテーブルのエントリ数を求めます。
仮想アドレス空間の大きさをページサイズで割ります。 -
エントリ数に1エントリの大きさを掛けます。
-
指数部分をと比べます。
となるため、選択肢はウです。
選択肢別の誤答解説
-
ア:
ページ数を求めるとき、仮想アドレス空間の大きさをページサイズで割る必要があります。指数は足し算ではなく、です。 -
イ:
ページ数の指数をとしている点が誤りです。また、エントリの大きさはエントリ数に掛けるため、指数にを加えます。 -
ウ:
ページ数の指数が、エントリ1個の大きさの指数がです。両者を掛け合わせた全体の容量はバイトとなります。 -
エ:
ページ数の指数は正しいですが、エントリの大きさを掛けるのに指数からを引いている点が誤りです。掛け算では指数を加えます。
よくある誤解
-
ページ数をと考える
ページ数は「仮想アドレス空間÷ページサイズ」です。2のべき乗同士の割り算なので、指数は引き算になります。 -
エントリの大きさを掛けると指数を引くと考える
です。指数を引くのは、2のべき乗同士を割る場合です。 -
ページサイズの指数が、そのままエントリ数になると考える
はページサイズを表す指数です。エントリ数は、仮想アドレス空間全体をページサイズで割って求めます。
補足コラム
ページサイズが大きくなると、仮想アドレス空間を分割するページ数は少なくなり、ページテーブルのエントリ数も減ります。そのため、他の条件が同じであればページテーブルの必要容量も小さくなります。
この問題では、ページテーブルが仮想アドレス空間全体に対応するものとして、ページ数分のエントリが必要だと考えます。実際のシステムでは、ページテーブルの階層化などによって、必要なメモリ量を抑える場合があります。
FAQ
ページサイズが大きくなると、ページテーブルの容量はどうなりますか?
仮想アドレス空間のページ数が減るため、ページテーブルの容量は小さくなります。式でも、ページサイズの指数が大きくなると、が小さくなります。
仮想アドレス空間のページ数が減るため、ページテーブルの容量は小さくなります。式でも、ページサイズの指数が大きくなると、が小さくなります。
ページテーブルの容量は、ページ数だけで決まりますか?
いいえ。ページ数に加えて、各エントリの大きさも必要です。ページ数に1エントリあたりのバイト数を掛けて求めます。
いいえ。ページ数に加えて、各エントリの大きさも必要です。ページ数に1エントリあたりのバイト数を掛けて求めます。
関連キーワード: ページング方式、仮想記憶、ページテーブル、仮想アドレス空間、ページサイズ

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

