Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Systeme 1 Kapitel 8 Speicherverwaltung WS 2009/101.

Ähnliche Präsentationen


Präsentation zum Thema: "Systeme 1 Kapitel 8 Speicherverwaltung WS 2009/101."—  Präsentation transkript:

1 Systeme 1 Kapitel 8 Speicherverwaltung WS 2009/101

2 Speicherverwaltung Speicherverwaltung: – Aufteilung des verfügbaren Hauptspeichers zwischen Betriebssystem verschiedenen Prozessen. Speicherverwaltung erfordert enges Zusammenspiel von – Hardware und – Betriebssystem. Zur Erinnerung: – Zu jedem Prozess gehört ein Adressraum: zugeordneter Arbeitsspeicher mit minimalen und maximalen Adressen Enthält – Ausführbares Programm, Programmdaten und Kellerspeicher (Stack). WS 2009/102

3 Prozesse WS 2009/103 Code Prozess 1 Code Prozess 2 Daten Prozess 1 Daten Prozess 2 Activ. rec. Prozess 2 Activ. rec. Prozess 1 PC Register Stack pointer Prozesstabelle Hauptspeicher CPU

4 Speicher Die ersten Computer wurden als Einheit entwickelt. – Speicher, CPU, etc. wurden aufeinander abgestimmt entwickelt. – Keine großen Geschwindigkeitsunterschiede zwischen den Komponenten. Später standardisiertes Design – Erlaubte getrennte und spezialisierte Entwicklung einzelner Subsysteme. – Manche Subsysteme konnten schneller und besser optimiert werden als andere. Engpässe (Flaschenhals) entstanden. insbesondere zwischen CPU und Speicher WS 2009/104

5 Speicherhierarchie WS 2009/105 Registers Cache Memory Disk Tape Instr./Operands Blocks Pages Files Upper Level Lower Level faster larger

6 Anforderungen an das Betriebssystem Grundlegende Anforderungen an Speicherverwaltung: – Bereitstellung von Speicher für Betriebssystem und Prozesse – Ziel aus Betriebssystemsicht: Möglichst viele Prozesse im Speicher vorhanden. Multiprogramming! 5 Anforderungen nach Lister / Eager: 1.Relokation 2.Schutz 3.Gemeinsame Nutzung 4.Logische Organisation 5.Physikalische Organisation WS 2009/106

7 Relokation Relokation = Verlagerbarkeit Motivation: – Mehrere Prozesse gleichzeitig im System – Auslagern und Wiedereinlagern ganzer Prozesse aus dem Hauptspeicher soll ermöglicht werden. – Ort der Einlagerung zum Zeitpunkt der Programmentwicklung / Programmübersetzung unbekannt! – Bindung an alten Ort beim Wiedereinlagern sehr ungünstig! Problem: – Speicherreferenzen innerhalb des Programms: Absolute Sprungbefehle Datenzugriffsbefehle WS 2009/107

8 Relokation Übersetzung der Speicherreferenzen im Programmcode in tatsächliche physikalische Speicheradressen durch – Prozessorhardware – Betriebssystemsoftware WS 2009/108 Prozesskontrollblock Programm Daten Beginn Prozesskontrollinformationen Sprung- befehl Referenz auf Daten Zunehmende Adresswerte Einsprungstelle ins Programm Programmende

9 Schutz Schutz von Prozessen gegen beabsichtigte oder unbeabsichtigte Störungen durch andere Prozesse – Folge: Überprüfung aller Speicherzugriffe notwendig – Schwierigkeit: Nicht zur Übersetzungszeit eines Programms überprüfbar, da: Dynamisch berechnete Adressen Relokation Dynamische Überprüfung nötig Hardwareunterstützung nötig In Zusammenhang mit Relokation gelöst. Nicht in ausschließlich Software lösbar – Betriebssystem benötigt für effektiven Schutz Hardwareunterstützung. WS 2009/109

10 Exkurs: User-/ Kernel-Modell Ein sogenannter Prozessor-Ring schränkt nutzbare Prozessor-Befehle und Speicherbereiche ein. z.B. x86 Prozessoren haben 4 Ringe Meist werden nur 2 genutzt: – Ring 0 (Kernel-Mode) – Ring 3 (User-Mode) Kontrollierter Wechsel – durch Betriebssystem (später mehr!) WS 2009/1010

