メモリは値段が高いので、効率よく利用することが大切です。ときには、マシンで 実行中のすべてのプログラム全体をメモリに保持するだけの余裕がない場合が 生じます。特に、X サーバのような巨大なプログラムを実行しているような場合 には、メモリ不足が生じることがあります。この問題に対処するために、 Unix は、仮想メモリ (virtual memory) と呼ばれるテクニックを 使います。これは、プロセスのすべてのコードとデータをメモリ内に保持 しようとするものではありません。むしろ、比較的少量の ワーキングセット (working set) だけを保持するようにして、 残りのプロセス状態は、ハードディスク上の スワップスペース (swap space) という特別な領域に置いておきます。
注意して欲しいのは、前の段落で「ときには....生じます」と書いた部分は、過去に おいては、「ほとんどいつも生じていました」と言い換えることができるという点 です。以前は、実行中のプログラムのサイズと比べてメモリのサイズが 全然足りなかったので、スワッピングは頻繁に起こっていました。しかし、 メモリは今日ではかなり安価になっていて、ローエンドのマシンにすら、かなりの メモリが積まれるようになっています。64 MB 以上のメモリを積んだ現在の 個人用マシンの場合、X やよく利用するジョブが最初からコアにロードされた あとでも、そうしたプロセスをスワッピングなしで実行することが可能に なっています。