マナビング基本情報技術者

ページング方式の説明はどれ?似た記憶管理の用語と見分ける

基本情報技術者試験 平成29年度春期 午前 問15 / ソフトウェア › オペレーティングシステム

過去問にチャレンジ

平成29年度春期 午前 問15

ページング方式の説明として,適切なものはどれか。

  1. ア

    仮想記憶空間と実記憶空間をそれぞれ固定長の領域に区切り,対応づけて管理する方式

  2. イ

    主記憶装置の異なった領域で実行できるように,プログラムを再配置する方式

  3. ウ

    主記憶装置を,同時に並行して読み書き可能な複数の領域に分ける方式

  4. エ

    補助記憶装置に,複数のレコードをまとめて読み書きする方式

会話形式の解説

講師講師
今回はページング方式の説明を選ぶ問題です。ページング方式は、仮想記憶を実現する方式の一つです。仮想記憶とは、主記憶より大きな記憶空間があるように見せる仕組みのことです。見分ける手がかりは「固定長に区切る」と「仮想側と実記憶側を対応づける」の二つです。
受験者受験者
どの選択肢も記憶装置の話なので、全部正しそうに見えて迷いました。仮想記憶空間と実記憶空間を固定長に区切って対応づける、という説明には手がかりが二つともそろっているように思います。
講師講師
そのとおりです。ページングでは、仮想記憶空間を固定長のページに分け、主記憶の側も同じ固定長の区画に分けます。そのうえで、仮想アドレスをページ単位で実アドレスに変換します。この対応関係は、ページ表(ページテーブル)という対応表で管理します。
受験者受験者
プログラムを主記憶の別の領域でも実行できるように配置し直す、という説明も仮想記憶と関係がありそうで気になりました。
講師講師
それは再配置の説明です。プログラムをどのアドレスに置くかという話で、記憶空間を固定長に区切って対応づけることには触れていません。二つの手がかりを満たしているかどうかで確かめると、ページングの説明ではないと分かります。
受験者受験者
主記憶を、同時に並行して読み書きできる複数の領域に分ける説明はどうでしょうか。「分ける」という言葉がページングに似ている気がします。
講師講師
言葉は似ていますが、それはメモリインタリーブです。複数の領域に並行してアクセスして、主記憶へのアクセスを速くするための方式で、仮想記憶の管理方式ではありません。分ける目的が違う、と押さえておくとよいです。
受験者受験者
補助記憶装置に複数のレコードをまとめて読み書きする説明は、ファイルの入出力の話なので外してよいでしょうか。
講師講師
はい。それはブロック化(ブロッキング)で、ファイル入出力の効率を上げる手法です。仮想記憶と実記憶の対応づけとは関係がありません。
受験者受験者
まとめると、固定長に区切って仮想と実記憶を対応づけるのがページング、配置し直すのが再配置、並行アクセスで速くするのがメモリインタリーブ、レコードをまとめるのがブロック化ですね。
講師講師
よく整理できています。あわせて、プログラムの論理的なまとまりごとに可変長で区切る方式はセグメンテーションと呼ばれます。「固定長ならページング、可変長ならセグメンテーション」と対にして覚えておくと、似た問題でも見分けやすくなります。

まとめ

ページング方式は、仮想記憶空間と実記憶空間をそれぞれ固定長の領域に区切り、ページ単位で対応づけて管理する仮想記憶の方式です。対応関係はページ表で管理し、仮想アドレスを実アドレスに変換します。プログラムを別の領域へ配置し直すのは再配置、主記憶を並行アクセスできる複数の領域に分けるのはメモリインタリーブ、複数のレコードをまとめて読み書きするのはブロック化で、いずれもページングとは別の方式です。可変長で区切るセグメンテーションと対にして覚えると見分けやすくなります。

解答・解説

正解はアです

この問題のテーマ

仮想記憶を実現するメモリ管理方式の一つであるページング方式について、その説明として正しいものを選ぶ問題です。

解き方の考え方

ページング方式のポイントは「固定長に区切る」ことと「仮想側と実記憶側を対応づける」ことの二つです。まずこの二つを満たす選択肢を探します。残りの選択肢は、主記憶やファイル入出力に関する別の方式を説明しているので、それぞれ何の方式かを特定すると誤りだと確かめられます。

選択肢ごとの解説

  1. ○ア  仮想記憶空間と実記憶空間をそれぞれ固定長の領域に区切り,対応づけて管理する方式
    アの「仮想記憶空間と実記憶空間を固定長の領域に区切り、対応づける」という説明は、ページング方式の要点そのものです。仮想記憶空間を固定長のページに分け、主記憶側も同じく固定長の区画に分けます。そのうえでページ単位に仮想アドレスを実アドレスへ変換して管理するので、この記述に当てはまります。
  2. ×イ  主記憶装置の異なった領域で実行できるように,プログラムを再配置する方式
    イのプログラムを主記憶の別の領域で実行できるように配置し直すという説明は、再配置(動的再配置)のものです。これはプログラムをどのアドレスに置くかという話であり、記憶空間を固定長に区切って対応づけるページングの説明にはなっていません。
  3. ×ウ  主記憶装置を,同時に並行して読み書き可能な複数の領域に分ける方式
    ウの主記憶を同時に並行して読み書きできる複数の領域に分けるという説明は、メモリインタリーブのものです。複数の領域へ並行してアクセスし、主記憶へのアクセスを速くする方式であり、仮想記憶の管理方式ではありません。
  4. ×エ  補助記憶装置に,複数のレコードをまとめて読み書きする方式
    エの補助記憶装置に複数のレコードをまとめて読み書きするという説明は、ブロック化(ブロッキング)のものです。ファイル入出力の効率を上げる手法であり、仮想記憶と実記憶の対応づけとは関係がありません。

補足

プログラムの論理的なまとまりごとに可変長で区切る方式はセグメンテーションと呼ばれます。「固定長ならページング、可変長ならセグメンテーション」と対にして覚えておくと、似た問題でも見分けやすくなります。

POINT

  • ページング方式は、仮想記憶空間と実記憶空間を固定長の領域に区切り、ページ単位で対応づける仮想記憶の管理方式です。
  • 仮想側と実記憶側の対応はページ表(ページテーブル)で管理し、これを使って仮想アドレスを実アドレスに変換します。
  • プログラムを別の領域で実行できるように配置し直すことは、再配置と呼びます。
  • 主記憶を複数の領域に分けて並行アクセスするのはメモリインタリーブで、複数レコードをまとめて読み書きするのはブロック化です。

※出典:平成29年度春期 基本情報技術者試験 午前 問15