仮想記憶とページングの試験問題への適用

仮想記憶の計算問題では、ページサイズの2の累乗、ページ番号と変位、ページ表のフレーム番号を順に使う。TLB・ページフォールト・ページ置換は原因と結果を分ける。

この単元で学ぶこと

  • ページ番号算出の意味と役割を説明できる
  • ページ内変位算出の意味と役割を説明できる
  • 物理アドレス算出の意味と役割を説明できる
  • ページ表を使った仮想→物理アドレス変換を数値で追跡できる

本文解説

アドレス変換は「仮想アドレス÷ページサイズ」で商=ページ番号、余り=ページ内変位としても考えられる。ページ表から得たフレーム番号×ページサイズ+変位で物理アドレスを計算できる。

ページ番号算出 仮想アドレスをページサイズで割った商が仮想ページ番号になる。 2の累乗ならビット分割でも求められる。

ページ内変位算出 仮想アドレスをページサイズで割った余りがページ内変位。 変換前後で同じ変位を使う。

物理アドレス算出 物理フレーム番号×ページサイズ+ページ内変位で求める。 ページ表がフレーム番号を与える。

TLBミス 変換結果がTLBにない状態で、ページ表参照が必要になる。 ページが主記憶にあればページフォールトではない。

ページ置換 空きフレームがないとき、どの常駐ページを追い出すか選ぶ処理。 LRUなどの方式が知られる。

16進アドレスと4KiBページの組合せでは下位3桁の16進数=12ビットが変位になる。TLBミス→ページ表参照→有効なら変換継続、無効・非常駐ならページフォールトという順で判断する。

4KiBページで仮想アドレス0x5234はページ5、変位0x234。ページ表がページ5→フレーム9なら物理アドレスは0x9234。

図解

ページング計算の手順
仮想アドレスをページ番号/変位へ分け、ページ表でフレーム番号へ置換して再結合する。

重要ポイント

  • ページ番号算出: 仮想アドレスをページサイズで割った商が仮想ページ番号になる。
  • ページ内変位算出: 仮想アドレスをページサイズで割った余りがページ内変位。
  • 物理アドレス算出: 物理フレーム番号×ページサイズ+ページ内変位で求める。
  • TLBミス: 変換結果がTLBにない状態で、ページ表参照が必要になる。
  • 商=ページ番号、余り=変位。物理側ではフレーム番号だけを置き換える。

間違えやすい点

  • TLBミスとページフォールトを同義にしない。
  • フレーム番号をページ番号へ足し算するのでなく置換する。
  • ページサイズが4KiBなら下位12ビットを変位として扱う。

用語解説

ページ番号算出
仮想アドレスをページサイズで割った商が仮想ページ番号になる。
ページ内変位算出
仮想アドレスをページサイズで割った余りがページ内変位。
物理アドレス算出
物理フレーム番号×ページサイズ+ページ内変位で求める。
TLBミス
変換結果がTLBにない状態で、ページ表参照が必要になる。
ページ置換
空きフレームがないとき、どの常駐ページを追い出すか選ぶ処理。

関連教材

参考資料

教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。

確認問題の出題・採点や学習履歴の保存にはログインが必要です。