ページサイズ4 KiBの仮想記憶を使い、アドレスはバイト単位で表す。1 KiB = 1,024バイトとする。仮想アドレスのページ番号3は物理フレーム番号9へ対応している。仮想アドレス0x3456に対応する物理アドレスはどれか。0xは16進数を表し、各ページとフレームは0x1000の倍数の位置から始まる。
本サイトで独自に作成。IPAの試験問題からの転載ではありません。
公開日:
選択肢を選んで、答え合わせをしましょう。
回答せずに正解・解説を確認する
正解:ア 0x9456
この表示だけでは、回答数や正答率は変わりません。
解説
4 KiBは4,096バイトで0x1000です。0x3456はページ番号3と、そのページ内の変位0x456に分けられます。ページ番号3をフレーム番号9へ置き換え、変位は保つので、物理アドレスは0x9000 + 0x456 = 0x9456です。
フレームの開始位置0x9000に、元と同じページ内変位0x456を足した値です。
仮想アドレス全体の前に9を付ける方式ではありません。ページ番号3は置き換えます。
アドレスの末尾をフレーム番号で置き換えており、保存すべき変位を壊しています。
これは物理フレームの先頭です。ページ内変位0x456を加える必要があります。
関連知識
ページサイズが2の12乗バイトなので、下位12ビットがページ内変位です。同じページ内の近いアドレスは同じフレームへ対応しますが、隣の仮想ページが隣の物理フレームに置かれるとは限りません。
間違えやすいポイント
ページ番号とページ内変位を両方変換しないこと。ページ表で対応付けるのはページ番号で、ページ内の位置はそのままです。
覚え方
上位を対応付け、下位の変位は残す。
実務での意味
メモリ管理の図を読むとき、アドレス全体、ページ番号、ページ内変位を分けて記し、変換後の位置を検算します。
解説:本サイト編集部によるオリジナル文章