Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Kap. 4 Speicher- verwaltung Version vom 15.06.2007.

Ähnliche Präsentationen


Präsentation zum Thema: "Kap. 4 Speicher- verwaltung Version vom 15.06.2007."—  Präsentation transkript:

1 Kap. 4 Speicher- verwaltung Version vom

2 Direkte Speicherbelegung Logische Adressierung und virtueller Speicher
Kap. 4 - Inhalt Übersicht Direkte Speicherbelegung Logische Adressierung und virtueller Speicher Seitenverwaltung Segmentierung Cache Speicherschutz Speicherverwaltung

3 Speicher ist neben dem Prozessor das wichtigste Betriebsmittel
Übersicht I Speicher ist neben dem Prozessor das wichtigste Betriebsmittel Speicherhierarchie Speicherverwaltung

4 Typische Speicherhierarchie mit Zahlen
Übersicht II Typische Speicherhierarchie mit Zahlen Zahlen sind sehr grobe Schätzungen < 1KB 1 MB 128MB – 8GB GB GB Speicherverwaltung

5 interner Speicher: z.B. Verwaltung des Heaps durch garbage collector
Übersicht III Einteilung Anwenderprogramme interner Speicher: z.B. Verwaltung des Heaps durch garbage collector Hauptspeicher Aufteilung auf Prozesse: globaler vs. lokaler Speicher bei Multiprozessorsystemen Massenspeicher internes Management bei Dateien, z.B. der Swapdatei Strategien Komplette Speicherbelegung (Prozeß) auslagern (swapping: langsam) Speicherteile (Prozeßteile) auslagern Speicherverwaltung

6 Direkte Speicherbelegung I
Einfache Speicherbelegung Ein Benutzerprogramm ohne Swapping oder Paging Speicherverwaltung

7 Direkte Speicherbelegung II
Multiprogramming mit festen Partitionen Speicherverwaltung

8 Direkte Speicherbelegung III
Degree of multiprogramming CPU Benutzung als Funktion der Zahl der Prozesse im Speicher Speicherverwaltung

9 Direkte Speicherbelegung IV
Zuordnung durch feste Tabellen Tabelleneinheit (z.B. 1Bit) gibt Zustand einer Speichereinheit (z.B. 32Bit-Wort oder 4KB-Einheit, ...) an 9 8 A 7 6 FREI ... 1 1 1 1 1 1 1 1 5 ... 9 8 7 6 5 4 3 2 1 4 3 C 2 1 B Speicherbelegung Belegungstabelle Speicherverwaltung

10 Direkte Speicherbelegung V
Zuordnung durch verzeigerte Listen FREI.len=2 FREI.start=5 9 8 A C.len=3 7 C.start=2 6 FREI 5 B.len=2 4 B.start=0 3 C Anfang 2 A.len=3 1 B A.start=7 Speicherbelegung Belegungsliste Speicherverwaltung

11 Direkte Speicherbelegung VI - Belegungsstrategien
Unabhängig von der Art der Verwaltung der Speicherbelegungslisten gibt es verschiedene Strategien, um aus der Menge der unbelegten Speicherblöcke den geeignetsten heraus-zusuchen. Ziele: Anzahl der freien Bereich minimieren Größe der freien Bereiche maximieren Speicherverwaltung

12 Direkte Speicherbelegung VII - Belegungsstrategien
FirstFit Nimm das erste, ausreichend große Stück. Aber: Reststücke NextFit wie FirstFit, aber führe Speicherindex mit BestFit kleinste freie Stück, das paßt WorstFit größte freie Stück, um große Reststücke zu erreichen QuickFit eine Liste pro Anforderungsgröße, also pro Datentyp Buddy-Systeme Listen von 2n großen Speicherstücken: 256B, 512B, 1024B, 2048B, ... Kein passendes Stück da: Zerteilen des nächstgrößeren. Verschmelzen mit jeweils dem Partnerstück bei gleichem Adressenanfang Das Buddy-System Speicherverwaltung

