【かそうめもり】

仮想メモリ とは?

最終更新:
💡 アプリの「住所」と、RAMの置き場所を分ける仕組み

仮想メモリは、プログラムが使うアドレスと実際のRAMを分けて管理する仕組みです。アドレス変換、ページファイル、ページフォルトと、メモリ不足との関係を説明します。

📌 このページのポイント
アプリの住所と、RAMの場所を分けるアプリの住所仮想アドレスプロセスごとに管理実際の置き場所RAMページテーブルで対応づけるRAMにあるそのデータを使う必要なら読込みページファイルなどは、仕組みの一部ページフォルト ≠ 必ずディスクを読む
RAM不足への対処だけを指す言葉ではありません。Windowsのページフォルトには、ストレージを読まず解決できる場合もあります。
ひよこ ひよこ
RAMが足りないときだけ、使うもの?
ペンギン先生 ペンギン先生
それだけではないよ。プログラムは仮想アドレスでメモリを使い、システムが実際のRAMの場所へ対応づける。Windowsではプロセスごとに自分のアドレス空間があり、別のプロセスとは、明示的に共有する場合などを除いて分かれているんだ。
ひよこ ひよこ
ディスクをメモリの代わりに使うって聞いたよ?
ペンギン先生 ペンギン先生
仮想メモリの一部のデータは、RAMからストレージへ移せるよ。必要になればRAMへ読み込む。Windowsのページファイルなどが関わるけれど、仮想メモリそのものがページファイルの別名というわけではないんだ。
ひよこ ひよこ
ページフォルトは、故障したということ?
ペンギン先生 ペンギン先生
通常の動作でも起きるよ。Windowsでは、アクセスしたページがそのプロセスの作業用のRAMにない場合に発生する。RAMの別の場所にあるデータを使うなど、ディスクを読まずに解決できる場合もある。ページファイルやファイルから読込む場合とは分けて見よう。
ひよこ ひよこ
パソコンが重い原因は、これで分かる?
ペンギン先生 ペンギン先生
ディスクからの読込みが頻繁なら遅さに影響し得るけれど、メモリ使用量だけでは断定できないよ。使用中のRAM、ページ読込み、ディスクやCPUの状態を合わせて調べる。アプリを減らす、必要なRAMを確保するなど、原因に合う対策を考えよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「仮想メモリ」って出てきたら「アプリが使う住所と、実際のメモリの場所を分けて管理する仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Virtual Memory」 = 仮想記憶
💬 アプリに見えるアドレスと、物理メモリの場所を切り離した見方だよ。幻のRAMを無限に増やすものではないんだ。

参考資料

← 用語集にもどる