11 Gemeinsame Nutzung Gemeinsame Nutzung = kontrollierter Zugriff mehrerer Prozesse auf gemeinsam genutzte Bereiche des Speichers Anwendungsbeispiele: – Ausführung des gleichen Programms durch eine Reihe von Prozessen Code nur einmal im Speicher – Benutzung gemeinsamer Module (z.B. dynamisch gelinkte Bibliotheken) – Kooperation von Prozessen über gemeinsam genutzten Datenspeicher (shared memory) WS 2009/1011

12 Logische Organisation Hauptspeicher ist lineares Feld von Bytes (Wörtern) Dagegen: Logischer Aufbau großer Programme: – Sammlung verschiedener Module – Unabhängig übersetzt; Referenzen erst zur Laufzeit aufgelöst – Verschiedene Module mit verschiedenem Schutz (z.B. nur lesen / ausführen) – Gemeinsame Nutzung von Modulen durch verschiedene Prozesse z.B. auch dynamisch gebundene Bibliotheken Betriebssystem muss mit Modulen umgehen können. WS 2009/1012

13 Physikalische Organisation Hier betrachtet: – 2 Ebenen: Hauptspeicher (schnell, teuer, flüchtig) Hintergrundspeicher (langsam, billig, nicht flüchtig) Grundproblem: Organisation des Informationsflusses zwischen Haupt- und Sekundärspeicher – Prinzipiell möglich: in Verantwortung des Programmierers – Aufwändig, erschwert durch Multiprogramming – Deshalb: Verwaltung durch das Betriebssystem WS 2009/1013

14 Grundlegende Methoden der Speicherverwaltung Partitionierung – Für Speicheraufteilung zwischen verschiedenen Prozessen eher veraltetes Konzept – Betriebssysteminterne Nutzung von Partitionierung Paging – Einfaches Paging – Kombiniert mit Konzept des virtuellen Speichers Segmentierung – Einfache Segmentierung – Kombiniert mit Konzept des virtuellen Speichers WS 2009/1014

15 Partitionierung Partitionierung: – Aufteilung des Speichers in Bereiche mit festen Grenzen – Fester, zusammenhängender Teil des Hauptspeichers für Betriebssystem – Pro Prozess ein zusammenhängender Teil des Speichers Verschiedene Varianten: – Statische Partitionierung – Dynamische Partitionierung – Buddy-Verfahren WS 2009/1015

16 Statische Partitionierung Einteilung des Speichers in feste Anzahl von Partitionen 2 Varianten: WS 2009/1016 Betriebssystem 8 Mbyte Betriebssystem 8 Mbyte 2 Mbyte 4 Mbyte 8 Mbyte 12 Mbyte 16 Mbyte Alle Partitionen mit gleicher LängePartitionen mit unterschiedlicher Länge

17 Statische Partitionierung Probleme: – Programm zu groß für Partition Programmerstellung durch Overlays nötig (aufwändig!) – Interne Fragmentierung: Platzverschwendung, wenn Programm kleiner als Größe der zugeordneten Partition – Fest vorgegebene Anzahl von Prozessen im Speicher Bei Laden von Prozessen in Speicher: evtl. Auslagern von anderen Prozessen Zuweisung von Partitionen an Prozesse: – Bei Bereichen mit gleicher Länge: trivial – Bei Bereichen mit variabler Länge: Kleinste verfügbare Partition, die gerade noch ausreicht? – Wenn Speicherbedarf nicht feststellbar, dann helfen nur Overlays oder virtueller Speicher! WS 2009/1017

18 Dynamische Partitionierung Einteilung des Speichers in Partitionen – variabler Länge und – variabler Anzahl Prozesse erhalten exakt passende Speicherbereiche Ein- und Auslagern führt zu externer Fragmentierung! (vgl. auch Kapitel Dateisysteme) WS 2009/1018

