デマンドページング
デマンドページングとはメモリ管理方式の一種で、CPUからの要求があったページだけを主記憶装置に読み込む方式のことです。
デマンド(英:demand)とは「要求する」という意味であり、要求があったタイミングで必要なページだけを主記憶装置に読み込みます。
デマンドページングの流れ
それでは図を利用してデマンドページングの流れを説明していきます。
例えば、次の図のようにプログラムAを「ページ1」~「ページ4」に分割して仮想記憶に割り当てたとします。このように「ページ」単位で管理する方式を「ページング方式」といいます。
仮想記憶とページング方式の詳細はこちら
このとき、主記憶装置にはまだページを読み込みません。
そのため、CPUからの要求でページにアクセスしようとしても、主記憶装置上にはページがないため「ページフォールト」が発生します。
ページフォールトとは、必要なページが主記憶装置上にないときに発生する割り込みのことです。
そして、ページフォールトが発生したら、補助記憶装置から主記憶装置に必要なページを読み込みます。
補助記憶装置から主記憶装置にページを読み込む操作を「ページイン」といいます。
このようにデマンドページングでは、CPUからの要求でページが必要になったときに、補助記憶装置から主記憶装置に必要なページだけを読み込みます。
デマンドページングは、実際に使用するページだけが主記憶装置上に展開されるため無駄の少ない方式だが、初回は必ず「ページフォールト」が発生するため、その分 遅延が発生します。
そこで、近い将来参照されると予測したページを事前に読み込んでおく「プリページング」という方式を使用して性能向上を図ることもあります。
helpful
この記事は役に立ちましたか?