ページングのアドレス変換
ページサイズが 4,096 バイトのページング方式の仮想記憶において,ページテーブルの内容が次のとおりであるとき,仮想アドレス 2A3C(16 進数)に対応する物理アドレス(16 進数)はどれか。ここで,ページ番号とページフレーム番号は 0 から始まる。 ページ番号 0 → ページフレーム番号 5 ページ番号 1 → ページフレーム番号 2 ページ番号 2 → ページフレーム番号 7 ページ番号 3 → ページフレーム番号 1
- ア1A3C
- イ2A3C
- ウ7A3C
- エ9A3C
正解と解説を見る
正解 ウ
この問題の基礎知識
- ページング方式では,仮想アドレスを上位のページ番号と下位のページ内オフセットに分け,ページテーブルでページ番号をページフレーム番号に置き換え,オフセットはそのまま使う。
- ページサイズが 2 の n 乗バイトのとき,アドレスの下位 n ビットがページ内オフセットになる。16 進数の 1 桁は 4 ビットに当たる。
- 物理アドレスは,ページフレーム番号とページサイズの積にページ内オフセットを加えた値である。
1A3C は,ページ番号 2 をページフレーム番号とみなし,ページフレーム番号 2 に対応するページ番号 1 を用いた場合の値である。ページテーブルは,ページ番号からページフレーム番号を求める表である。
2A3C は,仮想アドレスをそのまま物理アドレスとした場合の値であり,ページテーブルによる変換をしていない。仮想アドレスの上位にあるページ番号は,ページフレーム番号に置き換える必要がある。
4,096 = 2^12 なので,下位 12 ビット(16 進数の下位 3 桁)の A3C がページ内オフセット,その上位の 2 がページ番号である。ページ番号 2 はページフレーム番号 7 に対応するので,物理アドレスは 7 × 1000 + A3C = 7A3C(16 進数)となる。
9A3C は,ページ番号 2 とページフレーム番号 7 を加算した場合の値である。ページフレーム番号はページ番号に加算するのではなく,ページ番号と置き換えて用いる。
照合の根拠(1 件)
- ウ(正解): ページング方式の動的アドレス変換(ページ番号からページフレーム番号への変換)は AP の出題範囲
実記憶と仮想記憶の関係,仮想記憶の有効性,仮想記憶方式の種類と特徴,動的アドレス変換の仕組みを理解する。
IPA 応用情報技術者試験シラバス Ver.7.2 · 大分類 2 中分類 4 ソフトウェア ② 仮想記憶管理(新しいタブで開きます)
検算: 4,096 = 2^12 なので仮想アドレス 2A3C(16 進)の下位 12 ビット A3C がページ内オフセット,上位 2 がページ番号。ページテーブルでページ番号 2 → フレーム番号 7。物理アドレス = 7 × 1000(16) + A3C = 7A3C(16)(10 進で 7×4096+2620 = 31292 = 0x7A3C)。ア 1A3C はフレーム 2 に対応するページ番号 1 を使った値,イは無変換,エ 9A3C は 2+7 を加算した値で,いずれも誤り。変換の仕組みは一般的なページングの定義(オフセットは保持しページ番号をフレーム番号に置き換える)で,シラバスは出題範囲の確認に使った。 変換の仕組みそのものを記した読める一次資料は取得できず,シラバス(出題範囲)と検算のみのため partial とした。