仮想記憶とページング
仮想記憶は、実際の主記憶容量を超える大きさのプログラムやデータを扱えるようにする仕組みである。ページング方式では、仮想アドレス空間と主記憶を同じ大きさの固定長ページとページ枠に分けて管理し、必要なページだけを主記憶に置く。主記憶にないページを参照するとページフォールトが発生し、補助記憶から読み込む処理が行われる。
ページング方式の仕組みと長所
ページング方式では、ページを固定長で区切るため、主記憶に外部断片化が発生しない。セグメンテーション方式は論理単位の大きさが可変であり、主記憶の空き領域が細かく分断されやすいという弱点がある。 一方で、論理的な単位ごとのアクセス保護や、プログラム間での論理単位の共有はセグメンテーション方式が得意とする点であり、両者の長所を取り違えないことが大切である。
ページアウトされたページは補助記憶に格納される。仮想記憶における補助記憶の役割は、主記憶に収まらないページや主記憶から追い出されたページを保管することにある。 ページフォールトとページインは通常同数になり、ページアウトはページインより多くならない。置換えの対象が変更済みである場合にだけページアウトが発生するためである。
ページ置換えアルゴリズム
主記憶のページ枠が満杯のときは、どのページを追い出すかを選ぶ必要がある。LRU は最後に使用されてから最も長く経過したページを置換対象にする方式であり、直近の利用状況を重視する。 参照列を一つずつ追えば、どのページ枠のページがどの時点で入れ替わるかを機械的に決められる。
FIFO は、最初に主記憶へ読み込まれたページを先に追い出す方式である。参照列の中で既に枠にあるページを参照しても置換えは起きず、新たに読み込むページが入るときに最も古いページが追い出される。
この節の続き
- 性能低下とスラッシング
- ページサイズと断片化
- 試験で問われやすい区別
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む