Voraussetzung – Virtueller Speicher im Betriebssystem

Wie das Konzept des virtuellen Speichers nahelegt, ist es nicht erforderlich, dass der gesamte Prozess zu einem bestimmten Zeitpunkt in den Hauptspeicher geladen wird. Der Prozess kann effizient ausgeführt werden, wenn zu einem bestimmten Zeitpunkt nur ein Teil der Seiten im Hauptspeicher vorhanden ist. Hier stellt sich nun die Frage, was die Grundlage für die Auswahl der in den Hauptspeicher zu ladenden Seiten zur Ausführung eines Prozesses im Vorfeld ist.

Die Antwort auf das hier vorgestellte Problem ist Demand Paging . Gemäß diesem Konzept wird keine Seite in den Hauptspeicher geladen, es sei denn, sie wird von dem Prozess in irgendeiner Stufe der Ausführung referenziert. Im Gegensatz dazu stellt das Konzept des Prepaging einen anderen Ansatz dar, bei dem das Betriebssystem eine Vermutung präsentiert, welche Seite der Prozess benötigen wird, und sie vorab in den Speicher lädt.

Das Konzept des Prepaging wird als Versuch verwendet, die große Anzahl von Seitenfehlern zu reduzieren, die zu Beginn eines Prozesses auftreten, wobei die grundlegende Strategie darin besteht, alle Seiten, die benötigt werden, gleichzeitig in den Speicher zu bringen, bevor sie tatsächlich benötigt werden durch den Prozess referenziert. 

Prepaging wird verwendet, um einen Hauptnachteil von Demandpaging zu überwinden. Ein Hauptnachteil von Demand Paging ist eine beträchtlich große Anzahl von Seitenfehlern, die auftreten können, sobald ein Prozess mit der Ausführung beginnt. Die Situation ist das Ergebnis eines Versuchs, den ursprünglichen Ort in den Speicher zu laden. Die gleiche Situation kann wiederholt auftreten. Wenn beispielsweise ein Prozess neu gestartet wird, nachdem er ausgelagert wurde, sind alle seine Seiten auf der Platte vorhanden, und folglich muss im schlimmsten Fall jede der Seiten zur Ausführung des Prozesses durch ihren eigenen Seitenfehler in den Hauptspeicher zurückgebracht werden Fall.
Wenn ein System ein Arbeitssatzmodell verwendet, wird eine Seitenliste mit jedem Prozess in seinem Arbeitssatz geführt. Wenn ein Prozess aufgrund fehlender freier Frames oder einer E/A-Wartezeit ausgesetzt wird, geht der Arbeitssatz des Prozesses nicht verloren. Wenn ein Prozess fortgesetzt wird, wird der gesamte Arbeitssatz zurück in den Speicher gebracht, bevor der Prozess erneut ausgeführt wird.
Der Hauptvorteil von Prepaging besteht darin, dass es Zeit sparen kann, wenn aufeinanderfolgende Adressen von einem Prozess referenziert werden. In diesem Fall ist es für das Betriebssystem einfach, die geeigneten Seiten zu erraten und zu laden, und da eine hohe Wahrscheinlichkeit besteht, dass die Vermutung für viele Seiten richtig ist, treten weniger Seitenfehler auf.

Prepaging ist möglicherweise nicht immer von Vorteil. Der Vorteil von Prepaging basiert auf der Antwort auf eine einfache Frage, ob die Kosten für die Implementierung von Prepaging geringer sind als die Kosten für die Wartung der entsprechenden Seitenfehler. Bitte beachten Sie hierbei, dass es vorkommen kann, dass eine beträchtliche Anzahl von Seiten, die durch Prepaging wieder in den Speicher zurückgebracht werden, nicht verwendet werden. Der Nachteil des Konzepts besteht darin, dass Ressourcen wie Zeit und Speicher verschwendet werden, wenn die vorinstallierten Seiten nicht verwendet werden.

Unterschied zwischen Demand Paging und Prepaging:

Demand-Paging

Pre-Paging

Es wird keine Seite in den Hauptspeicher geladen, es sei denn, sie wird zum gegenwärtigen Zeitpunkt durch den Prozess referenziert.Alle Seiten, die in naher Zukunft benötigt werden, werden gleichzeitig in den Speicher geladen, bevor sie tatsächlich vom Prozess referenziert werden. 
Die Anzahl der Seitenfehler ist signifikant hoch.Die Anzahl der Seitenfehler kann in bestimmten Fällen reduziert werden.
Die Ladezeit der Seiten darf sich in keinem Fall verkürzen.Die zum Laden der Seiten benötigte Zeit verringert sich, wenn aufeinanderfolgende Adressen von einem Prozess referenziert werden.
Die in den Hauptspeicher geladenen Seiten werden sicherlich verwendet.Die in den Hauptspeicher geladenen Seiten können verwendet werden oder nicht.
Es gibt keine Verschwendung von Ressourcen, da eine Seite nach Bedarf geladen wird.Es gibt eine Verschwendung von Ressourcen, da die Wahrscheinlichkeit hoch ist, dass die Seiten ungenutzt sind.

Die Anzahl der Seiten im Voraus ist: s, und der Bruchteil dieser Seiten, der tatsächlich von einem Prozess verwendet wird, ist: m, wobei (0 ≤ m ≤ 1). Prüfen Sie nun, ob die s*m Speicherseitenfehler größer oder kleiner sind als die Kosten für das Vorbereiten von s*(1-m) unnötigen Seiten, und fahren Sie mit der Prozedur fort, die einen geringeren relativen Wert hat.

Lernen Sie alle GATE CS-Konzepte mit kostenlosen Live-Kursen auf unserem YouTube-Kanal kennen.