令和7年度 秋期 午前Ⅱ 問7
オペレーティングシステム
ページテーブルに関する問題
ページング方式の仮想記憶において,あるプロセスが仮想アドレス空間全体に対応したページテーブルをもつ場合,ページテーブルに必要な領域の大きさを2^xバイトで表すとすると,xを表す式はどれか。ここで,仮想アドレス空間の大きさは2^Lバイト,ページサイズは2^Nバイト,ページテーブルの各エントリの大きさは2^Eバイトとし,その他の情報については考慮しないものとする。
- アL+N+E
- イL+N-E
- ウL-N+E
- エL-N-E
答えと解説を見る
✓ これが正解ウL-N+E
解説
ページ数2^(L-N)×エントリ2^Eなので、x=L-N+Eです。
ページテーブルは、仮想アドレス空間のページ1枚ごとに1エントリをもつ表です。まずページの数は、仮想アドレス空間の大きさをページサイズで割って2^L÷2^N=2^(L-N)枚です。各エントリが2^Eバイトなので、表全体の大きさは2^(L-N)×2^E=2^(L-N+E)バイトになり、x=L-N+Eです。例えば仮想アドレス空間が2^32バイト、ページが2^12バイト、エントリが2^2バイトなら、2^20エントリ×4バイト=2^22バイトで、32-12+2=22と一致します。割り算は指数の引き算、掛け算は指数の足し算に置き換えると式を選べます。
ほかの選択肢はなぜ違うのか
- アL+N+E:L+N+Eは、仮想アドレス空間の大きさをページサイズで割るところを掛けてしまった形です。ページの数ではなく、空間の大きさとページサイズの積にエントリの大きさを掛けた量になり、表の大きさを表しません。
- イL+N-E:L+N-Eは、ページサイズで割るべきところを掛け、エントリの大きさを掛けるべきところを割っています。二つの操作がどちらも逆向きになっており、ページテーブルの大きさを求める式になっていません。
- エL-N-E:L-N-Eは、ページの数2^(L-N)までは正しく求めていますが、そのあとエントリの大きさで割っています。表の大きさはエントリ数に1エントリの大きさを掛けて求めるので、Eは足すのが正しい向きです。
出典:令和7年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問7
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)