OSとハードウェア

ページサイズが4 KBのとき、仮想アドレスのうちページ内の位置(オフセット)を表すのは何ビットか。

  1. A4ビット
  2. B12ビット
  3. C22ビット
答えと解説を見る

正解:B. 12ビット

4 KB = 4096バイト = 2¹²バイトなので、ページ内の各バイトを区別するには12ビットが必要です。仮想アドレスの下位12ビットはページ内の位置としてそのまま物理アドレスに使われ、残りの上位ビットがページ番号としてページテーブルやTLBで変換されます。4ビットは「4 KB」の4に引きずられた誤り、22ビットは4 MBのページの場合の値です。下位12ビットが変換されないことは、キャッシュの設計にも利用されています。

  • A. 4ビットでは16バイトしか区別できません。
  • B. 正しい。4096 = 2¹² なので12ビットです。
  • C. 22ビットは4 MBのページの場合の値です。
この分野を解く 分野ページへ

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

  1. ページサイズが4 KBのとき、32ビットの仮想アドレス0x00403ABCのページ番号とページ内のオフセットの組み合わせとして正しいものはどれか。
  2. RISC-Vの特権アーキテクチャで定められている主な動作モードの組み合わせとして正しいものはどれか。
  3. 割り込みや例外の処理を終えて元のプログラムに戻るとき、通常の関数の戻り命令ではなく、専用の復帰命令(RISC-Vのsret・mretなど)を使う理由はどれか。
  4. リアルタイム性が求められるシステムで、割り込みが発生してからハンドラが動き出すまでの時間(割り込み遅延)を大きくしてしまう要因として最も適切なものはどれか。
  5. NMI(マスク不可能割り込み)の説明として正しいものはどれか。