[gesichtete Version] | [gesichtete Version] |
Keine Bearbeitungszusammenfassung |
Kwastg (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(11 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Der Begriff ''Swapping'' ist bereits aus [[Swapping: Aus- und Einlagern von kompletten Prozessen|einem vorangegangenen Kapitel]] bekannt. Seine Definition sei hier kurz wiederholt: | Der Begriff ''Swapping'' ist bereits aus [[Swapping: Aus- und Einlagern von kompletten Prozessen|einem vorangegangenen Kapitel]] bekannt. Seine Definition sei hier kurz wiederholt: | ||
</p> | </p> | ||
<br /> | <br /> | ||
== Definition: Swapping == | |||
<p> | <p> | ||
<loop_index id="5fa97882023fd">Swapping</loop_index> | |||
<loop_area type="definition"> | <loop_area type="definition"> | ||
<p> | <p> | ||
Zeile 18: | Zeile 18: | ||
Es soll an dieser Stelle klar werden, dass Swapping rein gar nichts mit der virtuellen Speicherverwaltung zu tun hat. | Es soll an dieser Stelle klar werden, dass Swapping rein gar nichts mit der virtuellen Speicherverwaltung zu tun hat. | ||
</p> | </p> | ||
<br /> | |||
<p> | |||
<loop_area type="notice"> | |||
<p> | |||
'''Swapping''' kommt nur bei Betriebssystemen zum Einsatz, die '''keine virtuelle Speicherverwaltung''' unterstützen! | |||
</p> | |||
</loop_area> | |||
</p> | |||
<br /> | |||
<p> | <p> | ||
Kommt in einem Betriebssystem die virtuelle Speicherverwaltung mit Hilfe der MMU zum Einsatz, so gibt es eine alternative Technik, das sogenannte '''Paging''', welches wesentlich flexibler als Swapping agiert. | Kommt in einem Betriebssystem die virtuelle Speicherverwaltung mit Hilfe der MMU zum Einsatz, so gibt es eine alternative Technik, das sogenannte '''Paging''', welches wesentlich flexibler als Swapping agiert. | ||
Zeile 23: | Zeile 34: | ||
<br /> | <br /> | ||
== Definition: Paging == | |||
<p> | <p> | ||
<loop_index id="5fa9788202406">Paging</loop_index> | |||
<loop_area type="definition"> | <loop_area type="definition"> | ||
<p> | <p> | ||
Zeile 50: | Zeile 62: | ||
</p> | </p> | ||
<p> | <p> | ||
Wenn in der | Wenn in der [[Swapping_und_Paging#Definition:_Paging|Definition des Begriffs Paging]] von ''Teilen eines Prozesses'' die Rede ist, dann ist klar, dass: | ||
</p> | </p> | ||
Zeile 57: | Zeile 69: | ||
<loop_area type="notice"> | <loop_area type="notice"> | ||
<p> | <p> | ||
Beim Paging werden virtuelle Seiten in | Beim Paging werden virtuelle Seiten in (physikalische) Seitenrahmen eingelagert, oder aus Seitenrahmen in den Hintergrundspeicher ausgelagert. | ||
</p> | </p> | ||
</loop_area> | </loop_area> | ||
Zeile 64: | Zeile 76: | ||
<br /> | <br /> | ||
<p> | <p> | ||
Bei der Durchführung des Paging können die bereits erwähnten '''Seitenfehler''' ('''Page faults''') auftreten. Weiterhin wird ein sogenanntes '''Seitenersetzungsverfahren''' angewendet. Beides wird in folgenden Kapiteln näher betrachtet. | Bei der Durchführung des Paging können die bereits erwähnten '''Seitenfehler''' ('''Page faults''') auftreten. Weiterhin wird ggf. ein sogenanntes '''Seitenersetzungsverfahren''' angewendet. Beides wird in folgenden Kapiteln näher betrachtet. | ||
</p> | </p> | ||
<p> | <p> | ||
Zunächst noch einige Aufgaben: | Zunächst noch einige Aufgaben: | ||
Zeile 73: | Zeile 84: | ||
<br /> | <br /> | ||
== Aufgabe 1 == | |||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Swapping vs. Paging I"> | <loop_task title="Swapping vs. Paging I" id="5fa978820240d"> | ||
<p> | <p> | ||
Erläutere die Unterschiede zwischen Swapping und Paging! | Erläutere die Unterschiede zwischen Swapping und Paging! | ||
* Wann kommt welche Technik zum Einsatz? | * Wann kommt welche Technik zum Einsatz? | ||
* Wie funktioniert die jeweilige Technik? | * Wie funktioniert die jeweilige Technik? | ||
* Was hat der [[DMA-Controller]] | </p> | ||
<p> | |||
* Was hat der [[DMA-Controller]] mit Swapping bzw. Paging zu tun? | |||
* Was hat Swapping mit einer Seitentabelle zu tun? | |||
</p> | </p> | ||
</loop_task> | </loop_task> | ||
Zeile 88: | Zeile 103: | ||
<br /> | <br /> | ||
== Aufgabe 2 == | |||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Swapping vs. Paging II"> | <loop_task title="Swapping vs. Paging II" id="5fa9788202415"> | ||
<p> | <p> | ||
Ergänze die folgenden Sätze: | |||
</p> | </p> | ||
<p> | <p> | ||
Zeile 106: | Zeile 122: | ||
<br /> | <br /> | ||
== Aufgabe 3 == | |||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Paging und die Seitentabelle"> | <loop_task title="Paging und die Seitentabelle" id="5fa978820241c"> | ||
<p> | <p> | ||
Eine (virtuelle) Seite befinde sich derzeit in einem Seitenrahmen eingelagert. Das Betriebssystem möchte diese Seite nun in den Hintergrundspeicher auslagern. | |||
</p> | </p> | ||
<p> | <p> |
Der Begriff Swapping ist bereits aus einem vorangegangenen Kapitel bekannt. Seine Definition sei hier kurz wiederholt:
Unter Swapping versteht man das Aus- bzw. Einlagern eines kompletten Prozesses.
Es soll an dieser Stelle klar werden, dass Swapping rein gar nichts mit der virtuellen Speicherverwaltung zu tun hat.
Swapping kommt nur bei Betriebssystemen zum Einsatz, die keine virtuelle Speicherverwaltung unterstützen!
Kommt in einem Betriebssystem die virtuelle Speicherverwaltung mit Hilfe der MMU zum Einsatz, so gibt es eine alternative Technik, das sogenannte Paging, welches wesentlich flexibler als Swapping agiert.
Unter Paging versteht man das Ein- bzw. Auslagern von Teilen eines Prozesses.
Aus den vorangegangenen Kapiteln ist ja bereits bekannt, dass man es bei der virtuellen Speicherverwaltung mit (virtuellen) Seiten bzw. (physikalischen) Seitenrahmen zu tun hat.
Eine Seite enthält einen bestimmten Teil eines Prozesses. Die Gesamtheit aller Seiten eines Prozesses repräsentiert somit den kompletten Prozess.
Eine (virtuelle) Seite kann einerseits in einem (physikalischen) Seitenrahmen eingelagert sein. Dann befindet sich die Seite im RAM und der zugehörige Prozess kann auf die Befehle und/oder Daten innerhalb der Seite zugreifen. Zum Einsatz kommt hier die Adressumrechnung mit Hilfe von MMU und Seitentabelle.
Andererseits kann eine (virtuelle) Seite auf einen Hintergrundspeicher (wie beispielsweise die Festplatte) ausgelagert sein. In diesem Fall steht die Seite nicht im RAM zur Verfügung, ein Zugriff des zugehörigen Prozesses auf Befehle/Daten schlägt fehl, es kommt zu einem sogenannten Page fault (Seitenfehler).
Die ausgelagerte Seite muss nun zunächst vom Hintergrundspeicher in einen Seitenrahmen eingelagert werden. Anschließend kann die Adressumrechnung mit Hilfe von MMU und Seitentabelle erfolgreich durchgeführt werden.
Wenn in der Definition des Begriffs Paging von Teilen eines Prozesses die Rede ist, dann ist klar, dass:
Beim Paging werden virtuelle Seiten in (physikalische) Seitenrahmen eingelagert, oder aus Seitenrahmen in den Hintergrundspeicher ausgelagert.
Bei der Durchführung des Paging können die bereits erwähnten Seitenfehler (Page faults) auftreten. Weiterhin wird ggf. ein sogenanntes Seitenersetzungsverfahren angewendet. Beides wird in folgenden Kapiteln näher betrachtet.
Zunächst noch einige Aufgaben:
Erläutere die Unterschiede zwischen Swapping und Paging!
Ergänze die folgenden Sätze:
Eine (virtuelle) Seite befinde sich derzeit in einem Seitenrahmen eingelagert. Das Betriebssystem möchte diese Seite nun in den Hintergrundspeicher auslagern.
Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz http://i.creativecommons.org/l/by/3.0/80x15.png