13 Direkte Speicherbelegung VI - Bewertung
Bewertung der Belegungsstrategien FirstFit > NextFit, WorstFit, BestFit Kenntnisse über Speicheranforderungen: QuickFit Leistungsfähigkeit der buddy-Systeme Überschlagsrechnung: mittl. Anforderung = 75%, vergeudet 25% tats. Belegung  schnell, aber nicht effizient Verbesserung: halbe oder viertel Partner (aber: Verwaltung!) FirstFit ist auch besser als BestFit, da dieses nur sehr kleine, kaum wiederbelegbare Reststücke übrig läßt. Bei Kenntnissen über Speicheranforderungen ist QuickFit und andere Algorithmen besser. Speicherverwaltung

14 Direkte Speicherbelegung VII - Fragmentierung
Fragmentierung und Verschnitt Interner Verschnitt Interne Zersplitterung durch Heap-Belegung Abhilfe: garbage collector des Programmiersystems Externer Verschnitt Freier Platz zwischen den Programmen im Auslagerungsbereich Abhilfe: zuerst Einlagern großer Prozesse, dann Auffüllen mit kleinen.  swapping kleiner Programme (gegen SJF-Strategie!) Oder: Speicheraufteilung in verschieden große Bereiche, jede mit eigener Warteschlange (IBM OS/MFT): ineffizient! Speicherverwaltung

15 Direkte Speicherbelegung VIII - Swapping
Speicherallokation ändert sich, wenn Prozesse in den Speicher eingelagert werden den Speicher verlassen Schattierte Flächen sind ungenutzter Speicher Speicherverwaltung

16 Direkte Speicherbelegung IX - Swapping
Platz für wachsendes Datensegment allokieren Platz für wachsendes Stack- und Datensegment allokieren Speicherverwaltung

17 Virtueller Speicher I - Wozu?
Probleme & Einzellösungen Speicherzusatzbelegung Prozeß auslagern, neuen Speicher reservieren, neu einlagern Externen Verschnitt zum Prozeß dazuschlagen (stack & heap) Relozierung von Programmcode rel. Adressen für GOTO bei allen CPU-Typen bei Einlagerung oder zur Laufzeit absolute Adr. errechnen Speicherschutz Betriebssystemkern darf nicht korrumpiert werden (fences,limits), spezielle HW-Einheit Programmiermodell soll klar, einfach und uniform sein Speicherverwaltung

18 Virtueller Speicher II
Forderung: lineares Programmiermodell Fragmente sollen zusammenhängend erscheinen Nur inaktive Programmteile werden ausgelagert Implementierung durch Memory Management Unit MMU 13000 ... C000 B8FF A900 A783 ... 10000 ... 9000 8FFF ... 8000 7FFF ... 2784 0000 Beliebig langer, Fragmentierter, durchgehender Speicher endlicher i Speicher Speicherverwaltung

19 Virtueller Speicher III – Funktion und Position der MMU
Speicherverwaltung

20 Virtueller Speicher IV - Wichtige Begriffe
Seiten: Adreßraum ist in Einheiten gleicher Größe (sog. Seiten) aufgeteilt Seitenrahmen: physischer Speicher ist in Einheiten gleicher Größe (sog. Seitenrahmen oder Seitenkacheln) aufgeteilt Seitentabellen: verwalten Zuordung zwischen Seiten und Seitenrahmen Segmente: ähnlich wie Seiten, nur ungleich groß Segmenttabellen: ähnlich wie Seitentabellen, mit Größeninformation Speicherverwaltung

21 Seitenverwaltung I - Seitentabellen
Relation zwischen virtuellen Adressen und physischen Speicheradressen wird durch die Seitentabelle beschrieben Speicherverwaltung

22 Seitenverwaltung II - Grundmodell virt. Adreßkonversion
Virtuelle Adresse PageNr 6 offset 1 LSB HSB Basisadresse 6 offset Physikal. Adre s se ~ ~ Page 6 7 Basisadresse 7 6 Basisadresse 6 ~ ~ 5 Basisadresse 5 4 Basisadresse 4 3 Basisadresse 3 Page 7 2 Basisadresse 2 1 Basisadresse 1 ~ Basisadresse 0 ~ Seitentabelle Hauptspeicherbelegung Speicherverwaltung