19 Dynamische Partitionierung WS 2009/1019 BS, 8MB 56 MB BS, 8MB 36 MB Prozess 1 20 MB BS, 8MB 22MB Prozess 1 20 MB Prozess 2 14MB BS, 8MB 4 MB Prozess 1 20 MB Prozess 2 14MB Prozess 3 18 MB BS, 8MB 4 MB Prozess 1 20 MB Prozess 3 18 MB BS, 8MB 4 MB Prozess 1 20 MB 6 MB Prozess 3 18 MB P. 4, 8MB BS, 8MB 4 MB Prozess 1 20 MB 6 MB Prozess 3 18 MB P. 4, 8MB BS, 8MB 4 MB Prozess 2 14 MB 6 MB Prozess 3 18 MB P. 4, 8MB 6 MB

20 Dynamische Partitionierung Defragmentierung erforderlich! – Aufwändig – Speicherverdichtung nur erfolgreich, wenn dynamische Relokation möglich (Speicherreferenzen werden nicht ungültig!) Speicherzuteilungsalgorithmen: – Best Fit: Suche kleinsten Block, der ausreicht. – First Fit: Suche beginnend mit Speicheranfang bis ausreichender Block gefunden. – Next Fit: Suche beginnend mit der Stelle der letzten Blockzuweisung. WS 2009/1020

21 Dynamische Partitionierung Analyse von Speicherzuteilungsalgorithmen: – Im Schnitt ist First Fit am besten! – Next Fit: Etwas schlechter Typischer Effekt: Schnelle Fragmentierung des größten freien Speicherblocks am Ende des Speichers – Best Fit: Am schlechtesten Produziert schnell eine Reihe von sehr kleinen Fragmenten, die ohne Defragmentierung nie mehr benutzt werden können. Zudem: langsames Verfahren WS 2009/1021

22 Buddy-System Nachteil statische Partitionierung: – Beschränkte Anzahl nicht-ausgelagerter Prozesse – Interne Fragmentierung Nachteil dynamische Partitionierung: – Defragmentierung nötig, wegen externer Fragmentierung Buddy-System (Halbierungsverfahren): – Kompromiss zwischen statischer und dynamischer Partitionierung – Eigenschaften: Anzahl nicht-ausgelagerter Prozesse dynamisch Interne Fragmentierung beschränkt Keine explizite Defragmentierung WS 2009/1022

23 Buddy-System Prinzip: – Verwalte Speicherblöcke der Größe 2 K, L K U 2 L = Größe des kleinsten zuteilbaren Blocks 2 U = Größe des größten zuteilbaren Blocks (z.B. Gesamtgröße des Speichers) – Zu Beginn: Es existiert genau ein Block der Größe 2 U. Anforderung eines Blocks der Größe s: – Bei 2 U-1 < s 2 U : Weise gesamten Speicher zu. – Sonst: Teile auf in 2 Blöcke der Größe 2 U-1. – Bei 2 U-2 < s 2 U-1 : Weise einen der beiden Blöcke zu. – Sonst: Wähle einen der beiden Blöcke aus und teile. – … – Fahre fort bis zu Block der Größe 2 K mit 2 K-1 < s 2 K. Bei resultierendem Block ist der Verschnitt kleiner als die halbe Blockgröße. WS 2009/1023

24 Buddy-System Verwalte f.a. L K U Listen mit freien Blöcken der Größe 2 K. – Allgemeiner Fall: Anforderung eines Blocks der Größe 2 i-1 < s 2 i : Vergebe Block aus Liste i, wenn vorhanden. Sonst: Wähle Block aus nächstgrößerer nichtleerer Liste. Teile rekursiv auf, bis ein Block der Größe 2 i vorhanden. – Wenn nach Freigabe eines Blocks der Größe 2 K der entsprechende Partnerblock der Größe 2 K ebenfalls frei war: Verschmelze die Blöcke zu einem Block der Größe 2 K+1. Mache rekursiv mit Verschmelzen weiter. WS 2009/1024

25 Buddy-System Beispiel: – Speicher der Größe 1 GB – Folge von Anforderungen und Freigaben: A fordert 100 MB an. B fordert 240 MB an. C fordert 64 MB an. D fordert 256 MB an. Freigabe B Freigabe A E fordert 75 MB an. Freigabe C Freigabe E Freigabe D Annahme: Obergrenze der Blockgröße: 1 GB, Untergrenze: 64 MB WS 2009/1025

