メインコンテンツへ
コンピュータ構成要素

ページングによる仮想記憶において、仮想アドレス空間が32ビット、ページサイズが4KB(2¹²バイト)のとき、仮想アドレス 0x00403A00 が含まれるページ番号として正しいものはどれか。

ア.0x403正解
イ.0x40
ウ.0xA00
エ.0x004

解説

仮想アドレスは「マンション番号+部屋番号」。ページサイズが4KB=2¹²なので、上位20ビットがページ番号、下位12ビットがオフセット!

なぜ ア が正解か

Step1: ページサイズ=4KB=2¹²バイト → オフセット部=下位12ビット。Step2: 仮想アドレス 0x00403A00 をページサイズで割る。0x00403A00 ÷ 0x1000 = 0x00403(整数部)。Step3: ページ番号=0x403。検算: 0x403 × 0x1000 = 0x403000、0x403000 + 0xA00 = 0x403A00 ✓。

なぜ イ は間違いか

0x40は上位8ビットだけを取り出した値。ページサイズ4KBでは上位20ビットがページ番号なので計算が不足している。

なぜ ウ は間違いか

0xA00は仮想アドレスの下位12ビット(オフセット部分)。ページ番号ではなくページ内の位置を示す。

なぜ エ は間違いか

0x004は仮想アドレスの最上位バイトで意味のある区切りではない。ページ番号の正しい計算はアドレス全体を右12ビットシフトして求める。

出典: AI生成問題(学習用)