コンピュータ

デマンドページングとは

デマンドページング

デマンドページングとはメモリ管理方式の一種で、CPUからの要求があったページだけを主記憶装置に読み込む方式のことです。

デマンド(英:demand)とは「要求する」という意味であり、要求があったタイミングで必要なページだけを主記憶装置に読み込みます。

デマンドページングの流れ

それでは図を利用してデマンドページングの流れを説明していきます。

例えば、次の図のようにプログラムAを「ページ1」~「ページ4」に分割して仮想記憶に割り当てたとします。このように「ページ」単位で管理する方式を「ページング方式」といいます。

仮想記憶とページング方式の詳細はこちら

このとき、主記憶装置にはまだページを読み込みません。

主記憶装置にはまだロードしない

そのため、CPUからの要求でページにアクセスしようとしても、主記憶装置上にはページがないため「ページフォールト」が発生します。

ページフォールトとは、必要なページが主記憶装置上にないときに発生する割り込みのことです。

ページフォールトのイメージ例

そして、ページフォールトが発生したら、補助記憶装置から主記憶装置に必要なページを読み込みます。

補助記憶装置から主記憶装置にページを読み込む操作を「ページイン」といいます。

ページインのイメージ例

このようにデマンドページングでは、CPUからの要求でページが必要になったときに、補助記憶装置から主記憶装置に必要なページだけを読み込みます。

デマンドページングは、実際に使用するページだけが主記憶装置上に展開されるため無駄の少ない方式だが、初回は必ず「ページフォールト」が発生するため、その分 遅延が発生します。

そこで、近い将来参照されると予測したページを事前に読み込んでおく「プリページング」という方式を使用して性能向上を図ることもあります。