Seitenstatus
Die Seiten des virtuellen Adressraums eines Prozesses können einen der folgenden Zustände haben.
| State | Beschreibung |
|---|---|
| Kostenlos | Für die Seite wird weder ein Commit ausgeführt noch eine Reservierung ausgeführt. Der Prozess kann nicht auf die Seite zugreifen. Es kann reserviert, ein Commit ausgeführt oder gleichzeitig reserviert und ein Commit ausgeführt werden. Der Versuch, aus einer kostenlosen Seite zu lesen oder auf eine kostenlose Seite zu schreiben, führt zu einer Zugriffsverletzungsausnahme. Ein Prozess kann die VirtualFree- oder VirtualFreeEx-Funktion verwenden, um reservierte oder zu commitende Seiten seines Adressraums freizugeben und sie in den zustand "Free" zurückzusetzen. |
| Reserviert | Die Seite wurde für die zukünftige Verwendung reserviert. Der Adressbereich kann nicht von anderen Zuordnungsfunktionen verwendet werden. Auf die Seite kann nicht zugegriffen werden, und ihr ist kein physischer Speicher zugeordnet. Es kann ein Commit ausgeführt werden. Ein Prozess kann die VirtualAlloc- oder VirtualAllocEx-Funktion verwenden, um Seiten seines Adressraums zu reservieren und später die reservierten Seiten zu committen. Sie kann VirtualFree oder VirtualFreeEx verwenden, um Commitseiten zu decommitieren und in den reservierten Zustand zurückzukehren. |
| Committet | Arbeitsspeichergebühren wurden aus der Gesamtgröße der RAM- und Auslagerungsdateien auf dem Datenträger zugeordnet. Auf die Seite kann zugegriffen werden, und der Zugriff wird durch eine der Speicherschutzkonstantengesteuert. Das System initialisiert und lädt jede seite, für die ein Commit ausgeführt wurde, nur während des ersten Lese- oder Schreibversuchs auf dieser Seite in den physischen Arbeitsspeicher. Wenn der Prozess beendet wird, gibt das System den Speicher für Seiten frei, für die ein Commit ausgeführt wurde. Ein Prozess kann VirtualAlloc oder VirtualAllocEx verwenden, um physische Seiten aus einer reservierten Region zu committen. Sie können seiten auch gleichzeitig reservieren und committen. Die Funktionen GlobalAlloc und LocalAlloc weisen Seiten, für die ein Commit ausgeführt wurde, Lese-/Schreibzugriff zu. |