仮想記憶
Windows では、1990年のWindows 3.0から仮想記憶をサポートしている。マイクロソフトはWindows 1.0とWindows 2.0での失敗を受け、OSへのリソース要求を削減するために仮想記憶を導入した。
全てのプロセスは固定の変更不可能な仮想記憶空間を持っている(32ビットの場合、一般に2GB)。
Windows 3.xには隠しファイルとして386SPART.PARまたはWIN386.SWPがあり、それらがスワップファイルとして使われる。通常、ルートディレクトリにあるが、WINDOWSなど他のディレクトリに置くこともある。そのサイズはコントロールパネルで設定される「仮想メモリ」サイズで決定される。ユーザーがこのファイルを削除したり移動させたりすると、次回Windowsを起動したときにブルースクリーンが表示され、エラーメッセージが表示される(英語では "The permanent swap file is corrupt")。
Windows 95、Windows 98 / 98 SE、Windows Me でも同様の仕組みになっている。スワップファイルの大きさはデフォルトでは物理メモリ量の1.5倍であり、最大で物理メモリの3倍まで拡張できる。
NT系のWindows(Windows NT、Windows 2000、Windows XP、Windows Vista、Windows 7、Windows 8 / 8.1、Windows 10およびWindows Serverシリーズなど)は、pagefile.sysというファイルを使用する。このファイルのデフォルトの位置はWindowsをインストールしたパーティションのルートディレクトリである。Windowsは任意のドライブの空き領域をページファイルとして使用できる。XPまでのWindowsではシステムクラッシュ時にカーネルまたは全メモリをダンプする設定にしている場合、ブートパーティション(Windowsがインストールされたドライブ)にこのファイルを置く必要があった(ダンプ先として使用するため)。リブートすると、システムがダンプを通常のファイルに移す。
ページングファイルのサイズには初期サイズと最大サイズがあり、ページングファイルが不足するとページングファイルは最大サイズまで拡張される。拡張されたページングファイルは再起動するまで小さくならない。サイズ設定値が小さい場合、動作が不安定になるアプリケーションもある。
ページングファイルがあると、積極的なクリーニングにより物理メモリで足りる場合であってもページファイルへの書き出しが行われる。
仮想記憶の実装(仮想記憶方式)には、大きく分けてセグメント方式とページング方式の二種類がある。ちなみに68000システムでは、68451(セグメント方式)と、68851(ページング方式)のメモリ管理ユニット (Memory Management Unit、MMU) が準備されていた。
一般にページング方式の方がよく使われている。これにより、メモリスワッピング(あるいは匿名メモリページング)と仮想記憶が結びつけられる。メモリスワッピングとは、一次記憶装置内のメモリページを二次記憶装置(のスワップファイルあるいはスワップパーティションと呼ばれる場所)に書き出して、より高速な一次記憶装置を他のプロセスが使えるように解放することである。
Windows系OSのうち、#Windows NT系ではページング方式の仮想記憶を採用しており、システムUI上では「仮想メモリ」という名前の設定項目が用意されているが、このシステム設定項目はページングファイル(ストレージへのメモリスワップ)に関するものである。アプリケーションおよび多くのシステムプロセスは常に仮想アドレスを使用してメモリを参照する。OSカーネルのコア部のみがアドレスの仮想化をバイパスすることができ、実アドレスを直接使用できる。