エンベデッドシステムスペシャリスト 2025年 午前2 問07
問題文
ページング方式の仮想記憶において、あるプロセスが仮想アドレス空間全体に対応したページテーブルをもつ場合、ページテーブルに必要な領域の大きさをバイトで表すとすると、を表す式はどれか。ここで、仮想アドレス空間の大きさはバイト、ページサイズはバイト、ページテーブルの各エントリの大きさはバイトとし、その他の情報については考慮しないものとする。
選択肢
ア:
イ:
ウ:(正解)
エ:
🔒 解説は解答すると表示されます
ページテーブルの必要領域【午前2解説】
正解の理由
仮想アドレス空間の大きさは バイト、ページサイズは バイトです。したがって、仮想アドレス空間に含まれるページ数は次のとおりです。
ページテーブルには、ページごとに1個のエントリが必要です。各エントリの大きさが バイトなので、ページテーブル全体の大きさは次のようになります。
よって、 となる ウ が正解です。
解法ステップ
- 仮想アドレス空間の大きさをページサイズで割り、ページ数を求めます。
ページです。 - ページ数と、1エントリの大きさを掛けます。
バイトです。 - 指数法則 を使います。
必要な領域は バイトなので、指数は です。
選択肢別の誤答解説
-
ア:
ページ数を求めるときに、ページサイズの指数 を引かずに足しています。ページ数は「仮想アドレス空間の大きさ ÷ ページサイズ」なので、指数は です。 -
イ:
ページ数の計算で を足しているうえ、エントリの大きさ を掛ける際にも を引いています。掛け算では指数を足します。 -
ウ:
ページ数 に、各エントリの大きさ を掛けた結果と一致します。 -
エ:
ページ数の指数 は正しく求めていますが、エントリの大きさを掛ける際に を引いています。 を掛けるため、指数には を足します。
よくある誤解
- ページ数を求めるときに、ページサイズを掛けてしまうことがあります。ページ数は「全体の大きさを1ページの大きさで割る」ため、指数は です。
- ページテーブル全体の大きさを求めるとき、エントリ数だけで計算してしまうことがあります。各エントリのバイト数も掛ける必要があります。
- を掛けるときに指数を引くと思い込むことがあります。同じ底の累乗の掛け算では、指数を足します。
補足コラム
この計算では、仮想アドレス空間の全ページに対応するエントリをページテーブルに用意すると仮定しています。実際のシステムでは、階層型ページテーブルなどを用いて、使用していない領域に対応するページテーブルを作らず、必要な領域を抑える方式もあります。
FAQ
Q. ページ数が になるのはなぜですか?
A. 仮想アドレス空間の大きさ バイトを、1ページの大きさ バイトで割るためです。累乗の割り算では指数を引くので、 になります。
A. 仮想アドレス空間の大きさ バイトを、1ページの大きさ バイトで割るためです。累乗の割り算では指数を引くので、 になります。
Q. ページテーブルのエントリ数はページ数と同じですか?
A. この問題の前提では同じです。仮想ページごとに1個のエントリが必要です。
A. この問題の前提では同じです。仮想ページごとに1個のエントリが必要です。
関連キーワード: 仮想記憶、ページング、ページテーブル、ページサイズ、累乗の指数法則

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

