OSとハードウェア
ページテーブルを1段ではなく多段(階層型)にする主な理由はどれか。
- A使わない範囲の表を省けて、ページテーブルのメモリを節約できるから
- Bアドレス変換のたびに読む表の数が減り、TLBミスの処理が速くなるから
- C物理メモリの容量を、仮想アドレス空間より大きくできるから
答えと解説を見る
正解:A. 使わない範囲の表を省けて、ページテーブルのメモリを節約できるから
1段のページテーブルでは、使うかどうかに関係なく仮想アドレス空間のすべてのページ分の項目が必要で、64ビットの環境では表が巨大になります。多段にすると、使っている範囲の下位の表だけを作り、使っていない範囲は上位の表の項目を無効にしておけるので、プログラムが使う量に応じたメモリで済みます。その代わり、TLBミスのときにたどる表の数は段数だけ増えて遅くなります。物理メモリの大きさとは関係ありません。
- A. 正しい。使わない範囲の表を省けるので、メモリを節約できます。
- B. たどる表の数はむしろ段数だけ増えます。
- C. 物理メモリの容量とは関係ありません。