Leistungsoptimierung für Cache- und Speicher-Manager
Standardmäßig speichert Windows Dateidaten zwischen, die von Datenträgern gelesen und auf Datenträger geschrieben werden. Dies bedeutet, dass Lesevorgänge Dateidaten aus einem als Systemdateicache bezeichneten Bereich im Systemspeicher statt von dem physischen Datenträger lesen. Entsprechend schreiben Schreibvorgänge Dateidaten in den Systemdateicache statt auf den Datenträger, und diese Art von Cache wird als Zurückschreibcache bezeichnet. Zwischenspeichern wird auf Dateiobjektbasis verwaltet. Das Zwischenspeichern wird vom Cache-Manager gesteuert, der kontinuierlich aktiv ist, während Windows ausgeführt wird.
Dateidaten im Systemdateicache werden in vom Betriebssystem bestimmten Intervallen auf den Datenträger geschrieben. Geleerte Seiten bleiben entweder im Systemcache-Arbeitssatz (wenn FILE_FLAG_RANDOM_ACCESS festgelegt ist und das Dateihandle nicht geschlossen wurde) oder auf der Standbyliste, wo sie Teil des verfügbaren Arbeitsspeichers werden.
Die Richtlinie zur Verzögerung beim Schreiben von Daten in die Datei und ihrer Beibehaltung im Cache, bis der Cache geleert wird, wird als „Lazy Writing“ bezeichnet und in einem bestimmten Zeitintervall vom Cache-Manager ausgelöst. Die Zeit, zu der ein Dateidatenblock geleert wird, basiert teilweise auf dem Zeitraum, für den er im Cache gespeichert wurde, und auf der Zeit, die seit dem letzten Zugriff auf die Daten in einem Lesevorgang verstrichen ist. Dadurch wird sichergestellt, dass die Möglichkeit des Zugriffs auf häufig gelesene Dateidaten im Systemdateicache für eine maximale Zeitspanne erhalten bleibt.
Dieses Zwischenspeichern von Dateidaten wird in der folgenden Abbildung dargestellt:
Wie mit den durchgezogenen Pfeilen in der obigen Abbildung dargestellt, wird ein 256-KB-Datenbereich bei der ersten Anforderung durch den Cache-Manager während eines Dateilesevorgangs in einen 256-KB-Cacheslot im Systemadressraum eingelesen. Ein Benutzermodusprozess kopiert die Daten in diesem Slot dann in seinen eigenen Adressraum. Wenn der Prozess den Datenzugriff abgeschlossen hat, schreibt er die geänderten Daten wieder in denselben Slot im Systemcache, wie mit dem gestrichelten Pfeil zwischen den Adressraum des Prozesses und dem Systemcache dargestellt. Wenn der Cache-Manager ermittelt hat, dass die Daten für einen bestimmten Zeitraum nicht mehr benötigt werden, schreibt er die geänderten Daten zurück in die Datei auf dem Datenträger, wie mit dem gestrichelten Pfeil zwischen dem Systemcache und dem Datenträger dargestellt.
In diesem Abschnitt: