[unmarkierte Version] | [gesichtete Version] |
Keine Bearbeitungszusammenfassung |
Kwastg (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
= | |||
Eine einfache Beschreibung des Ablaufs einer Seitenersetzung ist wie folgt: | |||
</p> | |||
<p> | |||
# Die MMU stellt fest, dass die benötigte virtuelle Seite B nicht in einem Seitenrahmen eingelagert ist und löst deshalb einen Seitenfehler aus.<br /><br /> | |||
# Es wird festgestellt, dass kein freier Seitenrahmen mehr verfügbar ist, das Seitenersetzungsverfahren wird deshalb gestartet.<br /><br /> | |||
# Die zu ersetzende Seite E wird bestimmt, sie ist derzeit in Seitenrahmen X eingelagert.<br /><br /> | |||
# Die zu ersetzende Seite E wird in den Hintergrundspeicher geschrieben. Damit ist ihr Inhalt gesichert, sie kann später wieder eingelagert werden.<br /><br /> | |||
# Die benötigte Seite B wird eingelagert, d.h. ihr Inhalt wird in den Seitenrahmen X geschrieben. Das Ersetzungsverfahren ist damit abgeschlossen. | |||
</p> | |||
<br /> | |||
<p> | |||
<loop_area type="important"> | |||
<p> | |||
Das Schreiben der zu ersetzenden Seite E in den Hintergrundspeicher kostet viel Zeit! Das ist schlecht für die Performance des Gesamtsystems.</p> | |||
</loop_area> | |||
</p> | |||
<br /> | |||
<p> | |||
Es ist deshalb sinnvoll, eine zu ersetzende Seite nur dann in den Hintergrundspeicher zu kopieren, wenn dies auch tatsächlich notwendig ist. | |||
</p> | |||
<br /> | |||
== Programmtext oder Daten == | |||
<p> | |||
Eine Seite kann beispielsweise den Programmtext oder die Daten eines Prozesses enthalten. | |||
</p> | |||
<br /> | |||
== Aufgabe 1 == | |||
<p> | |||
<loop_area type="task"> | |||
<loop_task title="Wenn eine Seite Programmtext enthält" id="5fa97889254f0"> | |||
<p> | |||
Eine zu ersetzende Seite enthält lediglich Programmtext (also den ausführbaren Maschinencode mit den Befehlen) eines Prozesses. Diese Inhalte dürfen während der Ausführung des zugehörigen Prozesses nicht verändert werden. | |||
</p> | |||
<p> | |||
Ist es erforderlich, diese Seite in den Hintergrundspeicher auszulagern, oder kann die dafür benötigte Zeit eingespart werden? Erläutere deine Antwort! | |||
</p> | |||
</loop_task> | |||
</loop_area> | |||
</p> | |||
<br /> | |||
== Aufgabe 2 == | |||
<p> | |||
<loop_area type="task"> | |||
<loop_task title="Wenn eine Seite Daten enthält" id="5fa97889254f7"> | |||
<p> | |||
Eine zu ersetzende Seite enthält Daten. Diese Daten können verändert worden sein, sie können aber auch noch unverändert sein. | |||
</p> | |||
<p> | |||
Ist es erforderlich, diese Seite in den Hintergrundspeicher auszulagern, oder kann die dafür benötigte Zeit eingespart werden? Erläutere deine Antwort! | |||
</p> | |||
<p> | |||
Betrachte folgende Situationen: | |||
# Die Inhalte der Seite '''wurden verändert''', weil Werte in Speicherzellen des dieser Seite zugeordneten Seitenrahmens geschrieben wurden.<br /><br /> | |||
# Die Inhalte der Seite '''wurden nicht verändert''', zudem befindet sich eine Kopie der Seite im Hintergrundspeicher, weil sie zu einem früheren Zeitpunkt bereits einmal ausgelagert war. | |||
</p> | |||
</loop_task> | |||
</loop_area> | |||
</p> | |||
<br /> | |||
<p> | |||
Die Antwort zu der vorangegangenen Aufgabe sollte zeigen, dass die Zeit zur Auslagerung einer Seite eingespart werden kann, wenn | |||
</p> | |||
<p> | |||
* die Seite bereits im Hintergrundspeicher abgelegt ist, und | |||
* die Seite in ihrem Seitenrahmen nicht verändert (modifiziert) wurde. | |||
</p> | |||
<p> | |||
Jetzt muss das Betriebssystem also nur noch in der Lage sein herauszufinden, ob eine in einem Seitenrahmen befindliche Seite modifiziert wurde, oder nicht. Damit beschäftigt sich das folgende Kapitel. | |||
</p> | |||
<div class="autoit_do_not_print"> | |||
<br /> | |||
<hr /> | |||
<sub>Diese Seite steht unter der [http://creativecommons.org/licenses/by/3.0/deed.de Creative Commons Namensnennung 3.0 Unported Lizenz] [http://creativecommons.org/licenses/by/3.0/deed.de http://i.creativecommons.org/l/by/3.0/80x15.png] | |||
</sub> | |||
</div> |
Eine einfache Beschreibung des Ablaufs einer Seitenersetzung ist wie folgt:
Das Schreiben der zu ersetzenden Seite E in den Hintergrundspeicher kostet viel Zeit! Das ist schlecht für die Performance des Gesamtsystems.
Es ist deshalb sinnvoll, eine zu ersetzende Seite nur dann in den Hintergrundspeicher zu kopieren, wenn dies auch tatsächlich notwendig ist.
Eine Seite kann beispielsweise den Programmtext oder die Daten eines Prozesses enthalten.
Eine zu ersetzende Seite enthält lediglich Programmtext (also den ausführbaren Maschinencode mit den Befehlen) eines Prozesses. Diese Inhalte dürfen während der Ausführung des zugehörigen Prozesses nicht verändert werden.
Ist es erforderlich, diese Seite in den Hintergrundspeicher auszulagern, oder kann die dafür benötigte Zeit eingespart werden? Erläutere deine Antwort!
Eine zu ersetzende Seite enthält Daten. Diese Daten können verändert worden sein, sie können aber auch noch unverändert sein.
Ist es erforderlich, diese Seite in den Hintergrundspeicher auszulagern, oder kann die dafür benötigte Zeit eingespart werden? Erläutere deine Antwort!
Betrachte folgende Situationen:
Die Antwort zu der vorangegangenen Aufgabe sollte zeigen, dass die Zeit zur Auslagerung einer Seite eingespart werden kann, wenn
Jetzt muss das Betriebssystem also nur noch in der Lage sein herauszufinden, ob eine in einem Seitenrahmen befindliche Seite modifiziert wurde, oder nicht. Damit beschäftigt sich das folgende Kapitel.
Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz http://i.creativecommons.org/l/by/3.0/80x15.png