仮想アドレス、物理アドレスともに16ビット幅のコンピュータがある。どの仮想ページも同じページサイズであり、1つの仮想アドレス空間が64個の仮想ページを持つ。このコンピュータでは2段階のページテーブルを用いており、ページテーブルの設定が下図のようになっているとき、仮想アドレス
0xbad3 が変換される物理アドレスとして正しいものを@〜Dの中から選べ。なお、ページテーブルには物理ページ番号のみを10進数で記載してある。空欄のエントリは対応する物理ページが存在していないことを表す。また、0xで始まる表記は16進数を示す。
@ 0x46d3 A 0x56d3 B 0xba46 C 0xba56
D 対応する物理ページは存在しない
@
仮想ページが64個 (8個×8個) ということは、3ビット×3ビットでページ番号を表現できる。
つまり、上位6ビットでページ番号を表し、16ビット − 6ビット = 10ビットで相対位置 (オフセット) を表す。
これを踏まえて、
仮想アドレス 0xbad3 は2進数で表すと
1011 1010 1101 0011 である。
最初の3ビット 101 は、10進数で5。
次の3ビットは 110 は、10進数で6。
であるから、そのエントリー値は図より17と判る。
17は2進数では 010001。
従って、物理アドレスは
0100 0110 1101 0011 = 0x46d3 である。
W−10 | 目次 | W−12 |