基本情報技術者

【基本情報技術者試験】仮想記憶のページング方式

今回のテーマは、仮想記憶の実現方法のひとつである「ページング方式」についてです。
ページング方式?

問題

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

  • ア:仮想記憶空間と実記憶空間を,固定長の領域に区切り,対応づけて管理する方式
  • イ:主記憶装置の異なった領域で実行できるように,プログラムを再配置する方式
  • ウ:主記憶装置を,同時に並行して読み書き可能な複数の領域に分ける方式
  • エ:補助記憶装置に,複数のレコードをまとめて読み書きする方式

基本情報技術者平成29年春期 午前問15

基本情報技術者試験や応用情報技術者試験で出題される「仮想記憶」と「ページング方式」についての問題。ページング方式の動きを理解していないと難しく感じる問題ですが、動きを理解していればそこまで難しい問題ではありません。

本記事では、仮想記憶の実現方法のひとつである「ページング方式」について図解で分かりやすく解説しています。

本記事で学べること

  • 仮想記憶(仮想メモリ)の仕組みを理解する
  • ページング方式の仕組みを理解する
  • 基本情報技術者試験の過去問の解き方を学ぶ

仮想記憶(仮想メモリ)

仮想記憶とは

仮想記憶とは、仮想的な記憶領域のことであり、仮想メモリやバーチャルメモリとも呼ばれています。

仮想記憶を使用することで主記憶装置(メインメモリ)の容量を超えてメモリ空間を利用することができます。

プログラム内蔵方式という方式を採用しているコンピュータは、プログラムを実行するときハードディスクやSSDなどの補助記憶装置に保存してあるプログラムを主記憶装置に格納し、それをCPUが読み出し実行します。

主記憶装置にプログラムをロードする

このようにコンピュータがプログラムを主記憶装置に読み込んで実行する際の、記憶領域の割り当てと解放を管理する機能のことを「実記憶管理」といいます。

実記憶管理の場合、主記憶装置上の記憶領域に直接プログラムを配置するため、どの位置にプログラムを配置するのがよいのか、主記憶装置の空き領域よりも大きいサイズのプログラムをどう扱うかなど管理が大変です。

スポンサーリンク

そこで使用するのが仮想記憶です。仮想記憶は、仮想的なメモリ空間を作りそこにプログラムを配置します。

仮想記憶にロードする

仮想記憶を使うことで、主記憶装置と補助記憶装置をあわせて作った広大なメモリ空間を自由に扱うことができます。

仮想記憶の仕組み

仮想記憶は、あくまでも"仮想的な記憶領域"です。そのため、実際のデータは主記憶装置(または補助記憶装置)に記憶します。(主記憶装置に入らないデータや必要性の低いデータを補助記憶装置に記憶しておく)

次の図は、仮想記憶のイメージ例です。仮想記憶に記憶した実際のデータは、主記憶装置と補助記憶装置に記憶されています。

仮想記憶の仕組み

メモリ管理ユニット(MMU:Memory Management Unit)と呼ばれる装置が、仮想記憶と主記憶装置(または補助記憶装置)の対応付けを行っており、仮想アドレス(または論理アドレス)を実アドレス(または物理アドレス)に変換しています。

この仕組みを「動的アドレス変換機構(DAT : Dynamic Address Translation)」といいます。

このように仮想記憶の実体は、主記憶装置と補助記憶装置を合わせて作ったメモリ空間であり、プログラムから見たら大容量の主記憶装置があるのと同じです。(プログラムからは仮想記憶しか見えない)

プログラムから見た仮想記憶

実記憶管理の場合は、限られたメモリ空間を効率よく使うためにはどうすればよいか、色々と検討しながら管理する必要がありました。

仮想記憶は"仮想的な記憶領域"のため、広大なメモリ空間の空いている場所に配置すればよく、実際のデータも「動的アドレス変換機構」で格納位置がわかるため、主記憶装置(または補助記憶装置)の空いている場所に配置することができ、実記憶管理に比べるとデータを柔軟に扱うことができます

ページング方式

ページング方式とは

ページング方式とは、仮想記憶の実現方式のひとつで、メモリ領域をページと呼ばれる一定の大きさの領域に分割し管理する方式のことです。

ページング方式では、次の図のようにメモリ領域を「ページ」単位で管理するため、プログラムも「ページ」と呼ばれる一定の大きさに分割します。

プログラムをページ単位で管理

仮想記憶は"仮想的な記憶領域"です。そのため、実際のデータは主記憶装置(または補助記憶装置)に記憶します。

しかし ページング方式では、ページが必要になるまで主記憶装置にはページを読み込みません。このような手法をデマンドページングといいます。

プログラムは複数の機能の集合体であり、常に全ての機能が使われているわけではありません。そこで、必要なページだけを主記憶装置に読み込むという考え方です。

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

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

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

ページフォールトが発生したら、必要なページを補助記憶装置から主記憶装置に読み込みます。この操作を「ページイン」といいます。

ページインのイメージ例

ページング方式の仕組み

ページング方式では、ページテーブルと呼ばれる表で仮想ページ番号と物理ページ番号の対応付けを行っています。

スポンサーリンク

次の図は、ページング方式のイメージ例です。プログラムAをページ単位に分割して仮想記憶に記憶し、その実体は主記憶装置にも記憶、そして仮想記憶と主記憶装置のページの対応付けはページテーブルで行っています。

デマンド

メモリ管理ユニットで管理しているページテーブルを使い仮想アドレス(または論理アドレス)を実アドレス(または物理アドレス)に変換するときは、次のように先頭のページ番号のみ変換します。

ページ内変位(ページ内相対メモリアドレス)とは、ページ内の位置を表す情報です。

仮想アドレスと実アドレスの変換

例えば、上記図ページング方式のイメージ例のようにページが格納されている状態のとき「仮想ページ番号"2"、ページ内変位"00FE"にあるメモリにアクセスする」という命令が入った場合は、ページテーブルを使い仮想ページ番号"2"を物理ページ番号"1000:1000"に変換します。

そして、ページ内変位が"00FE"なので、メモリ管理ユニットは、物理ページ番号にページ内変位を加算した"1000:10FE"の位置にアクセスします。

基本情報技術者試験 過去問の解説

問題

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

  • ア:仮想記憶空間と実記憶空間を,固定長の領域に区切り,対応づけて管理する方式
  • イ:主記憶装置の異なった領域で実行できるように,プログラムを再配置する方式
  • ウ:主記憶装置を,同時に並行して読み書き可能な複数の領域に分ける方式
  • エ:補助記憶装置に,複数のレコードをまとめて読み書きする方式

基本情報技術者平成29年春期 午前問15

ページング方式の説明はどれか、設問のア~エを順番に確認していきます。

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

正解:ページング方式の説明です。

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

不正解:動的再配置の説明です。動的再配置とは、主記憶装置に読み込まれているプログラムの位置を移動させることです。

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

不正解:メモリインタリーブの説明です。

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

不正解:ブロック化の説明です。

上記より「ア」が正解です。