23 Seitenverwaltung III - Adreßkonversion
Problem: virt. Adreßraum >> phys.Adreßraum Riesige Seitentabellen! Sei Seitengröße=offset=12 Bit  4KB Seitenrahmen (page frame) 16 Bit: 4 Bit  16 Einträge 32 Bit: 20 Bit  1 Mill. Einträge 64 Bit: 52 Bit  4 1015 Einträge Adreßbegrenzung kleiner Adreßraum, z.B. 30 Bit (1 GB)  18 Bit  256 KB Tabelle Aber: Vergeudung von Platz, da meist nicht benötigt ! Speicherverwaltung

24 Seitenverwaltung IV - Adreßkonversion
Multi-Level-Tabellen 001 01 offset Virtuelle Adresse Prozeßkontext Seitentabelle 3 nicht existent ~ ~ 7 Tafeladresse 7 2 Seitenadresse5 6 nicht existent 1 Seitenadresse 1 5 nicht existent Seitenadresse 2 Page 3 4 nicht existent offset 3 nicht existent 3 nicht existent 2 nicht existent 2 Seitenadresse 6 ~ ~ 1 Tafeladresse 1 1 Seitenadresse 3 Tafeladresse 0 Seitenadresse 4 Page 7 3 nicht existent ~ ~ 2 nicht existent 1 nicht existent Seitenadresse7 page base table Seitentabellen Speicherbelegung (Seitentabelle1) Speicherverwaltung

25 Seitenverwaltung V – Adreßkonv.: 3-Level Tabellen
SPARC-Architektur (SUN) Speicherverwaltung

26 Seitenverwaltung VI – Adreßkonv.: 4-Level-Tabellen
MC Motorola Problem: 4 von 5 Speicherzugriffen sind overhead Speicherverwaltung

27 Seitenverwaltung VII - Adreßkonversion
Problem: Multi-Level-Tabellen sind langsam SPARC: 3-stufig, MC stufig (80% länger) und benötigen Tabellenplatz für jeden Prozeß extra. Lösung. Invertierte Seitentabellen Das Durchlaufen einer Multi-level-Tabelle verlangsamt den Speicherzyklus stark; für jede Stufe mind. einen Read-Hardwarezyklus. Für jeden Prozeß gibt es eigene Tabellen. Das Konzept der invertierten Seitentabellen vermeidet dies. Idee: Es gibt nur wenige physikal. Speicherseiten, aber sehr viele virtuelle. Invertieren wir die Auflistung, so reflektiert die Tabelle nur die Größe der tatsächl. Hauptspeichers. Dafür müssen wir bei jedem Zugriff die Tabelle durchsuchen und beachten, daß die selbe virt. Seite bei zwei verschiedenen Prozessen existieren können. Speicherverwaltung

28 Seitenverwaltung VIII - Adreßkonversion
Problem: Inverse Tabellen sind langsam Durchsuchen der gesamten Tabelle Lösung. Assoziativer Tabellencache ProcId virtuelle reelle Seite 1 Assoziativ- 1 1 1 1 1 2 speicher 1 1 1 3 1 5 X 1 1 7 ß Abfragewort 1 5 Antwort Speicherverwaltung

29 Seitenverwaltung IX - Shared Memory
Globale Variablen (Prozeßkommunikation) Gemeinsamer Puffer (Semaphor-geregelter Zugriff) Gemeinsam genutzer Code (C-Bibliothek, ..)  BS-geregelter Zugriff memory mapping Daten virt.Seite 10 Daten frei- RAM-Seite geben Prozeß B virt. Seite 5 123 Prozeß A phys. Speicher Daten virt. Seite 2 Prozeß C Speicherverwaltung

