はじめに
今回は令和3年1月問19の回答、解説です。令和3年1月問19は仮想アドレス空間を固定長の領域に区切って管理するページング方式についての問題です。
問題を解くためのキーワード
- ページング方式
- ページフォールト
- ページイン
- ページアウト
問題のカテゴリ
今回の問題カテゴリは以下の通りです。
分野 | 大分類 | 中分類 |
テクノロジ系 | コンピュータシステム | ソフトウェア |
問題
ページング方式の仮想記憶において,主記憶に存在しないページをアクセスした場合の処理や状態の順番として,適切なものはどれか。ここで,主記憶には現在,空きのページ枠はないものとする。
- ア:置換え対象ページの決定→ページイン→ページフォールト→ページアウト
- イ:置換え対象ページの決定→ページフォールト→ページアウト→ページイン
- ウ:ページフォールト→置換え対象ページの決定→ページアウト→ページイン
- エ:ページフォールト→置換え対象ページの決定→ページイン→ページアウト
解説
本文で問われている仮想記憶について、仮想記憶を実装する方式には、仮想アドレス空間を固定長の領域を割り当て、管理するページング方式と、可変長の領域を割り当て管理するセグメント方式があります。本文では「ページング方式の仮想記憶について」とあるようにページング方式に絞って解説をしていきます。
ページング方式
まず、知っておきたい前提知識として、現在のOSではプログラムの中でも実行に必要なページのみ、主記憶に移すというデマンドページングという手法を使います。その過程において、プログラムのページを一旦仮想記憶に移したのち、ページを精査し、必要なページを主記憶に移します。イメージは以下の図の通りです。
これらを前提に単語の解説をしていきます。
ページフォールト
ページフォールトは仮想記憶にページアクセスをおこなった時に、主記憶に該当ページがなかった場合に発生する割込みです。図1の”②主記憶にページ1があるか確認”した結果、ない場合です。
ページイン
ページフォールトがあったときに補助記憶から主記憶へとページを読み込むことをページインと言います。図1の”③主記憶にページ1がなかったためページ1を読み込み”するプロセスを指します。
ページアウト
補助記憶から主記憶へページインした時に主記憶に空きがなかった場合、主記憶に空きをつくならければいけません。空きを作るために主記憶から補助記憶装置へページを戻すことをページアウトと言います。
これまでの知識で問題を解いてみましょう。再度、問題と選択肢見ると、
ページング方式の仮想記憶において,主記憶に存在しないページをアクセスした場合の処理や状態の順番として,適切なものはどれか。ここで,主記憶には現在,空きのページ枠はないものとする。
- ア:置換え対象ページの決定→ページイン→ページフォールト→ページアウト
- イ:置換え対象ページの決定→ページフォールト→ページアウト→ページイン
- ウ:ページフォールト→置換え対象ページの決定→ページアウト→ページイン
- エ:ページフォールト→置換え対象ページの決定→ページイン→ページアウト
問題に”主記憶に存在しないページをアクセスした場合の”とあるので、必ずはじめにページフォールトが発生します。また、回答選択肢の中に”置き換え対象ページの決定”とあるので、主記憶に空きがないことがわかります。この時点でページアウトが発生するのは必須です。最後にページインするため、本問の回答は
- ウ:ページフォールト→置換え対象ページの決定→ページアウト→ページイン
となります。
おわりに
今回は令和3年1月問19の回答、解説をしました。