26 Buddy-System WS 2009/ GB Freie Blöcke: 1 GB: MB: MB: MB: 0 64 MB: 0 Zunächst verfügbar: Es folgt Anforderung A: 100 MB, d.h. Block der Größe 128 MB.

27 Buddy-System WS 2009/ GB Freie Blöcke: 1 GB: MB: MB: MB: 1 64 MB: 0 Nach Anforderung A: 100 MB, d.h. Block der Größe 128 MB: Es folgt Anforderung B: 240 MB, d.h. Block der Größe 256 MB. A: 128 MB

28 Buddy-System WS 2009/ GB Freie Blöcke: 1 GB: MB: MB: MB: 1 64 MB: 0 Nach Anforderung B: 240 MB, d.h. Block der Größe 256 MB Es folgt Anforderung C: 64 MB, d.h. Block der Größe 64 MB. B: 256 MB A: 128 MB

29 Buddy-System WS 2009/ GB Freie Blöcke: 1 GB: MB: MB: MB: 0 64 MB: 1 Nach Anforderung C: 64 MB, d.h. Block der Größe 64 MB Es folgt Anforderung D: 256 MB, d.h. Block der Größe 256 MB. B: 256 MB A: 128 MB C:64MB

30 Buddy-System WS 2009/ GB Freie Blöcke: 1 GB: MB: MB: MB: 0 64 MB: 1 Nach Anforderung D: 256 MB, d.h. Block der Größe 256 MB Es folgt Freigabe B. B: 256 MB A: 128 MB C:64MB D: 256 MB

31 Buddy-System WS 2009/ GB Freie Blöcke: 1 GB: MB: MB: MB: 0 64 MB: 1 Nach Freigabe B: Es folgt Freigabe A. A: 128 MB C:64MB D: 256 MB

32 Buddy-System WS 2009/ GB Freie Blöcke: 1 GB: MB: MB: MB: 1 64 MB: 1 Nach Freigabe A: Es folgt Anforderung E: 75 MB, d.h. Block der Größe 128 MB. C:64MB D: 256 MB

33 Buddy-System WS 2009/ GB Freie Blöcke: 1 GB: MB: MB: MB: 0 64 MB: 1 Nach Anforderung E: 75 MB, d.h. Block der Größe 128 MB: Es folgt Freigabe C. D: 256 MB E: 128 MB C:64MB

34 Buddy-System WS 2009/ GB Freie Blöcke: 1 GB: MB: MB: MB: 0 64 MB: 2 Bei Freigabe C: D: 256 MB E: 128 MB Buddies

35 Buddy-System WS 2009/ GB Freie Blöcke: 1 GB: MB: MB: MB: 1 64 MB: 0 Nach Freigabe C: D: 256 MB E: 128 MB Es folgt Freigabe E.

36 Buddy-System WS 2009/ GB Freie Blöcke: 1 GB: MB: MB: MB: 2 64 MB: 0 Bei Freigabe E: D: 256 MB Buddies

37 Buddy-System WS 2009/ GB Freie Blöcke: 1 GB: MB: MB: MB: 0 64 MB: 0 Bei Freigabe E: D: 256 MB Buddies

38 Buddy-System WS 2009/ GB Freie Blöcke: 1 GB: MB: MB: MB: 0 64 MB: 0 Nach Freigabe E: D: 256 MB Es folgt Freigabe D.

39 Buddy-System WS 2009/ GB Freie Blöcke: 1 GB: MB: MB: MB: 0 64 MB: 0 Bei Freigabe D: Buddies

40 Buddy-System WS 2009/ GB Freie Blöcke: 1 GB: MB: MB: MB: 0 64 MB: 0 Bei Freigabe D: Buddies

41 Buddy-System WS 2009/ GB Freie Blöcke: 1 GB: MB: MB: MB: 0 64 MB: 0 Nach Freigabe D: Gesamter Speicher wieder als 1 Block verfügbar.


Herunterladen ppt "Systeme 1 Kapitel 8 Speicherverwaltung WS 2009/101."

Ähnliche Präsentationen


Google-Anzeigen