30 Seitenverwaltung X - Unix
HP-UX: 32 Bit + 16/32 Bit space register 4 Segmente (Quadranten) unterschiedl. Funktionalität Memory-mapped devices (kernel mode) 4GB I/O map shared memory 3GB libs mem- mapped files 2GB user stack u_area heap data 1GB user program 0 GB code I II III IV Speicherverwaltung

31 Seitenverwaltung XI - Windows NT
Win2000: 32 Bit 64 Bit vorgesehen Virtual memory manager für Seitenverwaltung 4KB-64KB Seiten 2-stufige Seitentabellen page directory/ page table = PFD Shared memory Sonderregelung 3.Stufe: zentrale prototype page table Kernel mode Adressierung durch 30 Bit phys. Adresse 4 GB locked 3 GB paged kernel 2 GB user process ( ) paged Speicherverwaltung

32 Seitenverwaltung XII - Strategien zur Seitenersetzung
Problem: Begrenzter Hauptspeicher. Welche alte Seite soll durch benötigte Seite ersetzt werden? (Scheduling für Seitenaustauschprozessor) Folge von benötigten Seiten: Referenzfolge Optimale Strategie (Belady 1966) Ersetze die Seite, die am spätesten benutzt werden wird Beispiel: Ziel 1 2 3 4 5 6 RAM1 RAM2 - 1 RAM3 2 ƒ 4 6 Das Beispiel zeigt einen Hauptspeicher aus drei Seiten. Die oberste Zeile ist die Anforderung (Referenzfolge). Im Beispiel wird Seite 2 nach 0 und 1 benötigt, so daß sie ausgelagert wird, entsprechend auch die anderen Seiten. t = 1 2 3 4 5 6 7 8 9 10 11 Speicherverwaltung

33 Seitenverwaltung XIII - Strategien zur Seitenersetzung
Problem: Referenzfolge i.A. nicht bekannt. Ansatz: Statistik notieren pro Seite Bits R= referenced Reset durch Timer oder Ereignis M= modified FIFO-Strategien: Ersetze die älteste Seite nur älteste Seite ersetzen: Problem mit Hauptseite Wenn Bit R periodisch zurückgesetzt wird, so ist Bit R=1 eine Benutzungsfrequenz. Die FIFO-Schlange der Seiten läßt sich zu einem Ringpuffer schließen; die Ersetzung der ältesten Seite kann durch R=1 verhindert werden. Durch die FIFO-Logik sind 4 zusätzliche Einlagerungen nötig. Speicherverwaltung

34 Seitenverwaltung XIV - Strategien zur Seitenersetzung
Der clock-Algorithmus Markierung im Ringpuffer „letzte Seite“ kreist Überspringen einer Seite bei R=1 (Second-Chance-Algorithmus) Neue Seite Älteste Seite Speicherverwaltung

35 Seitenverwaltung XV - Strategien zur Seitenersetzung
Die NRU-Strategie (Not Recently Used) Ersetze die Seite mit geringster Nutzung in einem gemeinsamen Zeitraum Mit Prioritätsliste bessere Statistik-Ausnutzung: 1) R = 0, M = 0 wenig Nutzung zuerst ersetzen. Clock-Alg! 2) R = 0, M = 1 beschriebene Seite 3) R = 1, M = 0 genutzte Seite 4) R = 1, M = 1 genutzte beschriebene Seiten zuletzt Ersetze Seite mit kleinster Nummer (2R+M) Problem: Geringe Differenzierung (Seiten mit gleichem Status) Not Frequently Used NFU, Least Frequently Used LFU Ersetze die Seite mit geringster Benutzungsfrequenz Zeitspanne = Existenzzeit des Prozesses Problem: früher aktuelle Seiten dominieren zu lange, „träges“ Verhalten  Alterungsprozeß einführen! Linux: Einen Zähler pro Seite, bei jeder Referenz hochzählen, Dekrementieren durch Hintergrundsprozeß Speicherverwaltung

36 Seitenverwaltung XVI - Strategien zur Seitenersetzung
Die LRU-Strategie (Least Recently Used) Seite mit kleinster Benutzungswahrscheinlichkeit (längste Zeitspanne seit letzter Benutzung) zuerst ersetzen Zählen durch Schieberegister: 8 Bit-Zahl ~ Aktualität Speicherverwaltung

37 Seitenverwaltung XVII - Seitenmengen: Das working set
Arbeitsmenge (working set) eines Prozesses Minimale Seitenzahl pro Prozeßfenster (Denning 1980) Mittlere Seitenzahl pro Prozeß Beispiel: Variable A,B,C,D sind auf verschiedenen Seiten MOVE A,B MOVE C,D Denning Working set = 5, unabhängig von evtl. zusätzlichen Seiten Lokalitätsprinzip! Einlagern von nötigen Seiten: demand paging Einlagern des working set: prepaging Speicherverwaltung

38 Seitenverwaltung XVIII - Seitenreferenzen: Lokalitätsprinzip
Benutzte Seiten Ausführungszeitpunkte Gezeigt sind als Schwärzung die relativen Adressen bzw. Nummern der benutzten Seiten bei einem Job zu einem Zeitpunkt bzw. Zeitfenster. Man sieht, daß zu einem Zeitpunkt nicht alle Seiten benutzt werden, sondern nur ein kleiner Teil. Sowohl die benutzten Adressen als auch die Seiten sind lokal benachbart Speicherverwaltung

39 Seitenverwaltung XIX - Strategien zur Seitenersetzung
Die Working Set-Strategie Seite außerhalb des working set-Fensters zuerst ersetzen Fenster > Speichergröße Die Working set-Strategie unterscheidet sich von der LRU-Strategie dadurch, daß die Nutzung nur notiert wird, um die Seiten im Fenster festzulegen. Alle Seiten außerhalb des Fensters werden gleich behandelt. Speicherverwaltung

40 Seitenverwaltung XX - Modellierung und Analyse
Optimale Seitenlänge Hauptspeichergröße k, SW-Seitengröße s Einstufige Seitentabelle mit k/s Einträgen pro Prozeß Datenlänge ist aus ]0,s]  mittl. Verschnitt s/2 mittl. Speicherverlust V = (s/2 + k/s)  k fv größ. Seiten  kleinere Tabellen, mehr Verschnitt klein. Seiten  größere Tabellen, weniger Verschnitt Optimum: Ableitung von V(s) wird null    sopt= und Verlustfaktor fv = 2/sopt Speicherverwaltung

41 Seitenverwaltung XXI - Modellierung und Analyse
Weitere Kriterien für optimale Seitengröße große Seiten haben hohen Verschnitt bei geringen zusätzl. Speicheranforderungen (höh. Mittl. Verschnitt) Zeit, um eine Seite auf den Massenspeicher zu schieben: kleinere Seiten sind schneller geschrieben, aber langsamer gefunden Speicherverschnitt bei mittl. Dateigröße von 1 kB => nicht zu große Seiten! Kleine Seitengröße, große Transfermengen => I/O Clustermengen, read ahead Speicherverwaltung

42 Seitenverwaltung XXII - Modellierung und Analyse
Optimale Seitenzahl pro Prozeß ? Beispiel FIFO 4 vs. 5 Seiten für Referenzfolge Beladys Anomalie: Mehr Ersetzungen trotz mehr Seiten! Speicherverwaltung

43 Seitenverwaltung XXIII - Modellierung und Analyse
Beispiel LFU 4 Seiten vs. 5 Seiten Stack-Notation Zeit Häufigkeit LFU-Liste mittels Stack-Liste implementierbar unabhängig von der RAM/DISK-Grenze Keine Anomalie  für alle Stack-Algorithmen beweisbar Der LFU-Algorithmus wird hier in Stack-Notation dargestellt: Die RAM-Seiten sind zu jedem Zeitpunkt so angeordnet, daß die zuletzt benutzten Seiten oben stehen, mit jedem Zeittakt verschieben sie sich nach unten (Stack). Bei Gebrauch werden sie wieder nach oben gesetzt. Speicherverwaltung

