Speicher Betriebssysteme Hermann Härtig TU Dresden Aufgaben der Speicherverwaltung ! ! Bereitstellung von Adressräumen Aufbau von Adressräumen durch Zuordnung logischer Objekte ! Verwaltung des Betriebsmittels Hauptspeicher ! Schutzmechanismen ! Organisation gemeinsamer Nutzung („Sharing“) physischen Speichers und logischer Objekte Betriebssysteme WS 2014, Speicher 2 Hermann Härtig, TU Dresden Wegweiser Einführung Elementare Techniken Virtueller Speicher (Paging) ! ! ! ! Anliegen - Begriffe - Vorgehen Adressumsetzung Seitenersetzung Arbeitsmengenmodell Ergänzungen ! ! Betriebssysteme WS 2014, Speicher Segmentierung Caches 3 Hermann Härtig, TU Dresden Statisch ! ➔ ‣ ‣ ! ! Statische Speicherverwaltung d. h. keine Ein-/Auslagerung von Programmen/Daten Einfachrechner (MS-DOS Version ??) Gerätesteuerungen (embedded systems) Monoprogramming (ein Programm gleichzeitig) Programme werden nacheinander geladen und ausgeführt 0xFF.. BIOS (Gerätetreiber) Benutzerprogramm 0x0 Betriebssysteme WS 2014, Speicher BS 4 Hermann Härtig, TU Dresden „Multiprogramming“ Mehrere Benutzer-Programme gleichzeitig im Rechner; für jedes Benutzerprogramm gibt es einen oder mehrere Prozesse Motivation (vgl. Kapitel zu Threads): • mehrere Benutzer eines Rechners (multiuser) • mehrere Benutzerprozesse eines Benutzers • Benutzerprozesse und Systemprozesse Multiprogramming vs. parallele Threads/Prozesse: • parallele Prozesse Voraussetzung für Multiprogramming (mit oder ohne erzwungenen Prozesswechel) • denkbar ist Monoprogramming mit vielen parallelen Prozessen z. B.: die ersten BS für Parallelrechner erlaubten nur ein Benutzerprogramm zur gleichen Zeit, das aber aus vielen Prozessen/Threads bestehen konnte Betriebssysteme WS 2014, Speicher 5 Hermann Härtig, TU Dresden Feste oder Variable Speicher-Partitionierung Fragestellungen ! Programm4 Relokation Programme verwenden unterschiedliche Adressen, wenn sie in unterschiedlichen Partitionen ablaufen ➔ Abhilfe: Umsetzen der Adressen ‣ beim/vor dem Laden (Software) ‣ zur Laufzeit (Hardware) ! Schutz der Partitionen voreinander Abhilfe: ‣ Überprüfung der Adressen zur Laufzeit (Hardware) ➔ Betriebssysteme WS 2014, Speicher leer Programm2 leer Programm1 Betriebssystem Limitationen • Menge und Größe der Programme durch Real-Speicher • Auslastung 6 Hermann Härtig, TU Dresden Einfaches Modell: Basis- und Limit-Register CPU Programm4 LR leer BR Programm2 leer gesamte Adressierung relativ zu Basis-Register z. B.: load R, 100 Zugriff auf: BR+100 ! Programm1 Betriebssystem Unterbindung aller Zugriffe auf Bereiche außerhalb [BR,LR] ! ➔ Konsequenz für Implementierung eines Prozess-Systems: bei Umschaltung müssen auch BR und LR umgeschaltet werden Betriebssysteme WS 2014, Speicher 7 Hermann Härtig, TU Dresden Wachsen von Partitionen B B A A Algorithmen zur „Minimierung“ des Verschnitts ! First fit, Best fit, Buddy, ... Verwaltung ! Bitmaps, Listen Betriebssysteme WS 2014, Speicher 8 Hermann Härtig, TU Dresden Swapping: Ein-/Auslagern ganzer Prozesse Vorgehen Partitionen von blockierten Prozessen werden auf persistenten Speicher ausgelagert (z. B. auf Platte) und bei Gelegenheit wieder eingelagert. Mehrebenen-Scheduling auch bereite Prozesse werden ausgelagert Fragestellungen • wachsende Partitionen • Speicherverschnitt (externe Fragmentierung) Betriebssysteme WS 2014, Speicher 9 Hermann Härtig, TU Dresden Partitionen: Nachteile und Probleme ! Verschnitt hoch ! Programmstartzeiten ! ! ! Limitation der Größe eines Prozesses durch verfügbaren Hauptspeicher Ein-/Auslagerungszeit „ruhende“ Teile Platzbedarf auf Externspeicher Betriebssysteme WS 2014, Speicher 10 Hermann Härtig, TU Dresden Overlays − Überlagerungstechnik Beliebig große Programme → „Overlays“ Programmierer organisiert seine Programme und Daten in Stücken, von denen nicht zwei gleichzeitig im Hauptspeicher sein müssen Hauptspeicher Hauptprogramm Overlaytabelle Overlay1 Overlay2 Overlay3 Betriebssysteme WS 2014, Speicher 11 Hermann Härtig, TU Dresden Wegweiser: Virtueller Speicher Anliegen – Begriffe - Vorgehen Adressumsetzung Seitenersetzung Arbeitsmengenmodell Betriebssysteme WS 2014, Speicher 12 Hermann Härtig, TU Dresden Adressraum: Virtuell ./. Physisch Begriff allgemein ! Menge direkt zugreifbarer Adressen und deren Inhalte ! Größe bestimmt durch Rechner-Architektur Physischer Adressraum (manchmal auch “Realer AR”): ! durch Adressleitungen gebildeter AR, z. B. am Speicher- oder Peripherie-bus eines Rechners ! Abbildung der Prozessor-Adressen auf die vorhandenen Speicherbausteine und E/A-Controller ! Adressumsetzung statisch durch HW-Adressdecoder Virtueller (logischer) Adressraum eines Prozesses ! dem Prozess zugeordneter Adressraum ! Adressumsetzung durch MMU, veränderliche Abbildungsvorschrift Betriebssysteme WS 2014, Speicher 13 Hermann Härtig, TU Dresden Physische Adressräume CPU Bridge I/O I/O MEM Betriebssysteme WS 2014, Speicher 14 Hermann Härtig, TU Dresden Beispiele für die Nutzung virtueller Adressräume Unix-Prozesse (konventionell) Programm Daten ➔ ➔ Keller BS Logisch zusammenhängende Adressbereiche nennen wir Regionen Speicherobjekte werden Regionen zugeordnet („Mapping“) Betriebssysteme WS 2014, Speicher 15 Hermann Härtig, TU Dresden Virtueller Speicher Wünsche an Adressräume und ihre Implementierung ! groß (soweit die Hardware zulässt, z. B. jeder bis zu 4 GB) ! frei teilbar und nutzbar ! Fehlermeldung bei Zugriff auf nicht belegte Bereiche ! Schutz vor Zugriffen auf andere Adressräume ! Einschränken der Zugriffsrechte auf bestimmte Bereiche (z. B. Code nur lesen) ! sinnvoller Einsatz des (Haupt-)Speichers ‣ damit Speicher anderweitig nutzbar ‣ wegen kurzer Ladezeiten ‣ ohne großen Aufwand für Programmierer Betriebssysteme WS 2014, Speicher 16 Hermann Härtig, TU Dresden Prinzipien der virtuellen Speichers Idee Zuordnen von Speicherobjekten (z. B. Segmente, Dateien, Datenbanken, Bildwiederholspeicher) bzw. Ausschnitten davon zu Regionen von Adressräumen Basis: Partitionierung • des Adressraums in Seiten (Pages) • der Hauptspeichers in Kacheln (auch Rahmen oder Page Frames genannt) • des Hintergrundspeichers in Blöcke (Blocks) in Stücke gleicher Größe ➔ Organisation der Zuordnung der Stücke zueinander durch Hardware und Betriebssystem Betriebssysteme WS 2014, Speicher 17 Hermann Härtig, TU Dresden Voraussetzung: Lokalitätsprinzip Beobachtung Der von einem Prozess innerhalb eines bestimmten Zeitintervalls benötigte Teil seines Adressraumes verändert sich nur mehr oder weniger langsam. Ursachen • sequentielle Arbeit eines VON-NEUMANN-Rechners • Programmcode enthält Schleifen • Programmierung in Modulen • Zugriff auf gruppierte Daten Betriebssysteme WS 2014, Speicher 18 Hermann Härtig, TU Dresden Virtueller Speicher − Begriff Der virtuelle Speicher ist eine Technik, die jedem Prozess einen eigenen, vom physischen Hauptspeicher unabhängigen logischen Adressraum bereitstellt, basierend auf ! einer Partitionierung von Adressräumen in Einheiten einheitlicher Größe ! einer Adressumsetzung durch Hardware (und Betriebssystem) ! der Nutzung eines externen Speichermediums ! einer Ein- und Auslagerung von Teilen des logischen Adressraumes eines Prozesses durch Betriebssystem Betriebssysteme WS 2014, Speicher 19 Hermann Härtig, TU Dresden Eine denkbare Situation Programm Daten BSS Keller BS unbenutzt, ungültig gerade im Hauptspeicher gerade nicht im Hauptspeicher, aber ein gültiger Bereich – z. B. ausgelagert auf Platte Betriebssysteme WS 2014, Speicher 20 Hermann Härtig, TU Dresden Virtueller Speicher im Betriebssystem Teilaufgaben • Seitenfehler-Behandlung • Verwaltung des Betriebsmittels Hauptspeicher • Aufbau der Adressraumstruktur (Speicherobjekte und Regionen) • Bereitstellung spezifischer Speicherobjekte • Interaktion Prozess- und Speicher-Verwaltung Betriebssysteme WS 2014, Speicher 21 Hermann Härtig, TU Dresden Wegweiser: Virtueller Speicher Anliegen – Begriffe - Vorgehen Adressumsetzung Seitenersetzung Arbeitsmengenmodell Betriebssysteme WS 2014, Speicher 22 Hermann Härtig, TU Dresden Seiten, Kacheln, Blöcke Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Hauptspeicher z. B. 4 GB Betriebssysteme WS 2014, Speicher BS Software Plattenspeicher z. B. 500 GB 23 Hermann Härtig, TU Dresden Rechnerarchitektur: Addressumsetzung etc. CPU E/AGeräte V virtuelle Adresse MMU MEM IO MMU P physische Adresse Aufgaben einer MMU (Memory Management Unit) ! Abbildung: virtuelle → physische Adresse ! Schutz bestimmter Bereiche (lesen/schreiben) ! Betriebssystemaufruf bei abwesenden/geschützten Seiten → Seitenfehler (page fault) ! Schutz der Adressräume untereinander Betriebssysteme WS 2014, Speicher 24 Hermann Härtig, TU Dresden Prinzipielle Arbeitsweise MMU (Tanenbaum) V 001010010110 physische Adresse P Betriebssysteme WS 2014, Speicher virtuelle Adresse 25 Hermann Härtig, TU Dresden Prinzipielle Arbeitsweise einer MMU CPU T4 V 001010010110 Seiten# Offset Seitentabelle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Kachel# Present Rechte 010 1 0 001 1 0 110 1 0 000 1 0 100 1 1 011 1 1 000 0 1 000 0 1 000 0 1 101 1 1 000 0 1 111 1 1 000 0 1 000 0 1 000 0 1 000 0 1 virtuelle Adresse Zeiger physische Adresse P Betriebssysteme WS 2014, Speicher 26 Hermann Härtig, TU Dresden Prinzipielle Arbeitsweise einer MMU CPU T4 V 001010010110 Seiten# Offset Seitentabelle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Kachel# Present Rechte 010 1 0 001 1 0 110 1 0 000 1 0 100 1 1 011 1 1 000 0 1 000 0 1 000 0 1 101 1 1 000 0 1 111 1 1 000 0 1 000 0 1 000 0 1 000 0 1 virtuelle Adresse Zeiger Tabellenindex 110 physische Adresse P Betriebssysteme WS 2014, Speicher 27 Hermann Härtig, TU Dresden Prinzipielle Arbeitsweise einer MMU CPU T4 V 001010010110 Seiten# Offset Seitentabelle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Kachel# Present Rechte 010 1 0 001 1 0 110 1 0 000 1 0 100 1 1 011 1 1 000 0 1 000 0 1 000 0 1 101 1 1 000 0 1 111 1 1 000 0 1 000 0 1 000 0 1 000 0 1 virtuelle Adresse Zeiger Tabellenindex 110 Kopie Kachel# Offset P 1 1 0 1 0 0 1 0 1 1 0 physische Adresse Betriebssysteme WS 2014, Speicher 28 Hermann Härtig, TU Dresden Aufbau eines Seitentabelleneintrags caching disabled modified present page frame number referenced protection Seiten-Attribute ! present Seite befindet sich im Hauptspeicher ! modified schreibender Zugriff ist erfolgt („dirty“) ! referenced irgendein Zugriff ist erfolgt ! caching ein/aus (z. B. wegen E/A) ! protection erlaubte Art von Zugriffen in Abhängigkeit von CPU-Modus Betriebssysteme WS 2014, Speicher 29 Hermann Härtig, TU Dresden Virtueller Speicher: Hardware-Anteil ➔ Bei jedem Speicherzugriff: Überprüfung von Präsenz und Rechten Ablauf eines Seitenfehlers (exception): • Zurücksetzen des auslösenden Befehls • Umschaltung des Prozessormodus und des Kellers • Ablegen einer Beschreibung des Zustandes, der auslösenden Adresse und der Zugriffsart auf dem Keller • Sprung in den Kern → Seitenfehlerbehandlung durch Betriebssystem • iret (letzte Instruktion des Handlers) Betriebssysteme WS 2014, Speicher 30 Hermann Härtig, TU Dresden Beispiel Adressräume z. B. 4 GB Seite Kachel/Rahmen MMU Hardware SI CX: 4096 LDS LES MOV REP Hauptspeicher z. B. 512 MB Betriebssysteme WS 2014, Speicher DI 31 SI, [Adr. 1] DI, [Adr. 2] CX, Length MOVSB Hermann Härtig, TU Dresden MMU-Probleme: Größe und Geschwindigkeit Problem 1: Größe – ein Beispiel Realspeicher : 256 MB virtuelle Adressen: 32 Bit Seitengröße: 4 KB Aufteilung virt. Adr.: 20 Bit Index in der Seitentabelle 12 Bit innerhalb einer Seite (Offset) ➔ ➔ Größe der Seitentabelle für einen Adressraum: 220 *4B → 4 MB Bei 32 Prozessen 4*32 MB für die Seitentabellen ! Problem 2: Geschwindigkeit der Abbildung – ein Beispiel CPU-Takt : 1 GHz → 2 Instruktionen in 1ns (4 Speicherzugriffe) Speichertakt: 256 MHz → 4ns ( ... 70ns) Betriebssysteme WS 2014, Speicher 32 Hermann Härtig, TU Dresden Problem 1: Baumstrukturierte Seitentabellen CPU T7 V PageDirIdx Seitennummer PageTableIdx P Kachelnummer Zeiger Betriebssysteme WS 2014, Speicher Tabellenindex 33 Offset Offset Kopie Hermann Härtig, TU Dresden Eigenschaften baumstrukturierter Seitentab. ● ● ● ● ● beliebig schachtelbar → 64-Bit-Adressräume! Seitentabellen nur bei Bedarf im Hauptspeicher bei Zugriff auf Seitentabelle kann Seitenfehler auftreten Zugriff auf Hauptspeicher wird noch langsamer 2 oder mehr Umsetzungsstufen Hierarchiebildung möglich (nächste Folie) z. B. durch Schreibsperre in höherstufiger Tabelle ist ganzer Adressbereich gegen Schreiben schützbar Gemeinsame Nutzung („Sharing“) Seiten und größere Bereiche in mehreren Adressräumen gleichzeitig Betriebssysteme WS 2014, Speicher 34 Hermann Härtig, TU Dresden Hierchiebildung baumstrukturierte Seitentab. CPU T7 V PageDirIdx PageTableIdx Schreibschutz sperrt eine einzelne Seite Schreibschutz sperrt gesamten durch eine Untertabelle definierten Bereich P Kachelnummer Zeiger Betriebssysteme WS 2014, Speicher Offset Tabellenindex 35 Offset Kopie Hermann Härtig, TU Dresden Problem 2: Schnellere Abbildung CPU TLB V virtuelle Adresse V P 1100 0110 1110 0001 1001 1000 MMU P physische Adresse 0000 1101 1100 0010 0110 1101 MEM Translation Look Aside Buffer (TLB) ! ! schneller Speicher für schon ermittelte Abbildungen virtueller auf physische Adressen wird vor Durchsuchen der Seitentabellen inspiziert Betriebssysteme WS 2014, Speicher 36 Hermann Härtig, TU Dresden Per SW implementierte Seitentabellen z. B. Alpha ! Zugriff nur über TLB, bei TLB-Fehler („TLB-miss“) → Seitenfehler ! Seitenfehlerbehandlung in SW lädt TLB neu ➔ Vorteil: total flexibel ➔ Nachteil: häufigere SW-Seitenfehlerbehandlung Betriebssysteme WS 2014, Speicher 37 Hermann Härtig, TU Dresden Nochmal Problem 1 Problem: riesige Seitentabellen auch bei baumorientierten Seitentabellen ● bei CPU mit großen Adressräumen (64-Bit-Adressen) ● bei lose besetzten Adressräumen ● V CPU P T7 Betriebssysteme WS 2014, Speicher 38 Hermann Härtig, TU Dresden Seitentabellen Adressräume Seite Kachel / Rahmen MMU Hardware Hauptspeicher Betriebssysteme WS 2014, Speicher 39 Hermann Härtig, TU Dresden Inverse Seitentabellen (Hashtabelle ) Adressräume Seite Kachel / Rahmen MMU Hardware Hauptspeicher Betriebssysteme WS 2014, Speicher Zu jeder Kachel wird gespeichert, welches virtuelle Adresse sie gerade enthält. Bei Zugriff auf virtuelle Adresse muss die Tabelle durchsucht werden um herauszufinden, in welcher Kachel die Seite steht. 40 Hermann Härtig, TU Dresden Vergleich der zwei Konzepte Seiten-Kachel-Tabelle Kachel-Seiten-Tabelle Seiten# 0 1 2 3 4 5 6 7 8 Seiten# Rahmen# Attribs 0001 0000 1001 0110 0111 1100 1101 0110 0010 ... Betriebssysteme WS 2014, Speicher 0 1 2 3 4 5 6 7 8 41 PID 1 1 1 2 7 1 1 2 Seiten# Attribs 0001 0000 1000 1000 0001 0000 ! 0100 0010 ... Hermann Härtig, TU Dresden Inverse Seitentabelle Grundidee ! zu jeder Kachel wird Prozess-Id, Seitennummer geführt ! bei Zugriff („TLB-miss“) wird gesucht Implementierung als Hash-Tabellen (Hashed Page Tables) ! ! Vorteile: ‣ kleine Seitentabellen ‣ abhängig von Anzahl Kacheln unabhängig von Größe des Adressraums Nachteile: ‣ keine Hierarchiebildung (z. B. Schreibschutz für 4 MB) ‣ Sharing aufwändig ‣ Suchaufwand Betriebssysteme WS 2014, Speicher 42 Hermann Härtig, TU Dresden Überlappende Adressräume - „Sharing“ Seite Kachel / Rahmen Block MMU Hardware Betriebssysteme WS 2014, Speicher BS Software 43 Hermann Härtig, TU Dresden Sharing bei mehrstufigen Seitentabellen identische Inhalte der Seitentabellen Betriebssysteme WS 2014, Speicher 44 Hermann Härtig, TU Dresden Sharing bei mehrstufigen Seitentabellen Betriebssysteme WS 2014, Speicher 45 Hermann Härtig, TU Dresden Spezieller Einsatz von Sharing Verzögertes Kopieren (lazy copying, copy on write) ● ● „Kopieren“: ● Eintragen des zu kopierenden Bereichs an Zieladresse ● beide gegen Schreiben schützen „faules“ Kopieren: ● beim ersten schreibenden Zugriff → Seitenfehler ● Behandlung: ● neue Kachel allokieren ● physisch kopieren ● neue Kachel ohne Schreibschutz in Seitentabelle eintragen ● sehr wichtig für effiziente Botschaften, Rücksetzpunkte etc. ● gemeinsame Nutzung von Daten/Programmen Betriebssysteme WS 2014, Speicher 46 Hermann Härtig, TU Dresden Gemeinsames Nutzen von Daten share A X A # 2 Attrib p, rw Y Z # Attrib 2 p, rw ! neuen MMU Eintrag an Zieladresse X A Z Betriebssysteme WS 2014, Speicher 47 Hermann Härtig, TU Dresden Echtes Kopieren copy A X Z A # Attrib p, rw 22 p, rw # ! neue Kachel besorgen ! Kacheln kopieren Attrib ! 5 p, rw neuen Eintrag in die Seitentabelle für Zieladresse copy Y X A A Z Betriebssysteme WS 2014, Speicher 48 Hermann Härtig, TU Dresden Verzögertes Kopieren lazy copy A X A # 2 Attrib p,p, r, cow rw Y Z # Attrib 2 p, r, cow ! ! Ändern des MMU-Eintrags an der Quelladresse: rw → (r, cow) neuen MMU-Eintrag an Zieladresse: (r, cow) X A Z Betriebssysteme WS 2014, Speicher 49 Hermann Härtig, TU Dresden Verzögertes Kopieren write A X A # 2 Attrib p, r, cow Y Z # Attrib 2 p, r, cow ! schreibender Zugriff → Seitenfehler X A Z Betriebssysteme WS 2014, Speicher 50 Hermann Härtig, TU Dresden Verzögertes Kopieren write A X A # 2 Attrib p, r, cow Z # Attrib 5 p, rw ! ! ! schreibender Zugriff → Seitenfehler Das cow-Attribut bewirkt, dass eine neue Kachel allokiert und der Inhalt physisch kopiert wird neuen MMU-Eintrag an Zieladresse: rw copy Y X A A Z Betriebssysteme WS 2014, Speicher 51 Hermann Härtig, TU Dresden Verzögertes Kopieren write A X B # 2 Attrib p, r, cow Z # Attrib 5 p, rw ! ! ! ! Y X B A schreibender Zugriff → Seitenfehler Das cow-Attribut bewirkt, dass eine neue Kachel allokiert und der Inhalt physisch kopiert wird neuen MMU-Eintrag an Zieladresse: rw danach erfolgt der Schreibzugriff Z Betriebssysteme WS 2014, Speicher 52 Hermann Härtig, TU Dresden Verzögertes Kopieren write A X B # 2 Attrib p, r, cow Y Z # Attrib 5 p, rw ! ➔ schreibender Zugriff → Seitenfehler ist der Prozess der alleinige Besitzer der Kachel, wird lediglich das Schreibrecht gesetzt X B A Z Betriebssysteme WS 2014, Speicher 53 Hermann Härtig, TU Dresden Verzögertes Kopieren write C X B # 2 Attrib p, rw Z # Attrib 5 p, rw ! ➔ ! Y schreibender Zugriff → Seitenfehler ist der Prozess der alleinige Besitzer der Kachel, wird lediglich das Schreibrecht gesetzt danach erfolgt der Schreibzugriff X B C Z Betriebssysteme WS 2014, Speicher 54 Hermann Härtig, TU Dresden Verzögertes Kopieren großer Bereiche lazy copy Betriebssysteme WS 2014, Speicher 55 Hermann Härtig, TU Dresden Verzögertes Kopieren großer Bereiche cow Betriebssysteme WS 2014, Speicher cow 56 Hermann Härtig, TU Dresden Verzögertes Kopieren großer Bereiche cow cow cow cow cow cow Betriebssysteme WS 2014, Speicher 57 Hermann Härtig, TU Dresden Verzögertes Kopieren großer Bereiche cow cow r cow cow Betriebssysteme WS 2014, Speicher cow 58 Hermann Härtig, TU Dresden Sharing und inverse Seitentabellen Adressräume Seite Kachel / Rahmen MMU Hardware schwierig, wenn nur eine virtuelle Adresse pro Kachel Hauptspeicher Betriebssysteme WS 2014, Speicher 59 Hermann Härtig, TU Dresden MMU-Ansteuerung: einige wichtige Details Aufgaben ● ● ● Manipulation und Interpretation der MMU-Daten Atomare Operationen: ● Eintrag einer Seite in einen Adressraum ● Verdrängung einer Seite aus einem oder mehreren Adressräumen Propagieren von Attributen Betriebssysteme WS 2014, Speicher 60 Hermann Härtig, TU Dresden Propagieren von Attributen ! ! ➔ Kacheln können mehreren Seiten mehrerer Adressräume zugeordnet sein Attribute used, modified werden durch Hardware für Seiten (nicht Kacheln) gesetzt notwendig: ! Propagation der Attribute von Seiten zu Kacheln ! Rückkehrabbildung: welchen Seiten ist eine gegebene Kachel zugeordnet ! ! ➔ Betriebssysteme WS 2014, Speicher 61 Seite in Adressraum A: used, not modified Seite in Adressraum B: not used, modified Kachel: used, modified Hermann Härtig, TU Dresden Propagation der Seitenattribute R M R M OR R M Betriebssysteme WS 2014, Speicher 62 Hermann Härtig, TU Dresden Umkehrabbildung: Kacheln zu Adressraum ● ● ● für Attributpropagation bei Verdrängung einer Kachel: ● Auffinden der Seitentabellen, aus denen Kachel ausgetragen werden muss Später: ● Identifizierung des Speicherobjektes, damit Inhalt weggeschafft werden kann Betriebssysteme WS 2014, Speicher 63 Hermann Härtig, TU Dresden Prozesse und Speicher Prozess-Zustand ● Seitentabellen ● mehrere parallele Aktivitäten je Adressraum: Threads Prozess-Umschaltung ● TLB behandeln (falls kein Prozess-Identifier in TLB → löschen) ● Caches ● Botschaftenimplementierung Betriebssysteme WS 2014, Speicher 64 Hermann Härtig, TU Dresden Wegweiser: Virtueller Speicher Anliegen – Begriffe – Vorgehen Adressumsetzung Seitenersetzung Arbeitsmengenmodell Betriebssysteme WS 2014, Speicher 65 Hermann Härtig, TU Dresden Virtueller Speicher im Betriebssystem Teilaufgaben ● Seitenfehler-Behandlung ● Verwaltung des Betriebsmittels Hauptspeicher ● Aufbau der Adressraumstruktur (Speicherobjekte und Regionen) ● Bereitstellung spezifischer Speicherobjekte ● Interaktion Prozess- und Speicher-Verwaltung Betriebssysteme WS 2014, Speicher 66 Hermann Härtig, TU Dresden Seitenfehlerbehandlung (Überblick) trap (HW) { ! ! ! ! ! ! ! ! rette Register Ermittlung der Seitenfehleradresse Regionmanager: Speicherobjekt bestimmen freie Kachel beschaffen falls nötig, alten Kachelinhalt zurückschreiben (Prozess wartet) Seiteninhalt in Kachel laden (Prozess wartet) Seitentabelle aktualisieren return from trap (Instruktion wird wieder aufgesetzt) } Betriebssysteme WS 2014, Speicher 67 Hermann Härtig, TU Dresden Hauptspeicher: Betriebsmittelverwaltung Aufgaben ● gewährt und entzieht bei Knappheit Kacheln ● Buchführung → wo sind welche Kacheln? ● welche Kacheln werden verdrängt? Seitenaustauschverfahren ● Seitenverdrängung ● Seitenersetzung Betriebssysteme WS 2014, Speicher 68 Hermann Härtig, TU Dresden Seitenersetzung allgemein BS-seitig BS-seitig void init(Kachel) { Kachel.modified = 0; Kachel.referenced = 0; } void pagefault(Seiten_NR) { XXX siehe Folie 67 … NewK = getFreePageframe(); if (!NewK) { //keine Kachel mehr frei NewK = ReplacementPolicy(); Hardwareseitig ... Prozesse arbeiten ... HW setzt referenced- und modified-Flag } //NewK ist jedoch noch in //Benutzung if (NewK.modified) writeToDisk(NewK, ...); removeFromPT(NewK); //aus alten AddrRäumen entfernen NewContent(NewK); //z.B. fillWithZero //oder readFromDisk(Seiten_Nr,NewK) insertIntoPT(Seiten_NR, NewK); //Kachel im richtigen AR, bei der //richtigen SeitenNR einfügen Betriebssysteme WS 2014, Speicher 69 Hermann Härtig, TU Dresden Seitenersetzungsverfahren Problem Eine Kachel wird benötigt, eine Seite ist zu verdrängen. ➔ wie und welche ?? Wie wird verdrängt? Kachel aus Seitentabelle austragen (TLB-Eintrag löschen) falls modifiziert → zurückschreiben auf persistenten Speicher Welche Seite wird verdrängt? ! optimal: die Seite wird verdrängt, die am spätesten in der Zukunft benutzt werden wird ! stattdessen: ! ! Betrachtung der Vergangenheit (verschiedene Algorithmen) Ausnutzung des Lokalitätsverhaltens („Arbeitsmengen-Modell“) Betriebssysteme WS 2014, Speicher 70 Hermann Härtig, TU Dresden Generelle Überlegung ! ! wähle beliebige Kachel im System nach folgender Priorität: Inspektionsintervalle für „benutzt“ und „modifiziert“ Zurücksetzen des “benutzt” in jedem Intervall 1) nicht benutzt, nicht modifiziert 2) benutzt, nicht modifiziert 3) nicht benutzt, modifiziert Betriebssysteme WS 2014, Speicher 4) benutzt, modifiziert 71 Hermann Härtig, TU Dresden FIFO: First in first out Verdränge älteste Seite ● d.h. Inhalt der Kachel, die schon am längsten ihren jetzigen Inhalt hat Vorteil ● ● keine Information über tatsächliches Referenzverhalten nötig einfach implementierbar Nachteil ● ignoriert Lokalitätsverhalten ● BELADY's Anomalie Betriebssysteme WS 2014, Speicher 72 Hermann Härtig, TU Dresden LRU: Least Recently Used Verdränge am längsten nicht genutzte Seite Vorteil ● gilt als gute Näherung für optimalen Algorithmus Nachteil ● ● ● aufwendige Realisierung jeder Speicherzugriff müsste berücksichtigt werden ‣ HW-Unterstützung wird benötigt Annäherungen per Software Betriebssysteme WS 2014, Speicher 73 Hermann Härtig, TU Dresden LRU Annäherung: Clock-Algorithmus L A B C K while (Kachel[i].referenced) { Kachel[i].referenced = 0; //Flag löschen i = (i + 1) % FRAME_COUNT; //Zeiger weiterdrehen } //Seite in Kachel Nummer i //verdrängen Betriebssysteme WS 2014, Speicher 74 D J E I H G F Hermann Härtig, TU Dresden LRU Annäherung: Aging ● Kachel mit ältestem Inhalt wird verdrängt ● bessere Näherung: statt „0“ „1“ → feineres Altersraster ● ● Analogie: Geburtsjahr ● 1992 ● 1995 ● 1996 niedrige Zahl → hohes Alter Betriebssysteme WS 2014, Speicher 75 Hermann Härtig, TU Dresden LRU Annäherung: Aging void init(Kachel) { Kachel.modified = 0; Kachel.referenced = 0; } Hardware ... Prozesse arbeiten ... HW setzt referenced- und modified-Flag Betriebssysteme WS 2014, Speicher BS-Thread: // at every „Tick“ call: void Aging(){ for(i = 0; i < maxK; i++) { SetAge(Kachel[i].referenced); // nächste Folien Kachel[i].referenced = 0; } } 76 Hermann Härtig, TU Dresden LRU Annäherung: Aging 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Betriebssysteme WS 2014, Speicher 77 Hermann Härtig, TU Dresden LRU Annäherung: Aging A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D 0 0 0 0 0 Betriebssysteme WS 2014, Speicher 78 Hermann Härtig, TU Dresden LRU Annäherung: Aging Tick 1 A 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D 1 0 0 0 0 Betriebssysteme WS 2014, Speicher 79 Hermann Härtig, TU Dresden LRU Annäherung: Aging A 1 0 0 0 0 B 0 0 0 0 0 C 0 0 0 0 0 D 1 0 0 0 0 Betriebssysteme WS 2014, Speicher 80 Hermann Härtig, TU Dresden LRU Annäherung: Aging Tick 2 A 0 1 0 0 0 B 1 0 0 0 0 C 1 0 0 0 0 D 1 1 0 0 0 Betriebssysteme WS 2014, Speicher 81 Hermann Härtig, TU Dresden LRU Annäherung: Aging A 0 1 0 0 0 B 1 0 0 0 0 C 1 0 0 0 0 D 1 1 0 0 0 Betriebssysteme WS 2014, Speicher 82 Hermann Härtig, TU Dresden LRU Annäherung: Aging Tick 3 A 1 0 1 0 0 B 0 1 0 0 0 C 1 1 0 0 0 D 0 1 1 0 0 Betriebssysteme WS 2014, Speicher 83 Hermann Härtig, TU Dresden LRU Annäherung: Aging Seitenersetzung Age A 1 0 1 0 0 20 B 0 1 0 0 0 8 C 1 1 0 0 0 24 D 0 1 1 0 0 12 Betriebssysteme WS 2014, Speicher 84 Hermann Härtig, TU Dresden LRU Annäherung: Aging Seitenersetzung Age A 1 0 1 0 0 20 X 0 1 0 0 0 8 C 1 1 0 0 0 24 D 0 1 1 0 0 12 Betriebssysteme WS 2014, Speicher 85 Hermann Härtig, TU Dresden Wegweiser: Virtueller Speicher Anliegen – Begriffe – Vorgehen Adressumsetzung Seitenersetzung Arbeitsmengenmodell Betriebssysteme WS 2014, Speicher 86 Hermann Härtig, TU Dresden Das Arbeitsmengenmodell (Working Set) Problem ● Seitenfehlerhäufung bei Prozessaktivierungen Grundgedanken ● ● Lokalitätsprinzip Betrachtung der Seitenreferenzfolge eines Prozesses durch ein „Fenster“ der Länge T (sog. Arbeitsmengen-Parameter) Betriebssysteme WS 2014, Speicher 87 Hermann Härtig, TU Dresden Das Arbeitsmengenmodell (Working Set) Arbeitsmenge w(t, T) zum Zeitpunkt t bzgl. T: Menge der im Intervall [t – T, t] referenzierten Seiten Erfahrung ● max (Z(T)): theoretisch mögliche Maximalzahl von benutzten Seiten in T Zeiteinheiten ● |w(t, T)| << max (Z(T)) Betriebssysteme WS 2014, Speicher 88 Hermann Härtig, TU Dresden Das Arbeitsmengenmodell (Working Set) Vorgehen ● ● Bestimmung der Arbeitsmenge bei jeder Seitenreferenz für aktive und bereite Prozesse muss sich mindestens die Arbeitsmenge im Speicher befinden ● Swapping, falls Rahmen fehlen ● Prepaging bei Wiedereinlagerung Probleme ● Fenstergröße ● Implementierung (prozesseigene Uhr benötigt) ● „Seitenflattern“ (Thrashing) ● globale/lokale Ersetzung Betriebssysteme WS 2014, Speicher 89 Hermann Härtig, TU Dresden Seitenfehlerrate ● ● Begrenzung der Anzahl von Prozessen und globaler Seitenaustausch Ermittlung der Kachelanzahl: abhängig von Seitenfehlerrate Seitenfehlerrate r A B Kachelanzahl Betriebssysteme WS 2014, Speicher 90 Hermann Härtig, TU Dresden Wegweiser Seitentausch Speicherobjekte und Regionen (Adressraumstruktur) Segmentierung Caches Betriebssysteme WS 2014, Speicher 91 Hermann Härtig, TU Dresden Speicherobjekte ● Text- (Code-), Daten-, ... -Segment eines Prozesses ● Dateien ● Grafikspeicher ● ● BS-Datenstrukturen ● Thread Control Blocks ● Seitentabellen Netzwerkobjekte Betriebssysteme WS 2014, Speicher 92 Hermann Härtig, TU Dresden Speicherobjekte und Regionen Datei, D47 Datei, D08 Betriebssysteme WS 2014, Speicher 93 Hermann Härtig, TU Dresden Speicherobjekte und Regionen Datei, D47 Datei, D08 Betriebssysteme WS 2014, Speicher 94 Hermann Härtig, TU Dresden Speicherobjekte und Regionen Datei, D47 Datei, D08 Betriebssysteme WS 2014, Speicher 95 Hermann Härtig, TU Dresden Speicherobjekte und Regionen Datei, D47 Datei, D08 Betriebssysteme WS 2014, Speicher 96 Hermann Härtig, TU Dresden Speicherobjekte und Regionen Regionmanager Datei, D47 Datei, D08 Betriebssysteme WS 2014, Speicher 97 Hermann Härtig, TU Dresden Aufbau der Adressraumstruktur ! ! Regionen im Adressraum: explizites oder implizites Einbinden („Mappen“) von Speicherobjekten in den virtuellen Adressraum eines Prozesses Operationen: map(Adresse, Länge, Speicherobjekt, Zugriffsrechte); lookup(Adresse, Zugriffart) -> ● Speicherobjekt ● Seitennummer innerhalb Objekt ● oder nicht definiert ● oder Rechteverletzung Betriebssysteme WS 2014, Speicher 98 Hermann Härtig, TU Dresden Aufbau der Adressraumstruktur ! z. B. map( ... , ... , Datei, R); map( ... , ... , Gerätespeicher, RW); ! implizit: bei Prozesserzeugung werden Programm-, Keller-, Daten-Regionen gebildet (in Unix: „Segmente“) Betriebssysteme WS 2014, Speicher 99 Hermann Härtig, TU Dresden Regionen-Manager ● ● ● Verwaltung der Adressraum-Struktur ● repräsentiert z. B. als verkettete Liste Aufgabe bei Seitenfehler: Bestimmen von ● Fehlerart ● Speicherobjekt ● Speicherseite Fehlerarten ● Zugriff auf ungültigen Bereich (z.B. Pointerfehler) ● Rechteverletzung (z.B. Schreiben in Code-Bereich) ● Copy On Write Fault ● sonst: Seite nicht in MMU eingetragen Betriebssysteme WS 2014, Speicher 100 Hermann Härtig, TU Dresden Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Dateisysteme Hauptspeicher Regionmanager Seitenersetzung Betriebssysteme WS 2014, Speicher 101 Platte Anonyme Speicher Hermann Härtig, TU Dresden Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Dateisysteme Hauptspeicher Regionmanager Seitenersetzung Betriebssysteme WS 2014, Speicher 102 Platte Anonyme Speicher Hermann Härtig, TU Dresden Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 Hauptspeicher Regionmanager Seitenersetzung Betriebssysteme WS 2014, Speicher 103 Dateisysteme Platte Anonyme Speicher Hermann Härtig, TU Dresden Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 D47, 11 ?? Hauptspeicher Regionmanager Seitenersetzung Betriebssysteme WS 2014, Speicher 104 Dateisysteme Platte Anonyme Speicher Hermann Härtig, TU Dresden Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 D47, 11 ?? JA Hauptspeicher Regionmanager Seitenersetzung Betriebssysteme WS 2014, Speicher 105 Dateisysteme Platte Anonyme Speicher Hermann Härtig, TU Dresden Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 eintragen ST Hauptspeicher Regionmanager Seitenersetzung Betriebssysteme WS 2014, Speicher 106 Dateisysteme Platte Anonyme Speicher Hermann Härtig, TU Dresden Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 D47, 11 ?? NEIN Hauptspeicher Regionmanager Seitenersetzung Betriebssysteme WS 2014, Speicher 107 Dateisysteme Platte Anonyme Speicher Hermann Härtig, TU Dresden Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 Kachel frei ?? JA Hauptspeicher Regionmanager Seitenersetzung Betriebssysteme WS 2014, Speicher 108 Dateisysteme Platte Anonyme Speicher Hermann Härtig, TU Dresden Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 Datei.read Hauptspeicher Regionmanager Seitenersetzung Betriebssysteme WS 2014, Speicher 109 Dateisysteme Platte Anonyme Speicher Hermann Härtig, TU Dresden Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 eintragen ST Hauptspeicher Regionmanager Seitenersetzung Betriebssysteme WS 2014, Speicher 110 Dateisysteme Platte Anonyme Speicher Hermann Härtig, TU Dresden Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 Kachel frei ?? NEIN Hauptspeicher Regionmanager Seitenersetzung Betriebssysteme WS 2014, Speicher 111 Dateisysteme Platte Anonyme Speicher Hermann Härtig, TU Dresden Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 auswählen Hauptspeicher Regionmanager Seitenersetzung Betriebssysteme WS 2014, Speicher 112 Dateisysteme Platte Anonyme Speicher Hermann Härtig, TU Dresden Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 austragen ST Hauptspeicher Regionmanager Seitenersetzung Betriebssysteme WS 2014, Speicher 113 Dateisysteme Platte Anonyme Speicher Hermann Härtig, TU Dresden Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 zu Objekt ?? Hauptspeicher Regionmanager Seitenersetzung Betriebssysteme WS 2014, Speicher 114 Dateisysteme Platte Anonyme Speicher Hermann Härtig, TU Dresden Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 Datei, D08, 15 Datei.write Hauptspeicher Regionmanager Seitenersetzung Betriebssysteme WS 2014, Speicher 115 Dateisysteme Platte Anonyme Speicher Hermann Härtig, TU Dresden Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 Datei.read Hauptspeicher Regionmanager Seitenersetzung Betriebssysteme WS 2014, Speicher 116 Dateisysteme Platte Anonyme Speicher Hermann Härtig, TU Dresden Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 eintragen ST Hauptspeicher Regionmanager Seitenersetzung Betriebssysteme WS 2014, Speicher 117 Dateisysteme Platte Anonyme Speicher Hermann Härtig, TU Dresden Das Zusammenspiel ● Fehler ● Finde Objekt + Seite (Offset-Behandlung) ● Suche ob Kachel schon vorhanden ● Falls ja: Seite in Seitentabelle eintragen → fertig ● Falls nein: freie Kachel vorhanden? ● Falls freie Kachel vorhanden: Inhalt lesen → Seite eintragen ● Falls keine freie Kachel → verdrängen ● Aus allen Seitentabellen austragen ● Zu welchem Objekt gehört verdrängte Kachel? ● Inhalt sichern, wenn er verändert wurde ● dann wie oben: neuen Inhalt lesen, Seite eintragen Betriebssysteme WS 2014, Speicher 118 Hermann Härtig, TU Dresden Speicherobjekte im Netz Botschaften über Internet Rechner in einem verteilten System Betriebssysteme WS 2014, Speicher 119 Hermann Härtig, TU Dresden Systemstrukturen für Speicherobjekte Unix, Windows: „monolithisch“ ● ● teilweise durch Prozesse (mit eigenem Adressraum) im User-Mode großenteils aber fest in Betriebssystem integriert Mikrokernbasiert ● alle Speicherobjekte bereitgestellt durch „Server“-Prozesse mit eigenem Adressraum und im User-Mode Betriebssysteme WS 2014, Speicher 120 Hermann Härtig, TU Dresden Wegweiser Arbeitsmengenmodell Speicherobjekte und Regionen (Adressraumstruktur) Segmentierung Caches Betriebssysteme WS 2014, Speicher 121 Hermann Härtig, TU Dresden Segmentierung Ausgangspunkt ● logisch zusammenhängende, aber untereinander unabhängige Bereiche Beispiele ● Bibliotheken ● Keller, Halde, Programm Heute ● kaum noch für ursprüngliche Bestimmung verwendet ● Hardware-Unterstützung in aktuellen x86-CPUs ● „kreative“ Anwendung für Betriebssystem-Bausteine wie Thread-lokalen Speicher Betriebssysteme WS 2014, Speicher 122 Hermann Härtig, TU Dresden Zweidimensionale Adressierung Eigenschaften ● Segmentnummer ● Adresse innerhalb Segment ● beliebige Länge Folgen/möglicher Einsatz ● Länge und Zugriffsart können überwacht werden ● Relokation einfach ● Schutz ● „Shared Libraries“ Betriebssysteme WS 2014, Speicher 123 Hermann Härtig, TU Dresden Segmentierung und Paging (z. B. i386) Segmente ! ! ! ! Segmentdeskriptortabellen Codesegment: CS Datensegment: DS Stacksegment: SS weitere: ES, FS, GS Aufbau eines Deskriptors: ! ! per Prozess (local desc. table) per System (global desc. table) 32 Bits Base 0-15 Base 24-31 0: Li is in bytes 1: Li is in pages 0: 16-Bit segment 1: 32-Bit segment GD0 Relative address 0 Limit 0-15 Limit 16-19 P DPL Type Base 16-23 4 Segment type and protection ] Privilege level (0-3) ] Betriebssysteme WS 2014, Speicher 124 [ Hermann Härtig, TU Dresden Die vollständige Abbildung 16 0 32 0 SELECTOR OFFEST DESCRIPTOR TABLE SEGMENT DESKRIPTOR LINEAR ADDRESS DIR + PAGE OFFSET PHYSICAL ADDRESS PAGE DIRECTORY DIR ENTRY PAGE FRAME PG TBL ENTRY CR3 Betriebssysteme WS 2014, Speicher 125 Hermann Härtig, TU Dresden Wegweiser Arbeitsmengenmodell Speicherobjekte und Regionen (Adressraumstruktur) Segmentierung Caches Betriebssysteme WS 2014, Speicher 126 Hermann Härtig, TU Dresden Rechnerarchitektur : Caches Ziel ● größtmöglicher Speicher + schnellstmöglicher Speicher Grundlage ● Lokalitätsverhalten bei Speicherzugriffen Idee ● ● Anordnung von schnelleren, kleineren Speichern zwischen größeren, langsameren Speichern und Nutzer bei jedem Zugriff auf langsameren Speicher wird auch in schnellerem Speicher eine Kopie angelegt und genutzt Betriebssysteme WS 2014, Speicher 127 Hermann Härtig, TU Dresden Beispiele für Caches ● ● ● ● Adressumsetzung: Assoziativspeicher für langsame Seitentabellenspeicher Platten: schneller, aber nicht persistenter Speicher in Laufwerk oder Controller Verteilte Dateisysteme: Kopien von entfernten Dateien auf lokalem Rechner schneller Speicher zwischen CPU und Hauptspeicher Betriebssysteme WS 2014, Speicher 128 Hermann Härtig, TU Dresden Caches für Hauptspeicher CPU Adresse1 Adresse2 Adresse3 Adresse4 MEM Inhalt Inhalt Inhalt Inhalt Characteristika ! ! ➔ Größe, Geschwindigkeit, Cachelinegröße Organisation: Austauschverfahren, Zugriffsart, physisch vs. virtuell ... Tag: im Cache gespeicherte Adresse Betriebssysteme WS 2014, Speicher 129 Hermann Härtig, TU Dresden Organisation von Caches Zugriffsarten ! direkt: aus Adresse wird Index in Cache berechnet Vergleich zwischen Zugriffsadresse und Tag Zugriffsadresse Index Adresse1 Adresse2 Adresse3 Adresse4 Inhalt Inhalt Inhalt Inhalt = Betriebssysteme WS 2014, Speicher 130 Hermann Härtig, TU Dresden Organisation von Caches Zugriffsarten ! n-Wege-assoziativ: zu jedem Index gibt es n Tag-Inhalt-Paare Zugriffsadresse Index Adresse1 Adresse2 Adresse3 Adresse4 = Betriebssysteme WS 2014, Speicher Inhalt Adresse5 Inhalt Adresse6 Inhalt Adresse7 Inhalt Adresse8 Inhalt Inhalt Inhalt Inhalt = 131 Hermann Härtig, TU Dresden Organisation von Caches Virtuelle vs. physische Tags und Indizes ● ● ● virtuelle Tags und Indizes (VIVT) ● schnell (spart MMU-Umsetzung) ● sharing problematisch physische Tags und Indizes (PIPT) ● langsamer ● auch außerhalb CPU-Chip ● sharing einfach physiche Tags, virtuelle Indizes (VIPT) ● längere Tags, da Tag-Adresse verschieden vom Index Betriebssysteme WS 2014, Speicher 132 CPU V virtuelle Adresse MMU P physische Adresse Hermann Härtig, TU Dresden Pentium III vs. Pentium IV Pentium III ● virtuell indiziert / physische Tags Pentium IV ● ● virtuelle Tags trace cache: dekodierte Instruktionen werden in einem Cache abgelegt Heute ● L1 meist virtuell indiziert ● größere Caches physisch indiziert Betriebssysteme WS 2014, Speicher 133 Hermann Härtig, TU Dresden Zusammenfassung Speicher ● Ziele von virtuellem Speicher: Schutz, Abstraktion ● Adressumsetzung in der MMU ● Vorwärts-, inverse Seitentabellen, mehrstufig, TLB ● logischer Aufbau des Adressraums: Regionen ● Behandlung von Seitenfehlern ● Seitenersetzung vor Verwaltung des Hauptspeichers Betriebssysteme WS 2014, Speicher 134 Hermann Härtig, TU Dresden