pulpul 日本の試験

応用情報技術者 概念書 · 組込み・コンピュータシステム

仮想記憶とページング

仮想記憶は、実際の主記憶容量を超える大きさのプログラムやデータを扱えるようにする仕組みである。ページング方式では、仮想アドレス空間と主記憶を同じ大きさの固定長ページとページ枠に分けて管理し、必要なページだけを主記憶に置く。主記憶にないページを参照するとページフォールトが発生し、補助記憶から読み込む処理が行われる。

ページング方式の仕組みと長所

ページング方式では、ページを固定長で区切るため、主記憶に外部断片化が発生しない。セグメンテーション方式は論理単位の大きさが可変であり、主記憶の空き領域が細かく分断されやすいという弱点がある。 一方で、論理的な単位ごとのアクセス保護や、プログラム間での論理単位の共有はセグメンテーション方式が得意とする点であり、両者の長所を取り違えないことが大切である。

ページアウトされたページは補助記憶に格納される。仮想記憶における補助記憶の役割は、主記憶に収まらないページや主記憶から追い出されたページを保管することにある。 ページフォールトとページインは通常同数になり、ページアウトはページインより多くならない。置換えの対象が変更済みである場合にだけページアウトが発生するためである。

ページ置換えアルゴリズム

主記憶のページ枠が満杯のときは、どのページを追い出すかを選ぶ必要がある。LRU は最後に使用されてから最も長く経過したページを置換対象にする方式であり、直近の利用状況を重視する。 参照列を一つずつ追えば、どのページ枠のページがどの時点で入れ替わるかを機械的に決められる。

FIFO は、最初に主記憶へ読み込まれたページを先に追い出す方式である。参照列の中で既に枠にあるページを参照しても置換えは起きず、新たに読み込むページが入るときに最も古いページが追い出される。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む