ページの状態
プロセスの仮想アドレス空間のページは、次のいずれかの状態にすることができます。
状態 | 説明 |
---|---|
Free | ページはコミットも予約もされていない。 このページにはプロセスにアクセスできません。 予約、コミット、または同時に予約とコミットが可能です。 フリー ページからの読み取りまたは空きページへの書き込みを試みると、アクセス違反の例外が発生します。 プロセスでは 、VirtualFree または VirtualFreeEx 関数を使用して、そのアドレス空間の予約済みページまたはコミット済みページを解放し、空き状態に戻すことができます。 |
予約済み | このページは、今後使用するために予約されています。 アドレスの範囲は、他の割り当て関数では使用できません。 ページにアクセスできなくなり、関連付けられている物理ストレージがありません。 コミット可能です。 プロセスでは 、VirtualAlloc または VirtualAllocEx 関数を使用して、そのアドレス空間のページを予約し、後で予約ページをコミットできます。 VirtualFree または VirtualFreeEx を使用してコミット済みページをコミット解除し、予約済み状態に戻すことができます。 |
Committed | メモリ使用量は、ディスク上の RAM ファイルとページング ファイルの全体的なサイズから割り当てられています。 ページにアクセスでき、アクセスは メモリ保護定数の 1 つによって制御されます。 システムは、コミットされた各ページを初期化し、そのページへの読み取りまたは書き込みを最初に試行したときにのみ物理メモリに読み込みます。 プロセスが終了すると、コミットされたページのストレージが解放されます。 プロセスでは 、VirtualAlloc または VirtualAllocEx を使用して、予約済みリージョンから物理ページをコミットできます。 ページを同時に予約およびコミットすることもできます。 GlobalAlloc 関数と LocalAlloc 関数は、読み取り/書き込みアクセス権を持つコミット済みページを割り当てます。 |