【かそうめもり】

仮想メモリ とは?

💡 RAMが足りないときにディスクを「借りてくる」拡張策
📌 このページのポイント
仮想メモリの仕組み 仮想アドレス ページ 0 ページ 1 ページ 2 ページ 3 ページ 4 ページテーブル 0 → RAM フレーム2 1 → RAM フレーム0 2 → RAM フレーム3 3 → ディスク 4 → ディスク アドレス変換 RAM(物理メモリ) フレーム 0 フレーム 1 フレーム 2 フレーム 3 ディスク(スワップ) ページ 3, 4
仮想メモリの仕組み
ひよこ ひよこ

仮想メモリって何?なんで「仮想」なの?

ペンギン先生 ペンギン先生

コンピューターのRAMが満杯になったとき、OSがディスクの一部をRAMの代わりに使う仕組みだよ。プログラムから見ると「メモリがたくさんある」ように見えるから「仮想」って呼ぶんだ。

ひよこ ひよこ

じゃあメモリが少なくてもディスクがあればいいんじゃない?

ペンギン先生 ペンギン先生

そうもいかなくて、RAMはナノ秒単位で読み書きできるけど、ディスクはマイクロ秒〜ミリ秒かかる。仮想メモリに頼りすぎると「スワップ」が多発してコンピューターが劇的に重くなる。あくまで緊急手段だよ。

ひよこ ひよこ

Windowsが重くなるのはこれのせい?

ペンギン先生 ペンギン先生

原因の一つだよ。タスクマネージャーで「コミット済み」がRAMの量を超えてたら仮想メモリをガンガン使ってる状態だ。そういうときはRAMを増設するか、アプリを閉じるのが一番の解決策。

ひよこ ひよこ

「ページフォルト」って何?バグ?

ペンギン先生 ペンギン先生

ページフォルトはエラーじゃなくて正常な動作でもよく起きるんだよ。仮想メモリは「ページ」という単位で管理されてて、プログラムが必要なページがRAMにない(ディスクにある)とき、OSがディスクからRAMに読み込む。その読み込みイベントをページフォルトと呼ぶ。ソフトフォルト(RAMのどこかにある)とハードフォルト(ディスクから読む必要がある)があって、ハードフォルトが多いとパフォーマンスに響くんだ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「仮想メモリ」って出てきたら「RAMが足りないときにディスクで補う仕組みだな」と思えばだいたいOK!
📖 おまけ:英語の意味
「Virtual Memory」 = 仮想記憶
💬 Virtual(仮想の)Memory(記憶)。実際には存在しない「幻のメモリ」をOSが作り出すイメージ
← 用語集にもどる