7. Speicherverwaltung

Ähnliche Dokumente
Zwei Möglichkeiten die TLB zu aktualisieren

Hauptspeicherverwaltung - Memory Management

RO-Tutorien 15 und 16

Tutorium Rechnerorganisation

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging

Virtueller Speicher und Memory Management

Technische Realisierung (1)

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

Speicherverwaltung (Swapping und Paging)

Teil 2: Speicherstrukturen

Speicherverwaltung. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach

Leichtgewichtsprozesse

(Cache-Schreibstrategien)

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Wunschvorstellung der Entwickler vom Speicher

Übung Praktische Informatik II

Betriebssysteme. Speicherverwaltung - Grundlegende Konzepte. Sommersemester 2014 Prof. Dr. Peter Mandl. Prof. Dr. Peter Mandl Seite 1.

Freispeicherverwaltung

Freispeicherverwaltung Martin Wahl,

Betriebssysteme Sommersemester Betriebssysteme. 5. Kapitel. Adressumsetzung. Dr. Peter Tröger / Prof. M. Werner. Professur Betriebssysteme

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Abbilden von virtuellen auf physikalische Adressen

Lösung von Übungsblatt 2

3 Schnittstelle zum Betriebssystem 3.1 Einleitung

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Lösung von Übungsblatt 2

Überschrift. Speicherverwaltung. Prof. Dr. Margarita Esponda Freie Universität Berlin 2011/2012

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Technische Informatik II (TI II) (8) Speicherverwaltung. Sebastian Zug Arbeitsgruppe: Embedded Smart Systems

Inhaltsübersicht. Speicherverwaltung Teil I. Motivation. Prinzipielle Arten der Speicherverwaltung

Linux Paging, Caching und Swapping

Prof. Dr. Sharam Gharaei. Inhaltsverzeichnis. 1 Einleitung 1. 2 Grundlage der Realisierung 2. 3 Die Realisierung 3. Literaturverzeichnis 7

Speicher- und Cacheverwaltung unter Linux. Ralf Petring & Guido Schaumann

Wie groß ist die Page Table?

Lösung von Übungsblatt 5

Lösungsvorschlag für Übung September 2009

5.6 Segmentierter virtueller Speicher

Memory Management. Peter Puschner Institut für Technische Informatik

Pru fungsprotokoll. Prüfer: Dr. Lenhardt Beisitzer:? Datum der Prüfung: Dauer: 25 Minuten

Speicherverwaltung III

Echtzeitbetriebssysteme

Dynamisches Speichermanagement

Kapitel 6 Speicherverwaltung Seite 1 zum Teil nach: Silberschatz&Galbin, Operating System Concepts, Addison-Wesley)

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler

Cache Blöcke und Offsets

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner

Aufgabe 4 : Virtueller Speicher

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Kapitel VI. Speicherverwaltung. Speicherverwaltung

Fachbericht Thema: Virtuelle Speicherverwaltung

Rechnergrundlagen SS Vorlesung

Bsys2 Zusammenfassung. Definition Die CPU ist das Gehirn des Computers. Sie holt Befehle aus dem Speicher und führt sie aus.

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

2.3 Prozessverwaltung

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen).

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 9 und Präsenzaufgaben Übung 10

Anbindung zum Betriebssystem (BS)

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22

Linux Memory Management für MySQL

5 Kernaufgaben eines Betriebssystems (BS)

Intel x86 Bootstrapping

Übung 4 - Betriebssysteme I

Technische Informatik 1 - HS 2017

Memory Management Units in High-Performance Processors

Einführung Leistungsmerkmale Aufbau am Beispiel FAT16. Das Filesystem FAT. Peter Schmid. Hochschule für Technik Zürich Studiengang Informatik

Speicherverwaltung. Kapitel VI. Adressbindung (2) Adressbindung (1) Speicherverwaltung

5.4 Segmentierung. Einfachstes Beispiel: 1 Code-Segment + 1 Datensegment. 0 codelength 0 datalength. bs-5.4 1

Besprechung der Probeklausur Übungsscheine, inoffizielle Evaluation Übungsaufgaben Noch Fragen?

Transkript:

