【基本情報技術者試験】令和3年1月 問19

はじめに

今回は令和3年1月問19の回答、解説です。令和3年1月問19は仮想アドレス空間を固定長の領域に区切って管理するページング方式についての問題です。

問題を解くためのキーワード

  • ページング方式
  • ページフォールト
  • ページイン
  • ページアウト

問題のカテゴリ

今回の問題カテゴリは以下の通りです。

分野大分類中分類
テクノロジ系コンピュータシステムソフトウェア

問題

ページング方式の仮想記憶において,主記憶に存在しないページをアクセスした場合の処理や状態の順番として,適切なものはどれか。ここで,主記憶には現在,空きのページ枠はないものとする。

  • ア:置換え対象ページの決定→ページイン→ページフォールト→ページアウト
  • イ:置換え対象ページの決定→ページフォールト→ページアウト→ページイン
  • ウ:ページフォールト→置換え対象ページの決定→ページアウト→ページイン
  • エ:ページフォールト→置換え対象ページの決定→ページイン→ページアウト
正解を表示する
正解:ウ

解説

本文で問われている仮想記憶について、仮想記憶を実装する方式には、仮想アドレス空間を固定長の領域を割り当て、管理するページング方式と、可変長の領域を割り当て管理するセグメント方式があります。本文では「ページング方式の仮想記憶について」とあるようにページング方式に絞って解説をしていきます。

ページング方式

まず、知っておきたい前提知識として、現在のOSではプログラムの中でも実行に必要なページのみ、主記憶に移すというデマンドページングという手法を使います。その過程において、プログラムのページを一旦仮想記憶に移したのち、ページを精査し、必要なページを主記憶に移します。イメージは以下の図の通りです。

図1:ページング方式

これらを前提に単語の解説をしていきます。

ページフォールト

ページフォールトは仮想記憶にページアクセスをおこなった時に、主記憶に該当ページがなかった場合に発生する割込みです。図1の”②主記憶にページ1があるか確認”した結果、ない場合です。

図2:ページフォールト

ページイン

ページフォールトがあったときに補助記憶から主記憶へとページを読み込むことをページインと言います。図1の”③主記憶にページ1がなかったためページ1を読み込み”するプロセスを指します。

図3:ページイン

ページアウト

補助記憶から主記憶へページインした時に主記憶に空きがなかった場合、主記憶に空きをつくならければいけません。空きを作るために主記憶から補助記憶装置へページを戻すことをページアウトと言います。

図4:ページアウト

これまでの知識で問題を解いてみましょう。再度、問題と選択肢見ると、

ページング方式の仮想記憶において,主記憶に存在しないページをアクセスした場合の処理や状態の順番として,適切なものはどれか。ここで,主記憶には現在,空きのページ枠はないものとする。

  • ア:置換え対象ページの決定→ページイン→ページフォールト→ページアウト
  • イ:置換え対象ページの決定→ページフォールト→ページアウト→ページイン
  • ウ:ページフォールト→置換え対象ページの決定→ページアウト→ページイン
  • エ:ページフォールト→置換え対象ページの決定→ページイン→ページアウト

問題に”主記憶に存在しないページをアクセスした場合の”とあるので、必ずはじめにページフォールトが発生します。また、回答選択肢の中に”置き換え対象ページの決定”とあるので、主記憶に空きがないことがわかります。この時点でページアウトが発生するのは必須です。最後にページインするため、本問の回答は

  • ウ:ページフォールト→置換え対象ページの決定→ページアウト→ページイン

となります。

おわりに

今回は令和3年1月問19の回答、解説をしました。