Was ist Demand-Paging?

4 Antworten


  • 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.

  • Virtueller Speicher kann durch eine Technik implementiert werden, die als anspruchsvolles Paging bezeichnet wird. Es ist eine Technik, bei der eine Seite in den Speicher geladen wird, wenn sie tatsächlich benötigt wird.
    Ein typischer Lebenszyklus eines Prozesses ist wie folgt:

    1. Wenn ein Prozess initiiert wird, muss das Betriebssystem mindestens eine Seite in den Realspeicher laden. Dies ist die Seite, die den Ausführungsteil des Prozesses enthält.
    2. Die Ausführung des Prozesses beginnt und wird durch nachfolgende Anweisungen über den Startpunkt hinaus fortgesetzt.

    3. Diese Ausführung wird so lange fortgesetzt, wie sich von dieser Seite erzeugte Speicherreferenzen auch innerhalb derselben Seite befinden. Die erstellte virtuelle Adresse kann auf eine Seite verweisen, die sich nicht im Realspeicher befindet. Dies wird als Seitenfehler bezeichnet. Es erzeugt einen Interrupt, der zum Laden der referenzierten Seite auffordert. Dies wird als anspruchsvolle Seite bezeichnet.

    4. Das Betriebssystem versucht, die referenzierte Seite in einen freien Realspeicherrahmen zu laden. Wenn dies erreicht ist, kann die Ausführung fortgesetzt werden.
    5. Wenn der Prozess schließlich beendet wird, gibt das Betriebssystem alle zum Prozess gehörenden Seiten frei. Die Seiten werden anderen Prozessen zur Verfügung gestellt.
    Im Allgemeinen passt das Betriebssystem die neue Seite an, indem es eine derzeit geladene Seite entfernt, die nicht verwendet wird. Dies wird als Seitenersetzung bezeichnet. Es ist wichtig, eine Seite zu entfernen, auf die in kurzer Zeit nicht zugegriffen wird. Dadurch wird die Anzahl der Seitenfehler im System reduziert.
  • Wenn beim Demand-Paging ein Prozess ausgeführt werden muss, nehmen wir diesen Prozess aus dem sekundären Speicher und legen ihn in den Speicher ab. Normalerweise wird eine Platte verwendet, um den sekundären Speicher darzustellen. Tatsächlich wird nicht der gesamte Prozess in den Speicher ausgelagert, aber wir verwenden einen Lazy Swapper und die Aufgabe des Lazy Swapper besteht darin, die anspruchsvolle Seite aus dem sekundären Speicher in den Speicher zu verschieben.
    Wir können das also in einfachen Worten sagen; Ein Lazy Swapper Moves verschiebt keine Seite in den Speicher, wenn diese Seite nicht benötigt wird. Beim reinen Demand-Paging wird eine Seite nie aus dem Hintergrundspeicher in den Hauptspeicher verschoben, bis auf diese Seite verwiesen wird. Es liegt in der Verantwortung des Betriebssystems zu überprüfen, wo sich die Seite im Hauptspeicher befindet und OS verwendet dafür eine interne Tabelle. Das Betriebssystem liest diese Seite, nachdem es gefunden wurde, und um Änderungen widerzuspiegeln, wird die Seitentabelle aktualisiert. Durch die Verwendung dieses Prozesses ist es also möglich, einen Prozess auszuführen, auch wenn sein gesamtes Speicherabbild nicht aus dem Sicherungsspeicher in den Hauptspeicher übernommen wird.

    Auf diese Weise ist Demand-Paging ein besserer Ansatz als Paging, und es erhöht auch den Grad der Multiprogrammierung und ermöglicht, dass ein Prozess ausgeführt wird, selbst wenn er den ihm zugewiesenen physischen Raum überschreitet.
  • Es ist eigentlich ein Prozess, der verwendet wird, um das Problem des Swapping zu beseitigen. Darin kann das Programm tatsächlich in keine unterteilt werden. Von Seiten wird nur eine Seite vertauscht, die gerade verwendet wird. Gagan cse bksj asr

Schreibe deine Antwort

Ihre Antwort erscheint nach der Moderation appear