スマートフォン用の表示で見る

仮想メモリ

/* 以下の説明では、仮想メモリ(仮想記憶)の概念と、アドレス空間の独立(多重仮想記憶またはバンキング)の概念とが混同されています。これらは、全く別々の概念です。ちょっと、正確な記述をする心の余裕が無いので、より正しい概念はWikipediaを参照してください。*/

OSの機能の一つ。

メモリーを仮想的に扱い、プロセス単位に独自のメモリアドレス空間を提供する機能。

実際には仮想的に割り当てたメモリ領域も、実メモリアドレス空間に存在するため、アドレスの再計算をOSもしくはCPUが提供する特殊ハードウエアで行う。

なぜこのような事を行うかというと?

  • 実メモリが不足した場合、一時的にHDD等にファイルとして実メモリの内容を待避させる事が出来る。従って見かけ上、実メモリよりもメモリ領域を多くみせかける事が出来る。

などである。

このHDDに待避させる「領域」の事をUNIXの世界ではswapという事が多い。 swap実メモリの内容を待避する事をswap outと呼ぶ。あまりに重たい作業をさせたときにHDDがガリガリと音を立てる。

もちろんHDDはRAMに比べて非常にアクセス速度が遅いため、swap outは発生しないほうが理想なのは言うまでもない、

発生を減らす方法として、不要なプロセスを起動しない、OSをより軽いものに変える、物理メモリを増設するなどという方法がある。

UNIXではswap専用の区画を作るのが一般的、一応swapをファイルにすることも可能。

Windowsではそれらの区画がないため、ファイルを作ることによって対応していると思われる。