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.