44 Seitenverwaltung XXIV - thrashing
Beobachtung: Bei sehr vielen Prozessen läuft plötzlich das Gesamtsystem langsamer, stattdessen starke Plattenaktivität Erklärung: Wartezeiten kehren sich um CPU  PPU n Prozesse, jeder m<k Seiten Keine Verzögerung > t S W Prozeß 1 Prozeß 2 Prozeß 3 t W S Prozeß 1 Prozeß 2 Prozeß 3 thrashing: > Speicherverwaltung

45 Seitenverwaltung XXV - Analyse von thrashing
Speicherverwaltung

46 Seitenverwaltung XXVI - Anti-Thrashing Strategien
Speicherangebot muß genügen für working set bei gegebenem Verhältnis Seitenverweilzeit tS Seitenwechseldauer tT Hardwaremaßnahmen Große Seiten  großes tS (Festplattenverzögerung!) mehrere parallele swap-Festplatten  kleineres tT Programmierungsmaßnahmen lokaler code (inline), lokale Adressreferenzen (z.B. Matrizenmultiplikation)  kleines T (nötige Seitenzahl) Working Set Modell nur so viele Prozesse, wie Speicher für alle working sets fester Größe reicht (z.B. Siemens:BS2000, IBM:CP67) Page Fault Frequency-Modell PPF Wenn Seitenersetzungen pro Zeiteinheit (Seitentauschrate) > Schwelle, Prozesse stillegen. < Schwelle, Prozesse aktivieren. (Dynamische Strategie: etwas besser als die statische working-set-Strategie) Speicherverwaltung

47 Seitenverwaltung XXVII - Anti-Thrashing Strategien
PPF-Modell Speicherverwaltung

48 Seitenverwaltung XXVIII - Anti-Thrashing Strategien
Globale vs. lokale Strategien Speicheraufteilung je nach Prozeßgröße Strategien (PPF, LRU,..) nicht isoliert pro Prozeß, sondern global für alle Seiten aller Prozesse (z.B. PPF gleich für alle Prozesse). Nachteil: Nicht „gerecht“ Lazy evaluation Vermeide unnötigen Seitentausch Copy On Write Seitenkopie erst durchführen, wenn darauf geschrieben wird Page Out Pool Auszulagernde Seiten zwischenspeichern (standby) Speicherverwaltung

49 Seitenverwaltung XXIX - Seitenverwaltung
Probleme I/O Pages und Shared Pages (besonders wichtige Seiten) DMA für ausgelagerte Prozesse: Fehler! Gemeinsame Bibliotheken, shared memory: Probleme beim Auslagern! Paging Demon Kapselung als idle-Prozeß, z.B. für page out pool Page faults und Instruktionsgrenzen Bei Seitenfehler: Wiederholung des Befehls. Aber wo fing er an? Rekonstruktionszeit nötig bei Microcode. Speicherverwaltung

50 Seitenverwaltung XXX - Seitenverwaltung
Ablauf eines Page faults : Speicherverwaltung

51 Seitenverwaltung XXXI - Unix: Seitenersetzungsstrategien
HP-UX: Swapping vs. Paging Swapping: schneller Zugriff, z.B. für Prozeßauslagerung z.B. swap disk, swap section einer Platte, swap directory im Dateisystem Pageout demon desfree < freierSpeicher < 25% des Anwenderspeichers: periodischer reset des R-Bits, t warten, Auslagern der Seiten mit R=0 swapper demon freierSpeicher < desfree: swapper demon desaktiviert Prozesse + sweep out, bis Min. erreicht. Min,Max für Hysterese gegen „Seitenflattern“ Speicherverwaltung

