仮想記憶
一方、スワップパーティションは一度位置と大きさを決めたら、ドライブ全体のパーティショニングをやり直さないと変更できない。
Linuxは事実上無制限な個数のスワップデバイスをサポートし、それぞれに優先度を設定できる。オペレーティングシステムが物理メモリをスワップアウトする場合、最高優先度のデバイスの空き領域から使っていく。同じ優先度に複数のデバイスがある場合、それらは RAID 0と同様の使い方をされる。これによって並列的に複数のデバイスにアクセスするので性能が向上する。従って優先度の設定には注意が必要である。例えば、同じドライブ上の複数のスワップ領域を同じ優先度にするのは得策ではない。また、高速なデバイスを高優先度に設定するのが性能的に有利である。
Linuxシステムでスワップを追加するには、その前にスワップ領域を作成しなければならない。パーティションならば一般のパーティション作成ツールが使用できる。通常ファイルの場合、ddコマンドと /dev/zeroを使って内容がゼロのファイルを作ることができる。作成したスワップ領域はmkswap filename/deviceでフォーマットし、swaponおよびswapoffコマンドでON/OFFを制御する。
Windowsとは違い、物理メモリに入りきらない場合のみ、スワップが利用される。これは積極的なクリーニングが実装されていないためで、ページングが開始された時システムは著しい速度低下を起こす(スラッシング)。しかし、これは物理メモリが飽和状態を続けている場合さほど深刻では無い。メモリが飽和すればあまり利用されないページは自ずとハードディスクに追い出され、物理メモリには有用なページが残される様になる。
バロース B5000などのシステムは、ページング方式ではなくセグメント方式を使い、仮想アドレス空間を可変長のセグメントに分割する。その場合、仮想アドレスはセグメント番号とセグメント内オフセットから成る。Intel 80286の保護モードにもそのようなセグメント方式があったが、ほとんど使われなかった。セグメントとページは、セグメントをページに分割するという形で同時に使用できる。そのようなメモリ構成のシステムとして、MulticsやSystem/38がある。その場合の基本はページングであり、セグメントはメモリ保護に使われる。
Intel 80386 とその後のIA-32プロセッサでは、セグメントをページ化された32ビットのリニアなアドレス空間に置く。セグメントによる管理と、ページ単位による管理の、2段階のシステムとなっている。しかし、複数のセグメントを活用しているOSは少なく(ただし、研究レベルまで含めればそんなに少なくない)、単純にベースアドレスを全てゼロとして、範囲のみ指定した最小限必要なだけのセグメントと、ページングのみを使っていることが多い。