平成26年度 春期 午前Ⅱ 問8
オペレーティングシステム
ページテーブルに関する問題
ページング方式の仮想記憶において,あるプロセスが仮想アドレス空間全体に対応したページテーブルをもつ場合,ページテーブルに必要な領域の大きさを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エントリずつ用意されます。ページの数は、仮想アドレス空間の大きさをページサイズで割った2^L÷2^N=2^(L−N)個です。各エントリの大きさは2^Eバイトなので、ページテーブル全体の大きさは2^(L−N)×2^E=2^(L−N+E)バイトになり、x=L−N+Eです。指数の割り算は引き算、掛け算は足し算になることを使います。2のべき乗の問題は、個数を求めてから1個当たりの大きさを掛ける、という順で式を立てると取り違えにくくなります。
ほかの選択肢はなぜ違うのか
- アL+N+E:L+N+Eは、仮想アドレス空間の大きさにページサイズを掛けてしまった形です。ページの数は空間の大きさをページサイズで割って求めるので、N は足すのではなく引かなければなりません。
- イL+N−E:L+N−Eは、ページサイズを掛け、エントリの大きさで割った形です。正しくは空間の大きさをページサイズで割ってページ数を出し、そこにエントリの大きさを掛けるので、N と E の符号が両方とも逆です。
- エL−N−E:L−N−Eは、ページの数2^(L−N)は正しく求めていますが、エントリの大きさで割ってしまっています。テーブル全体の大きさは、エントリの数に1エントリの大きさを掛けて求めるので、E は足す必要があります。
出典:平成26年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問8
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)