Seiten-Cache - Page cache

Beim Rechnen ist ein Seiten-Cache , manchmal auch als Festplatten-Cache bezeichnet , ein transparenter Cache für die Seiten, die von einem sekundären Speichergerät wie einem Festplattenlaufwerk (HDD) oder einem Solid-State-Laufwerk (SSD) stammen. Das Betriebssystem speichert einen Seitencache in ansonsten nicht verwendeten Teilen des Hauptspeichers (RAM), was zu einem schnelleren Zugriff auf den Inhalt zwischengespeicherter Seiten und zu allgemeinen Leistungsverbesserungen führt. Ein Seitencache wird in Kerneln mit der Paging- Speicherverwaltung implementiert und ist für Anwendungen größtenteils transparent.

Normalerweise wird der gesamte physische Speicher, der nicht direkt Anwendungen zugewiesen ist, vom Betriebssystem für den Seitencache verwendet. Da der Speicher ansonsten inaktiv wäre und auf Anforderung von Anwendungen leicht zurückgefordert werden kann, gibt es im Allgemeinen keine Leistungseinbußen, und das Betriebssystem meldet den Speicher möglicherweise sogar als "frei" oder "verfügbar".

Im Vergleich zum Hauptspeicher sind Lese- / Schreibvorgänge auf Festplattenlaufwerken langsam und für zufällige Zugriffe sind teure Festplattensuchen erforderlich . Infolgedessen führen größere Mengen an Hauptspeicher zu Leistungsverbesserungen, da mehr Daten im Speicher zwischengespeichert werden können. Separates Festplatten-Caching wird auf der Hardwareseite durch dedizierte RAM- oder NVRAM- Chips bereitgestellt, die sich entweder im Festplattencontroller (in diesem Fall ist der Cache in ein Festplattenlaufwerk integriert und wird normalerweise als Festplattenpuffer bezeichnet ) oder in einem Festplattenarray-Controller befinden . Ein solcher Speicher sollte nicht mit dem Seitencache verwechselt werden.

Gedächtniserhaltung

Seiten im Seitencache, die nach dem Einspielen geändert wurden, werden als schmutzige Seiten bezeichnet. Da nicht verschmutzte Seiten im Seitencache identische Kopien im Sekundärspeicher haben (z. B. Festplattenlaufwerk oder Solid-State-Laufwerk), ist das Verwerfen und Wiederverwenden ihres Speicherplatzes viel schneller als das Auslagern des Anwendungsspeichers und wird häufig dem Leeren der verschmutzten Seiten vorgezogen in Sekundärspeicher und Wiederverwendung ihres Speicherplatzes. Auf ausführbare Binärdateien wie Anwendungen und Bibliotheken wird normalerweise auch über den Seitencache zugegriffen und mithilfe des virtuellen Speichers einzelnen Prozessbereichen zugeordnet (dies erfolgt über den mmap -Systemaufruf unter Unix-ähnlichen Betriebssystemen). Dies bedeutet nicht nur, dass die Binärdateien von verschiedenen Prozessen gemeinsam genutzt werden, sondern auch, dass nicht verwendete Teile von Binärdateien möglicherweise aus dem Hauptspeicher gelöscht werden, was zu einer Speichererhaltung führt.

Da zwischengespeicherte Seiten leicht entfernt und wiederverwendet werden können, melden einige Betriebssysteme, insbesondere Windows NT , die Verwendung des Seitencaches sogar als "verfügbaren" Speicher, während der Speicher tatsächlich Festplatten-Seiten zugewiesen wird. Dies hat zu Verwirrung hinsichtlich der Verwendung des Seitencaches in Windows geführt.

Festplatten schreibt

Der Seiten-Cache hilft auch beim Schreiben auf eine Festplatte. Seiten im Hauptspeicher, die beim Schreiben von Daten auf die Festplatte geändert wurden, werden als "fehlerhaft" markiert und müssen auf die Festplatte geleert werden, bevor sie freigegeben werden können. Wenn ein Dateischreiben erfolgt, wird die zwischengespeicherte Seite für den jeweiligen Block nachgeschlagen. Wenn es bereits im Seitencache gefunden wurde, erfolgt das Schreiben auf diese Seite im Hauptspeicher. Wenn es nicht im Seitencache gefunden wird, wird die Seite nicht einmal von der Festplatte gelesen, sondern zugewiesen und sofort als verschmutzt markiert , wenn der Schreibvorgang perfekt auf die Seitengrößengrenzen fällt . Andernfalls werden die Seiten von der Festplatte abgerufen und die angeforderten Änderungen vorgenommen. Eine Datei, die im Seitencache erstellt oder geöffnet, aber nicht beschrieben wird, kann bei einem späteren Lesevorgang zu einer Null-Byte-Datei führen .

Es können jedoch nicht alle zwischengespeicherten Seiten beschrieben werden, da der Programmcode häufig schreibgeschützt oder beim Schreiben kopiert wird . Im letzteren Fall sind Änderungen am Code nur für den Prozess selbst sichtbar und werden nicht auf die Festplatte geschrieben.

Seitenkanalangriffe

Im Jahr 2019 demonstrierten Sicherheitsforscher Seitenkanalangriffe gegen den Seitencache: Es ist möglich, die Trennung von Berechtigungen zu umgehen und Daten über andere Prozesse zu filtern, indem systematisch überwacht wird, ob einige Dateiseiten (z. B. ausführbare Dateien oder Bibliotheksdateien ) im Cache vorhanden sind oder nicht.

Siehe auch

Verweise

Externe Links