7. Speicherverwaltung Ziele Zuteilung des Arbeitsspeicher Abbildung der symbolischen Adresse auf die physikalische Adresse Adress-Transformation Symbolische Adresse verschiebbare Adresse physikalische Adresse Adress-Bindung Compilationszeit Bindezeit Ladezeit Ausführungszeit Betriebse Harald Kosch Seite

Monoprogrammierung Das Betriebs belegt feste Speicherbereiche. Der freie Speicher wird einem Benutzerprogramm zur Verfügung gestellt. Das Benutzerprogramm organisiert seinen Speicherbedarf selber, z.b. Statische (global), dynamische (heap) und halbdynamische (stack) Daten Overlay von Programmen (Programm wird in mehreren Phasen geladen) XFFF Betriebssytem im ROM Gerätetreiber im ROM Benutzerprogramm Benutzerprogramm Benutzerprogramm Betriebssytem im RAM (a) (b) Betriebssytem im RAM (c) Figure : Drei Arten der Speicherorganisation mit dem Betriebs und einem Benutzerprozeß Betriebse Harald Kosch Seite

Multiprogrammierung CPU-Ausnützung = - p n wobei p die Wahrscheinlichkeit ist, daß ein Prozeß untätig (wartend) ist, und n die Anzahl der Prozesse ist. 8 6 CPU-Ausnutzung (in Prozent) % E/A-Wartezeit 5% E/A-Wartezeit 8% E/A-Wartezeit 5 6 7 8 9 Multiprogrammierungsgrad Figure : CPU-Ausnutzung als eine Funktion von der Anzahl der im Speicher gehaltenen Prozesse Betriebse Harald Kosch Seite 5

benötigte Ankunfts- CPU- Auftrag zeit Minuten : : :5 : (a) # Prozesse CPU untätig.8.6.5. CPU beschäftigt..6.9.59 CPU/Prozeß..8.6.5 (b) Auftrag..9.8. Auftrag beginnt.9.8..9..8.. Auftrag terminiert 5 7.6 8..7 Zeit relativ zum Ankommen des Auftrags (c).9.9..7 Figure : (a) Ankunft und benötigte Arbeit der vier Aufträge. (b) CPU- Ausnutzung der Aufträge bis mit 8%-iger E/A-Wartezeit. (c) Folge der Ereignisse, wie die Aufträge ankommen und enden Betriebse Harald Kosch Seite 6

Feste Partitionierung Eine oder mehrere Warteschlangen. Anwendungen in die am besten passende Partition. Viel zu große Anwendungen sind ausgeschlossen. Viel zu kleine Anwendungen verschwenden Speicher (interne Fragmentierung). IBM OS/MFT. Mehrere Eingabeschlangen Partition 7 K Partition Partition Eine Eingabeschlange Partition K Partition Partition Betriebs (a) K K Partition Partition Betriebs (b) Figure 5: (a) Feste Speicherpartitionierung mit getrennten Eingabeschlangen für jede Partition (b) Feste Speicherpartitionierung mit einer einzigen Eingabeschlange Partitionierung mit variablen Größen Löst die Probleme von MFT, muß aber das Problem der externen Fragmentierung lösen. IBM OS/MVT Betriebse Harald Kosch Seite 7

Fragmentierung des Speichers K K K K K P P P P terminates allocate P5 P5 K K K K K P P" terminates allocate P P P P 7 K 7 K 7 K K K K K K P P P P P K K K K K 56 K 56 K 56 K 56 K 56 K Figure 6: Speicherverwaltung und long-term Scheduling Externe Fragmentierung bei variablen Blockgrößen Die zusammenhängenden Bereiche (Partitionen) werden immer kleiner Interne Fragmentierung bei festen Blockgrößen Innerhalb der Partitionen bleiben unausgenützte Bereiche Betriebse Harald Kosch Seite 8

Speicherverdichtung K K P5 P5 K 9 K P P (a) 7 K 6 K P K 9 K P K 56 K 56 K K 5 K 6 K P P K K 5 K 6 K 8 K P P P K 5 K 6 K P P P K 5 K 6 K P P K K P K P K K P 9 K (b) K 5 K 5 K P 9 K 9 K P 9 K K K original allocation K moved 6 K K moved K 9 K P K moved K Figure 7: (a) Verdichtung (b) Vergleich einiger Verdichtungsmöglichkeiten Dynamische Verschiebung von Partitionen Zeitaufwendig: Optimierung notwendig Benutzung von ausgeklügelten Allozierungsstrategien Betriebse Harald Kosch Seite 9

