virtueller Speicher - Trennung des logischen Speichers der Anwendung vom physikalischen Speicher

Kapitel 9 virtueller Speicher zum Teil nach Operating System Concepts, Addison-Wesley  1994 Silberschatz & Galvin  1994 Seite 1 Kapitel 9: virtu...
Author: Viktoria Hauer
6 downloads 2 Views 43KB Size
Kapitel 9

virtueller Speicher

zum Teil nach Operating System Concepts, Addison-Wesley  1994 Silberschatz & Galvin  1994

Seite 1

Kapitel 9: virtueller Speicher - Seiten-Swap

Hintergrund • virtueller Speicher - Trennung des logischen Speichers der Anwendung vom physikalischen Speicher. Der Adressraum wird auf dem externen Speicher realisert. Nur ein Teil des Programms muß zur Ausführung im Speicher sein. Der logische Adressraum kann viel größer sein als der physikalische Adreßraum. Seiten oder Segmente müssen ein- und ausgelagert werden. • Virtueller Speicher kann implementiert werden durch: - Demand paging (Seitenverwaltung mit Swap) - Demand segmentation (Segmentverwaltung mit Swap)

Demand Paging Für jeden Prozess existiert im Prozessdeskriptor eine Tabelle oder eine sonstige Datenstrukur, in der aufgeführt ist, wo sich die Seiten des Adressraums befinden. z.B. Windows NT: die Seiten können zum Teil in normalen Dateien sein und zum Teil in der Auslagerungsdatei. • Eine Seite wird nur dann in den Speicher gebracht, wenn sie benötigt wird. • Eine Seite wird benötigt, wenn ein Bezug auf die Seite stattfindet. • Ist die Referenz ungültig, dann erfolgt ein Programmabbruch. • Ist die Seite nicht im Speicher, dann gibt es einen Interrupt mit der Bedingung „Seitenfehler“ und die Seite wird in den Speicher geladen.

Kapitel 9

virtueller Speicher

zum Teil nach Operating System Concepts, Addison-Wesley  1994 Silberschatz & Galvin  1994

Seite 2

Gültig/Ungültig - Bit • Jeder Eintrag in der Seitentabelle enthält das Gültig/Ungültig-Bit. (1 im Speicher, 0 nicht im Speicher) • Zu Beginn hat das Gültig/Ungültig-Bit den Wert 0. • Beispiel .. Rahmen #

gültig-ungültig Bit

.

.....

0 0 0 1 1 1 1

Seitentabelle

• Adreßumsetzung: Wenn das gültig-ungültig Bit in dem Eintrag der Seitentabelle =0 => Seitenfehler-Bedingung (page fault). Seitenfehler 1. Wenn es überhaupt einen Bezug auf eine Seite gibt, der erste Bezug erzeugt einen Interrupt aufgrund der Seitenfehlerbedingung. 2. Das Betriebssystem sieht in einer anderen Tabelle nach und entscheidet: a) ungültiger Bezug => Abbruch. b) momentan nicht im Speicher 3. Hole einen leeren Rahmen. 4. Bringe die Seite in den Rahmen. 5. Trage die Rahmennummer in die Seitentabelle ein, gültig-ungültig Bit = 1. 6. Die Ausführung der Instruktion wird erneut ab Beginn oder ab einem Zwischenpunkt gestartet: entsprechende Hardwareunterstützung nötig! Was geschieht, wenn kein Rahmen frei ist? • Seitenersetzung - suche eine Seite im Speicher, die gerade nicht benötigt wird und lagere sie aus. Algorithmus ist nötig.

Kapitel 9

virtueller Speicher

zum Teil nach Operating System Concepts, Addison-Wesley  1994 Silberschatz & Galvin  1994

Seite 3

Güte des Algorithmus - Gewünscht wird ein Algorithmus, der eine minimale Zahl von Seitenfehlern zur Folge hat.

Güte eines Demand Paging • Seitenfehlerrate 0