仮想記憶
仮想記憶が普及する以前のオーバーレイ方式がほぼこれに相当する。
別の方法として、データの参照をポインタではなく何らかのハンドルで行う方式である。OSはそのようなハンドルと対応するデータを物理メモリにロードしたり、逆に補助記憶装置に移したりする。この方式の欠点は、アプリケーションのコードが非常に複雑になる点、アプリケーションがうまく振舞わなければならない点(必要なデータを物理メモリにロックする機能が必要になるだろう)、標準ライブラリが大きなメモリを確保しておいてアプリケーションのメモリ確保要求に応えるという機能を使えなくなる点などが上げられる。この方式の既存の例としてはMicrosoft Windows 3.1が有名である。
現代の解決策は仮想記憶方式の使用である。特別なハードウェアとOSの組合せにより、主記憶容量が大きくなったように見せ、各プログラムが自由気ままに空間を広げて使用することを可能にする。動作中の他のソフトウェアからは、仮想記憶機構の内部の動きは見えない。一般に仮想的な主記憶容量はほとんどどんな大きさにもできる。ただし、アドレスそのもののサイズによる制限がある。32ビットシステムでは、仮想アドレス空間サイズは全体で 2バイト、つまり4ギガバイトである。64ビットの場合、アドレスは64ビットや48ビットといったさらに大きなものになっている。多くのオペレーティングシステムは仮想アドレス空間全体をアプリケーションに使わせることはなく、一部をカーネル空間にすることでカーネルからユーザ空間に容易にアクセスできるようにしている。