Allozierungsstrategien Blöcke fester Länge (Bitmap oder Liste) Bitmap ist einfach, aber langsam, rigide und fehleranfällig A (b) B C 8 6 (a) P 5 H 5 P 8 6 P H 8 P 6 P 6 H 9 X D E Loch Länge Start bei 8 (c) Prozeß Figure 8: Ein Teil des Speichers mit fünf Prozessen und drei Löchern. Die schattierten Bereiche ( in der Bitmap) sind frei. (b) Die korrespondierende Bitmap. (c) Dieselbe Information als verknüpfte Liste. Blöcke variabler Länge (Listen der freien und der allozierten Blöcke) first fit (nehme den ersten passenden Block) next fit (first fit ab letzter Stelle) best fit (langsam) worst fit (Löcher bleiben größer, ist aber langsam) quick fit (getrennte Liste für häufige Fälle) Deallozierung langsam: Nachbarn sollten zusammengeschmolzen werden. Betriebse Harald Kosch Seite

Allozierung mit dem Buddy-System (D.E Knuth) Memory 8 K 56 K 8 K 5 K 6 K 768 K 896K M Holes Start Request for 7 Request for 5 Request for 8 Return of A Request for 6 Return of B Return of D Return of C A 8 56 5 A B 6 56 5 A 8 8 8 B B B 6 6 6 D D C C C C 8 8 8 8 5 5 5 5 56 C 8 5 Figure 9: Das Buddy-System. Die horizontalen Achsen repräsentieren die Speicheradressen. Die Nummern sind die Größe der nichtallozierten Speicherblöcke in K. Die Buchstaben stellen allozierte Speicherblöcke dar. Die Blockgröße sind Zweierpotenzen Jede Größe ist auf einer eigenen Liste Blöcke werden so lange halbiert, bis ein geeigneter Block entsteht Schnell beim Allozieren und Deallozieren (kurze Liste) Große interne Fragmentierung Wird in Linux als Basisalgorithmus verwendet (zusätzlich zu demand paging) Betriebse Harald Kosch Seite

