Vermeidung von Seitenfehlern zum Programmstart durch einen persistent-prädiktiven Seitenzwischenspeicher im Linux Kern

Nichtflüchtiger Hauptspeicher (NVRAM) ist eine neue Speichertechnologie, die in Geschwindigkeit und Latenz in der Größenordnung von DRAM liegt, allerdings ihre Speicherinhalte über Powerzyklen behält. Es wird prognostiziert, dass NVRAM größer und billiger als DRAM, während es in Latenz und Energieverbrauch vergleichbar mit DRAM wird. Auf Werte im NVRAM kann auf Byte-Granularität zugegriffen werden (anders als bei SSDs), d.h. ähnlich wie beim DRAM können Werte über einfache mov-Instruktionen zugegriffen werden.

Im Linux-Kernel wird Demand Paging angewandt, also physische Seitenrahmen erst dann in den Nutzeradressraum eingeblendet, wenn auf sie zugegriffen wird. Für begrenzten DRAM-Platz ist dieses Vorgehen sinnvoll, führt aber besonders beim Programmstart zu häufigen Seitenfehlern für Seiten, die eigentlich sicher benutzt werden würden.

Unter Zuhilfenahme von Nichtflüchtigem Speicher soll in dieser Arbeit ein System in den Linux-Kernel implementiert werden, mit dem Seitenfehler beim Programmstart vermieden werden sollen. Dafür werden die Seitenfehler im ersten Lauf durchgemessen, häufig oder sehr wahrscheinlich zugegriffene Bereiche sollen in den NVRAM gespeichert werden. Beim nächsten Start des Programms (ggf. auch nach einem Reboot des Systems), sollen dann die zwischengespeicherten Seiten direkt eingeblendet sein, ohne dass das Programm durch Pagefaults für jede einzelne Seite gehen musste.

Voraussetzungen

Empfohlene Fähigkeiten