OSとハードウェア

ページテーブルを1段ではなく多段(階層型)にする主な理由はどれか。

  1. A使わない範囲の表を省けて、ページテーブルのメモリを節約できるから
  2. Bアドレス変換のたびに読む表の数が減り、TLBミスの処理が速くなるから
  3. C物理メモリの容量を、仮想アドレス空間より大きくできるから
答えと解説を見る

正解:A. 使わない範囲の表を省けて、ページテーブルのメモリを節約できるから

1段のページテーブルでは、使うかどうかに関係なく仮想アドレス空間のすべてのページ分の項目が必要で、64ビットの環境では表が巨大になります。多段にすると、使っている範囲の下位の表だけを作り、使っていない範囲は上位の表の項目を無効にしておけるので、プログラムが使う量に応じたメモリで済みます。その代わり、TLBミスのときにたどる表の数は段数だけ増えて遅くなります。物理メモリの大きさとは関係ありません。

  • A. 正しい。使わない範囲の表を省けるので、メモリを節約できます。
  • B. たどる表の数はむしろ段数だけ増えます。
  • C. 物理メモリの容量とは関係ありません。
この分野を解く 分野ページへ

OSとハードウェアのほかの問題

  1. 仮想アドレスが32ビット、ページサイズが4 KB、ページテーブルの1項目が4バイトのとき、1段のページテーブルの大きさはいくらか。
  2. 仮想アドレスのうち48ビットを使い、ページサイズ4 KB、各段の表が512項目(9ビット)の多段ページテーブルでは、何段の表をたどる必要があるか。
  3. ページテーブルの各項目にふつう含まれる情報の組み合わせとして正しいものはどれか。
  4. プロセスを複製するときにコピーオンライトを使う利点として正しいものはどれか。
  5. デマンドページングの説明として正しいものはどれか。