ページフォルトって何?

広告

「机」と「本棚」で理解する仮想記憶

基本情報技術者試験で、多くの人が苦手にする分野の一つが**仮想記憶(ページング)**です。

「ページイン」「ページアウト」「ページフォルト」など、専門用語だけを暗記しようとすると混乱してしまいます。

そこで今回は、

  • RAM=机の上
  • SSD=本棚

という身近な例えを使って、ページフォルトの流れを図とともに分かりやすく解説します。


まずは全体の流れを見てみましょう

この図が今回の記事の全体像です。

プログラムを実行すると、必要なページだけをRAMへ読み込みます。

もし必要なページがRAMになければページフォルトが発生し、

  1. 必要ならページを追い出す(ページアウト)
  2. SSDから必要なページを読み込む(ページイン)
  3. ページテーブルを更新する

という流れで処理が行われます。

それでは、①〜④を順番に見ていきましょう。


① RAMとSSDの役割

コンピュータには、大きく分けて2つの保存場所があります。

  • RAM(メモリ)
    • 非常に高速
    • 容量は小さい
  • SSD
    • 容量は大きい
    • RAMより遅い

身近な例では、

  • RAM=机の上
  • SSD=本棚

と考えると理解しやすくなります。

机の上には今使う資料だけを置き、その他は本棚にしまっておくイメージです。

コンピュータも同じように、必要なページだけをRAMへ読み込んで処理しています。


② RAMにあるページを実行

CPUがページBを使いたいとします。

ページテーブルを見ると、

ページRAM
A1
B2
C3

となっています。

ページBはRAMの2番にあるため、そのまま実行できます。

この場合はページフォルトは発生しません。

ここに②の図を配置


③ ページフォルト(RAMに空きがある場合)

今度はページDを使いたくなりました。

しかし、ページDはRAMにはありません。

これがページフォルトです。

今回はRAMに空きがあるため、SSDからページDを読み込みます。

この操作をページインと呼びます。

ページDを読み込むだけなので、他のページを追い出す必要はありません。


④ ページフォルト(RAMが満杯の場合)

今度はページEを使いたくなりました。

しかしRAMは

  • A
  • B
  • C

でいっぱいです。

空きがないため、そのままではページEを読み込めません。

そこで今回は、例として**LRU(最近最も使われていないページを追い出す方式)**を使います。

① ページアウト

まずページAをRAMから取り除き、SSDへ戻します。

この操作をページアウトといいます。

するとRAMの1番が空きます。

② ページイン

空いた1番へ、SSDからページEを読み込みます。

このとき、SSD上のページEは消えません。

SSDからRAMへはコピーされるだけだからです。

③ ページテーブル更新

最後にページテーブルを書き換えます。

ページRAM
Aなし
B2
C3
Dなし
E1

実際のOSでは、BやCをわざわざ移動させることはほとんどありません。

空いた場所へ新しいページを入れるため、ページテーブルもAとEだけ更新すれば済みます。


用語を整理しよう

用語意味
ページフォルト必要なページがRAMにない状態
ページインSSDからRAMへページを読み込む
ページアウトRAMからSSDへページを戻す
ページテーブルページがRAMのどこにあるかを管理する表

ページ置換アルゴリズム

RAMがいっぱいになったら、どのページを追い出すかを決める必要があります。

代表的なのは次の3つです。

方式考え方
FIFO一番最初に入ったページを追い出す
LRU最も長く使われていないページを追い出す
LFU使用回数が最も少ないページを追い出す

基本情報技術者試験では、この違いもよく出題されます。


まとめ

覚えておきたいポイントは次の4つです。

  • RAMは机、SSDは本棚と考えるとイメージしやすい。
  • RAMにページがあれば、そのまま実行できる。
  • RAMになければページフォルトが発生し、ページインが行われる。
  • RAMが満杯なら、ページアウトで空きを作ってからページインし、最後にページテーブルを更新する。

仮想記憶は難しく感じるかもしれませんが、「机と本棚」というイメージで考えると、ページフォルト・ページイン・ページアウトの関係が自然につながります。

用語を暗記するのではなく、「なぜその処理が必要なのか」を図と一緒に理解することが、基本情報技術者試験攻略への近道です。

訪問数 1 回, 今日の訪問数 1回

広告