Das Windows-Speichermodell
Windows-Speicher ist virtualisiert. Anwendungen haben keinen direkten Zugriff auf Speicheradressen, sodass Windows physischen Speicher verschieben und Speicher in eine Swapper-Datei (mit dem Namen pagefile.sys) ein-und auslagern kann.
Die Reservierung von Speicher ist normalerweise ein zweistufiger Prozess. Die einfache Reservierung von Speicher führt dazu, dass eine Anwendung einen Handle erhält. Es wird kein physischer Hauptspeicher reserviert. Es gibt mehr Handles als physischen Hauptspeicher. Um den Speicher zu verwenden, muss er 'festgeschrieben' werden. In dieser Phase verweist ein Handle auf physischen Hauptspeicher. Dies muss nicht der gesamte von Ihnen angeforderte Speicher sein.
Beispielsweise wird dem Stack, der einem Thread zugeordnet ist, ein kleiner Teil des tatsächlichen Speichers überlassen. Kommt es zu einem Stacküberlauf, dann wird eine Ausnahmebedingung ausgelöst und das Betriebssystem ordnet mehr physischen Hauptspeicher zu, sodass der Stack weiter anwachsen kann.
Die Speicherbearbeitung durch Windows-Programmierer ist in Bibliotheken verborgen, die für die ausgewählte Programmierumgebung bereitgestellt werden. In der C-Umgebung sind die grundlegenden Routinen zur Speicherbearbeitung die bekannten Funktionen 'malloc' und 'free'. Windows-APIs basieren auf diesen Bibliotheken und bieten im Allgemeinen eine weitere Abstraktionsebene.
Für Programmierer stellt Windows ein unstrukturiertes Speichermodell bereit, bei dem Adressen von 0 bis zu dem für eine Anwendung zulässigen Grenzwert ausgeführt werden. Anwendungen können ihren Speicher nach Bedarf segmentieren. In einem Speicherauszug erkennt der Programmierer Gruppen diskreter Speicheradressen.