Allozierungsstrategie: Paging logical address physical address CPU p d f d Memory p{ f page table Figure : Paging Hardware Der Hauptspeicher wird in Seiten fester Größe aufgeteilt Abbildung: logische Adresse physikalische Adresse Unterstützung der Hardware Memory Management Unit (MMU) Physikalisch verteilte Speicher werden logisch zusammenhängend gemacht (Verdichtung nicht mehr nötig!) Betriebse Harald Kosch Seite

frame number page page page page logical memory 7 page table 5 6 page page page 7 page physical memory Figure : Paging Modell mit logischem und physikalischem Speicher Page (Seite) Frame (Kachel) Page Größen: 56, 5,... 96 Bytes p = U DIV P d = U MOD P P: Page size, U: logische Adresse p: Page Nummer, d: Offset in der Page Wenn P eine Zweierpotenz ist, dann: p d Betriebse Harald Kosch Seite

5 6 7 8 9 5 a b c d e f g h i j k l m n o p logical memory 5 6 page table i j k l 8 m n o p 6 8 a b c d e f g h physical memory Figure : Paging-Beispiel mit -Byte Pages P =, Speichergröße = 8 Pages ( = Bytes) Der logische Adreßraum des Beispielprozesses beträgt Pages = 6 Bytes Paging ist eine Art dynamische Reallokation. Alle logischen Adressen werden auf physikalische Adressen abgebildet. Virtueller Speicher: Anzahl logischer Adressen physikalische Adressen. Betriebse Harald Kosch Seite

Reentranter Code Ed Ed Ed Data job Ed Ed Ed Data job 6 page table for job 6 page table for job Ed Ed 6 Ed 7 page table Data for job job 5 6 7 8 9 Data Data Ed Ed Ed Data Figure : Codesharing mit Pages Betriebse Harald Kosch Seite 5

Implementierung von Page Tabellen Second level page tables Top level page table... Page table for the top M of memory Bits PT PT Offset (a)... (b)... To pages Figure : (a) Eine -bit Adresse mit zwei Pagetable-Feldern. Page-Tabellen (b) Zweistufige Kleine Page-Tabelle Spezialregister (bis 56) Große Page-Tabelle Tabelle im Speicher eventuell Cache (TLB - Translation Lookaside Buffer) Einschränkung der Größe: mehrschichtige Tabellen Betriebse Harald Kosch Seite 6

Zuteilung an Jobs (a) New Job page page page page Free Frame List 8 5 5 6 7 8 9 Free Frame List 5 page page New Job page page page page 5 6 7 8 page (b) New Job Page Table 8 9 page Keine externe Fragmentierung Interne Fragmentierung P/ in der letzten Seite eines zusammenhängendes Bereiches Betriebse Harald Kosch Seite 7

Invertierte Page-Tabelle Konventionelle Seitentabelle für einen Prozeß Systemweite invertierte Seitentabelle Flag Bit Seitenrahmen Pid Flag Bit Seitenrahmen virtuelle Seite K virtuelle Seite virtuelle Seite virtuelle Seite.... Seitenrahmen Seitenrahmen Seitenrahmen.... Eintrag der ausgewählten virtuellen Seite K Eintrag der ausgewählten virtuellen Seite K (a) (b) Figure 5: (a) Eine konventionelle Seitentabelle (b) Eine invertierte Seitentabelle Wird bei Rechnern mit viel Adressbits (6 bit) aktuell Die Page-Tabellen würden unrealistisch groß werden Die Tabelle wird nach den physikalischen Seite geordnet Fehlt eine Seite, so muß die Tabelle nach der logischen Adresse durchsucht werden Hashing kann (muß) das Verfahren beschleunigen Betriebse Harald Kosch Seite 8

Segmentierung subroutine stack s{ segment table limit base sqrt symbol table CPU (s, d) main program < no yes trap; addressing error physical memory logical address space (a) (b) Figure 6: (a) Benutzersicht eines Programms (b) Segmentation Hardware Speicher besteht aus Blöcken variabler Länge (Segmente) näher der Benutzersicht Interne Fragmentierung fällt weg Externe Fragmentierung bleibt Problem Verdichtung relativ einfach alles ist verschiebbar Betriebse Harald Kosch Seite 9

subroutine Segment sqrt stack Segment symbol table Segment Segment Table limit base 6 7 Segment Segment Segment main program Segment Segment 7 Segment 57 logical address space (a) 6 Segment 67 physical memory Figure 7: Beispiel zu Segmentierung Segment Table Implementierung: Register (PDP /5) s d 5 8 p 8 kb Memory Segment Table Base Register (STBR) Segment Table Length Register (STLR) Cache Betriebse Harald Kosch Seite

Segmentierung und Paging kombiniert z.b. die Lösung ab Intel 886 (der 86er kennt nur Segmentierung) Programmsicht: Segmentierung. Die Segmente können aus Speicherzellen oder Seiten bestehen. Selektor: wählt ein Segment aus. Bits Index = GDT/ = LDT Privilege level (-) Figure 8: Selector des Intel Pentium Deskriptor: Beschreibt ein Segment : 6-Bit segment : -Bit segment : Li is in bytes : Li is in pages : Segment is absent from memory : Segment is present in memory Privilege level ( - ) : System : Application Segment type and protection Base - G D Limit 6-9 P DPL S Type Base 6 - Base - 5 Limit - 5 Bits Relative address Figure 9: Ein Pentium Code Segment Descriptor Seite: kb Betriebse Harald Kosch Seite

Lineare Adresse -bit virtuelle Adresse Selector Offset Descriptor Base address Limit Other fields -Bit linear address Figure : Umwandlung eines (Selektor, Offset) Paares in eine lineare Adresse Page-Directory Jedem Prozeß gehört ein zweischichtiges Directory. Eine Pagetabelle kann KB = MB behandeln. Unnötige Tabellen werden nicht erzeugt (für Speicher < MB genügt z.b. nur eine) Linear address Bits Dir Page Offset Page directory Page table Word selected Page frame Entries Dir Page Offset Directory entry points to page table Page table entry points to word Figure : Mapping einer linearen Adresse auf eine physikalische Adresse Betriebse Harald Kosch Seite