仮想記憶とページング

仮想アドレス空間とページング方式を学びます。

仮想記憶は限られた物理メモリを越えるアドレス空間を提供する技術。OS の重要機能です。

日野 こむぎ(普段) 日野 こむぎ

仮想記憶って、どういう仕組みなの?

藤森 さやか 先生(笑顔) 藤森 さやか 先生

仮想記憶は、物理メモリより大きなアドレス空間をプログラムに見せる技術なのよ。
実メモリが足りない分は、ハードディスク (スワップ領域) に退避するの。

青木 澪(普段) 青木 澪

補足すると、管理単位としてはページングが一般的ね。
仮想アドレス空間を固定長 (例: 4KB) のページに区切って、物理メモリと対応付けるの。

桃井 すみれ(普段) 桃井 すみれ

ページが見つからなかったら、どうなっちゃうんですかぁ?

青木 澪(普段) 青木 澪

ページフォルトという例外が発生して、OSがディスクから該当ページを読み込んでメモリに乗せるの。
これが頻発すると、スラッシングと呼ばれる、処理が進まない状態になっちゃうのよ。

藤森 さやか 先生(普段) 藤森 さやか 先生

あと、ページ置換アルゴリズムも重要ね。
FIFO・LRU・LFUなどがあって、どのページを追い出すかを決めるの。
中でもLRU (Least Recently Used) が、最もよく使われる方式よ。

日野 こむぎ(笑い) 日野 こむぎ

つまり仮想記憶のおかげで、大きなプログラムも動かせるってこと?

青木 澪(普段) 青木 澪

そういうこと。
物理メモリが8GBでも、仮想アドレス空間は数百GBにも見えるから、実質無制限のメモリを使えるように見えるの。
ただし、速度は物理メモリより遅くなるけどね。

確認クイズ

仮想記憶でページが主記憶に存在しないとき発生する事象を何と呼ぶか。

  1. セグメンテーション違反
  2. ページフォルト
  3. デッドロック
  4. スラッシング
こたえを見る

正解: 2. ページフォルト

ページフォルトは仮想記憶でアクセスしたページが主記憶になく、補助記憶 (HDD/SSD) から読み込む必要がある時に発生する例外です。多発するとスラッシングを引き起こします。

青木澪、桃井すみれが音楽室でセッションを楽しむ様子

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。