52 Seitenverwaltung XXXII - Windows NT: Seitenersetzungsstrategien
FIFO-Seitenersetzung im Normalfall Keine globale Seitenabstimmung der Prozesse, da lokales Seitenmanagement pro Prozeß subjektiv gerechter Wenig aufwendig Auslagerung häufig benutzter Seiten gemildert durch page out pool Automatic workset trimming zu wenig Speicher da Alle Prozesse mit aktueller Seitenzahl (working set) >min verkleinern Bei Seitenfehlern wird working set „geclustert“ vergrößert (größere effektive Seitenlänge!) Automatic Copy on write unnötiges Kopieren verhindern Neue Prozesse (POSIX): Seiten mit copy on write verhindert Kopieren von Elternseiten für Kinder (Codeüberlagerung) Dynamic Link Library DLL nur bei write kopiert, sonst nicht. Speicherverwaltung

53 Seitenverwaltung XXXIII - Konfigurationsmöglichkeiten
UNIX Bei der Installation des Systems wird eine Swap-Partition angelegt, deren Grösse man festlegen kann. Später können weitere Swapbereiche in Form von Partitionen und Files hinzugefügt werden, sogar Swapping über NFS ist möglich. Windows NT/2000/XP Bei der Installation wird ein gewisser Standard eingestellt, der in der Systemsteuerung abgeändert werden kann, was Größe und Verteilung der Swapbereiche auf die Platten angeht. Speicherverwaltung

54 Segmente statt globalem linearem Adressraum
Segmentierung I Segmente statt globalem linearem Adressraum Problem: Kollision der Adreßräume bei wachsenden Datenstrukturen UNIX-Segmente Oberer Speicher (Heap) Daten Programm Laufzeitsystem Stack Argumente/ Optionen Compiler-Segmente Symboltabellen Quelltext Tabellen Parser- Baumstrukturen Stack Speicherverwaltung

55 Seitentabelle Segmenttabelle (Segmentregister)
Segmentierung II Seitentabelle Segmenttabelle (Segmentregister) Beispiel: Intel 80286 Speicher CPU/MMU SegmentRegister Daten B Code B DatenBlock 1 DatenBlock 2 Daten A Code A Stack DS Daten CS Code ES Extended-Daten SS Stack Speicherverwaltung

56 Lokale und globale Seitentabellen INTEL 80486
Segmentierung III Lokale und globale Seitentabellen INTEL 80486 Pro Prozeß: Local Description Table LDT Alle Prozesse: Global Description Table GDT Prozeß B Prozeß A LDT Code Code LDT Segment Segment CPU Daten Daten LDT-Register Segment Segment GDT-Register Globale Segmente GDT Code Daten Segment Segment Code Segment Speicherverwaltung

57 Cache I Schneller Speicherzugriff durch schnellen Hilfsspeicher (Cache) bei Lokalitätseigenschaft Pipeline-burst-Cache Befehls/Daten-Cache Speicherverwaltung

58 Konsistenzproblem Lösungen Direktschreiben write through
Cache II Konsistenzproblem Lösungen Direktschreiben write through Zurückschreiben write back Aktualisieren copy back mittels snooper (Überwachung) Beispiel: Intel MESI Statuswort für Cachespeicher Speicherverwaltung

59 Virt.Speicher: keine Adressiermöglichkeit des Nachbarn
Speicherschutz I Virt.Speicher: keine Adressiermöglichkeit des Nachbarn Zugriffsrechte bei jeder Seite bzw. Segment (UNIX, NT) VM Manager (Windows NT) Execute only Gemeinsame Bibliotheken Guard Page Bei Benutzung Signalerzeugung guard page exception No Access bei nichtex. oder gesperrten Seiten: Debuggingsignal Copy on Write Speicherschutz: Bei Zugriff nur Schreiben auf Kopie Sicherheitsstufen kernel mode vs. user mode z.B. Intel 80386: real modevirtual mode:user /dll /system /kernel Zugriff und Sprünge nur auf Seiten mit größerer/gleicher Statuszahl Speicherverwaltung


Herunterladen ppt "Kap. 4 Speicher- verwaltung Version vom 15.06.2007."

Ähnliche Präsentationen


Google-Anzeigen