Demand Paging ist eine Form des virtuellen Speichers, bei der eine Speicherseite eingelagert wird, wenn ein Programm versucht, darauf zuzugreifen, und die Seite sich noch nicht im Hauptspeicher befindet. Daher lädt Demand-Paging nur Seiten, die während des Ausführungsprozesses in den Realspeicher gebracht werden sollen, es muss nicht während des Programmstarts der gesamte Speicher für einen Prozess vom Sekundärspeicher in den Hauptspeicher ausgelagert werden.
Der Vorteil dieses Verfahrens besteht darin, dass nur Seiten geladen werden, die während des Ausführungsprozesses benötigt werden, so dass mehr Platz im Hauptspeicher vorhanden ist und somit mehr Prozesse geladen werden können, wodurch die Kontextwechselzeit reduziert wird, die normalerweise viel Zeit in Anspruch nimmt Speicherressourcen. Demand Paging bedeutet jedoch, dass Programme beim erstmaligen Zugriff auf eine Seite mit einer zusätzlichen Latenzzeit konfrontiert werden können. Dieser Prozess kann auch anfällig für mögliche Sicherheitsrisiken wie Timing-Angriffe sein.
Demand-Paging-Prozess;
1.Programm versucht, eine Seite zu finden.
2. Befindet sich die Seite im Hauptspeicher, läuft das Programm wie gewohnt.
3.Wenn die Seite nicht gefunden werden kann, tritt ein sogenannter Seitenfehler-Trap auf.
4. Dann wird die Speicherreferenz überprüft, um festzustellen, ob sie eine gültige Referenz auf einen Speicherort im sekundären Speicher ist. Wenn dies der Fall ist, muss die Seite eingelagert werden.
5.Das Einlesen der gewünschten Seite in den Hauptspeicher ist geplant.
6.Dieser Vorgang wird an dem Punkt neu gestartet, bevor der Seitenfehler-Trap auftritt. (Schritte 1 & 2).
7.Das Programm kann nun auf die gewünschte Seite im Hauptspeicher zugreifen.