Speicher. Betriebssysteme. Hermann Härtig TU Dresden

Ähnliche Dokumente
Speicher. Betriebssysteme WS 15/16 Große Teile nach Tanenbaum. Hermann Härtig TU Dresden

Sharing und invertierte Seitentabellen

SPEICHER. Hermann Härtig TU Dresden TEILWEISE NACH ANDY TANENBAUM, MODERN OPERATING SYSTEMS

SPEICHER. Hermann Härtig TU Dresden TEILWEISE NACH ANDY TANENBAUM, MODERN OPERATING SYSTEMS WS 2017/2018

Speicher. Betriebssysteme (zu Teilen nach Tanenbaum) Hermann Härtig TU Dresden. Tanenbaum MOS

Speicher. Betriebssysteme (zu großen Teilen nach Tanenbaum) Hermann Härtig TU Dresden

5. Aufgabenblatt Speicherverwaltung

Tutorium Rechnerorganisation

RO-Tutorien 15 und 16

Betriebssysteme BS-S SS Hans-Georg Eßer. Foliensatz S: Speicherverwaltung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/04/14

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

Wegweiser: Virtueller Speicher

Betriebssysteme I WS 2016/2017. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404

Virtueller Speicher und Memory Management

Wegweiser: Virtueller Speicher

Technische Realisierung (1)

Teil 2: Speicherstrukturen

Leichtgewichtsprozesse

Leichtgewichtsprozesse

(Cache-Schreibstrategien)

Übung Praktische Informatik II

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

2.3 Prozessverwaltung

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

Übung zu Einführung in die Informatik # 10

Lösung von Übungsblatt 2

Echtzeitbetriebssysteme

Naiver Ansatz. Blöcke und Seiten. Betriebssysteme I Sommersemester 2009 Kapitel 6: Speicherverwaltung und Dateisysteme

Betriebssysteme (BS)

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler

5.5 Virtueller Speicher

Lösung von Übungsblatt 2

Virtueller Speicher WS 2011/2012. M. Esponda-Argüero

Wie groß ist die Page Table?

Wunschvorstellung der Entwickler vom Speicher

Zwei Möglichkeiten die TLB zu aktualisieren

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus

Hauptspeicherverwaltung - Memory Management

Cache-Speicher. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach

Betriebssysteme Kap J, Teil C: Paging, Pagereplacement

5.5.5 Der Speicherverwalter

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

Konzepte von Betriebssystem- Komponenten Olessia Usik 20. Juni 2005

Übung zu Grundlagen der Betriebssysteme. 14. Übung

, 2014W Übungsgruppen: Mo., Mi.,

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

RO-Tutorien 17 und 18

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

5 Kernaufgaben eines Betriebssystems (BS)

Linux Paging, Caching und Swapping

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

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

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

Adreßräume. Motivation. Seitenersetzung (Paging) Systemsoftware. = Referenzlokalität. Seite 2.1. Instruktionen werden wiederholt ausgeführt

Rechnergrundlagen SS Vorlesung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher

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.

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

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

Technische Informatik 1 - HS 2017

Lösungsvorschlag für Übung September 2009

Grundlagen der Informatik III Wintersemester 2010/2011

5.5 Virtueller Speicher

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

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

, 2015W Übungsgruppen: Mo., Mi.,

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Lösung von Übungsblatt 5

Cache Blöcke und Offsets

Grundlagen Rechnerarchitektur und Betriebssysteme

Freispeicherverwaltung Martin Wahl,

Speicherverwaltung (Swapping und Paging)

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Memory Management. Peter Puschner Institut für Technische Informatik

Aufgabe 1 Sicherheit. Klausur Betriebssysteme und Sicherheit, Name: Matrikel-Nr.: Studiengang: 7 Punkte

DYNAMISCHE VERWALTUNG VIRTUELLEN SPEICHERS FÜR ECHTZEITSYSTEME

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

Betriebssysteme 1. Thomas Kolarz. Folie 1

Speicherarchitektur (23) Suchen einer Seite:

Fachbericht Thema: Virtuelle Speicherverwaltung

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

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

Betriebssysteme I WS 2017/18. Prof. Dr. Dirk Müller. 05a 64-/32-Bit-Architekturen

Vorlesung Betriebssysteme

Freispeicherverwaltung

Kapitel VI. Speicherverwaltung. Vorlesung Betriebssysteme

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

Hardware und Gerätetreiber

Transkript:

Speicher Betriebssysteme Hermann Härtig TU Dresden

Aufgaben der Speicherverwaltung 3G 20K 8K 0 BS Stack BSS Data Text Bereitstellung von Adressräumen Aufbau von Adressräumen durch Zuordnung logischer Objekte (Code- Segment, Daten-Segment, Stack, ) Verwaltung des Betriebsmittels Hauptspeicher Schutz vor unerlaubten Zugriffen Organisation der gemeinsamen Nutzung ( Sharing ) physischen Speichers und logischer Objekte Betriebssysteme WS 2018, Speicher!2

Wegweiser Elementare Techniken Virtueller Speicher (Paging) Anliegen, Begriffe, Vorgehen Adressumsetzung Seitenersetzung Speicherobjekte Caches Betriebssysteme WS 2018, Speicher!3

Statisch Statische Speicherverwaltung keine Ein-/Auslagerung von Programmen/Daten Einfach-Rechner (MS-DOS), eingebettete Systeme Monoprogramming: ein Programm gleichzeitig Programme werden nacheinander geladen und ausgeführt 0xFF.. BIOS (Gerätetreiber) Benutzerprogramm 0x0 Betriebssysteme WS 2018, Speicher!4 BS

Multiprogramming Mehrere Benutzer-Programme gleichzeitig; für jedes Benutzerprogramm gibt es einen oder mehrere Prozesse Motivation (vgl. Prozesse) mehrere Benutzer eines Rechners (multiuser) mehrere Benutzerprozesse eines Benutzers Benutzerprozesse und Systemprozesse Multiprogramming vs. parallele Threads/Prozesse parallele Prozesse Voraussetzung für Multiprogramming 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 2018, Speicher!5

Feste oder Variable Speicher-Partitionierung Relokation Programme verwenden unterschiedliche Adressen, wenn sie in unterschiedlichen Partitionen ablaufen Umsetzen der Adressen beim/vor dem Laden (Software) zur Laufzeit (Hardware) Programm4 leer Programm2 leer Programm1 Betriebssystem Schutz der Partitionen voreinander Überprüfung der Adressen zur Laufzeit (Hardware) Betriebssysteme WS 2018, Speicher!6

Einfaches Modell: Basis- und Limit-Register CPU Programm4 LR BR leer Programm2 gesamte Adressierung relativ zu Basis-Register z. B.: load R, 100 Zugriff auf: BR+100 leer 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 2018, Speicher!7

Wachsen von Partitionen B B A A Einlagerungsalgorithmen zur Verringerung des Verschnitts First fit, Best fit, Buddy, Verwaltung Bitmaps, Listen, Bäume, Betriebssysteme WS 2018, Speicher!8

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 2018, Speicher!9

Partitionen: Nachteile und Probleme Verschnitt: Speicherfragmente zwischen den Partitionen können unpassende Größe haben Programmstartzeiten: vollständiges Laden vor Ausführung Limitation der Größe eines Prozesses durch verfügbaren Hauptspeicher ruhende Teile: auch ungenutzte Bereiche belegen Speicher Ein-/Auslagerungszeit: vollständiger Prozess wird ausgelagert Platzbedarf auf Externspeicher Betriebssysteme WS 2018, Speicher!10

Overlays Überlagerungstechnik Programmierer organisiert sein Programm in Stücken, die nicht gleichzeitig im Hauptspeicher sein müssen Beliebig große Programme durch Overlays Hauptspeicher Hauptprogramm Overlaytabelle Overlay1 Overlay2 Overlay3 Betriebssysteme WS 2018, Speicher!11

Wegweiser: Virtueller Speicher Anliegen, Begriffe, Vorgehen Adressumsetzung Seitenersetzung Speicherobjekte Betriebssysteme WS 2018, Speicher!12

Adressraum Begriff Menge direkt zugreifbarer Adressen und deren Inhalte Größe bestimmt durch Rechner-Architektur Physischer Adressraum durch Adressleitungen gebildeter Adressraum, z. B. am Speicher- oder Peripherie-bus eines Rechners Abbildung der Prozessor-Adressen auf die vorhandenen Speicherbausteine und E/A-Controller Virtueller (logischer) Adressraum eines Prozesses dem Prozess zugeordneter Adressraum Betriebssysteme WS 2018, Speicher!13

Physische Adressräume CPU Bridge I/O I/O MEM Betriebssysteme WS 2018, Speicher!14

Nutzung eines virtuellen Adressraums Unix-Adressraum Programm Daten Keller BS Jeder Prozess bekommt seinen eigenen virtuellen Adressraum zur exklusiven Nutzung Prozess kann diesen nach eigenen Anforderungen individuell gestalten Regionen (Segmente) Logisch zusammenhängende Adressbereiche Speicherobjekte werden Regionen zugeordnet: Mapping Betriebssysteme WS 2018, Speicher!15

Virtueller Speicher Forderungen 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 von anderen Prozessen Einschränken der Zugriffsrechte auf bestimmte Bereiche (z. B. Code nur lesen) sinnvoller Einsatz des physischen Speichers: effiziente Nutzung durch viele Prozesse, kurze Ladezeiten transparent für Programmierer, aber steuerbar Betriebssysteme WS 2018, Speicher!16

Idee: Indirektion Prinzipien der virtuellen Speichers Prozess (Code, Daten) arbeitet mit virtuellen Adressen flexible Abbildung auf physische Adressen Granularität durch Partitionierung des virtuellen Adressraums in Seiten / Pages der Hauptspeichers in Kacheln / Rahmen / Page Frames jeweils gleicher Größe Organisation der Zuordnung der Stücke zueinander durch Hardware und Betriebssystem Betriebssysteme WS 2018, Speicher!17

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 2018, Speicher!18

Beobachtung Voraussetzung: Lokalitätsprinzip 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 2018, Speicher!19

Virtueller Speicher: Begriff Der virtuelle Speicher ist eine Technik, die jedem Prozess einen eigenen, vom physischen Hauptspeicher unabhängigen logischen (virtuellen) Adressraum bereitstellt, basierend auf einer Partitionierung von Adressräumen in Einheiten einheitlicher Größe (Seiten, Rahmen) einer Adressumsetzung durch Hardware, gesteuert durch das Betriebssystem der Nutzung eines externen Speichermediums einer Ein- und Auslagerung von Teilen des logischen Adressraums eines Prozesses durch Betriebssystem Betriebssysteme WS 2018, Speicher!20

Teilaufgaben Virtueller Speicher im Betriebssystem Verwaltung des Betriebsmittels Hauptspeicher Aufbau der Adressraumstruktur: Speicherobjekte und Regionen Seitenfehler-Behandlung Interaktion der Prozess- und Speicher-Verwaltung Betriebssysteme WS 2018, Speicher!21

Wegweiser: Virtueller Speicher Anliegen, Begriffe, Vorgehen Adressumsetzung Seitenersetzung Speicherobjekte Betriebssysteme WS 2018, Speicher!22

Rechnerarchitektur: Addressumsetzung CPU E/A- Geräte V virtuelle Adresse MMU MEM IOMMU P physische Adresse MMU (Memory Management Unit) Abbildung: virtuelle reale (physische) Adresse Schutz bestimmter Bereiche (lesen/schreiben) Betriebssystemaufruf bei abwesenden/geschützten Seiten: Seitenfehler / Page Fault Betriebssysteme WS 2018, Speicher!23

Prinzipielle Arbeitsweise einer MMU V 0 0 1 0 1 0 0 1 0 1 1 0 virtuelle Adresse P physische Adresse Betriebssysteme WS 2018, Speicher!24

Prinzipielle Arbeitsweise einer MMU CPU V 0 0 1 0 1 0 0 1 0 1 1 0 virtuelle Adresse Seiten# Offset Seitentabelle Kachel# Present Rechte 0 010 1 0 1 001 1 0 2 110 1 0 3 000 1 0 4 100 1 1 5 011 1 1 6 000 0 1 7 000 0 1 8 000 0 1 9 101 1 1 10 000 0 1 11 111 1 1 12 000 0 1 13 000 0 1 14 000 0 1 15 000 0 1 P Zeiger physische Adresse Betriebssysteme WS 2018, Speicher!25

Prinzipielle Arbeitsweise einer MMU CPU V 0 0 1 0 1 0 0 1 0 1 1 0 virtuelle Adresse Seiten# Offset Seitentabelle Kachel# Present Rechte 0 010 1 0 1 001 1 0 2 110 1 0 3 000 1 0 4 100 1 1 5 011 1 1 6 000 0 1 7 000 0 1 8 000 0 1 9 101 1 1 10 000 0 1 11 111 1 1 12 000 0 1 13 000 0 1 14 000 0 1 15 000 0 1 P 1 1 0 Zeiger Tabellenindex physische Adresse Betriebssysteme WS 2018, Speicher!26

Prinzipielle Arbeitsweise einer MMU CPU V 0 0 1 0 1 0 0 1 0 1 1 0 virtuelle Adresse Seiten# Offset Seitentabelle Kachel# Present Rechte 0 010 1 0 1 001 1 0 2 110 1 0 3 000 1 0 4 100 1 1 5 011 1 1 6 000 0 1 7 000 0 1 8 000 0 1 9 101 1 1 10 000 0 1 11 111 1 1 12 000 0 1 13 000 0 1 14 000 0 1 15 000 0 1 1 1 0 Kachel# Offset P 1 1 0 1 0 0 1 0 1 1 0 Zeiger Tabellenindex Kopie physische Adresse Betriebssysteme WS 2018, Speicher!27

Aufbau eines Seitentabelleneintrags referenced writable present page frame number modified protection Seiten-Attribute present Seite befindet sich im Hauptspeicher protection erlaubte Art von Zugriffen (CPU-Modus) writable schreibbar, manchmal auch executable-bit modified schreibender Zugriff ist erfolgt ( dirty ) referenced irgendein Zugriff ist erfolgt Betriebssysteme WS 2018, Speicher!28

Bei jedem Speicherzugriff: Speicherzugriff MMU überprüft Präsenz und Rechte mögliche Fehler: not present, not writable, protected, Ablauf eines Seitenfehlers (exception): Zurücksetzen des auslösenden Befehls Umschaltung des Prozessormodus Ablegen einer Beschreibung des Zustandes, der auslösenden Adresse und der Zugriffsart auf dem Stack Sprung in den Kern Seitenfehlerbehandlung durch Betriebssystem letzte Instruktion des Handlers: iret Betriebssysteme WS 2018, Speicher!29

Seitenfehlerbehandlung Echter Fehler zum Beispiel Zugriff auf ungültigen Speicherbereich Prozess wird Signal SIGSEGV zugestellt Standardreaktion: Prozess wird beendet Reparabler Seitenfehler Zugriff gültig, aber Seite momentan nicht im Speicher wird transparent im Betriebssystem behandelt je nach Speicherobjekt zum Beispiel durch Nachladen entsprechende Manipulation der Seitentabelle Prozess wird anschließend fortgesetzt Betriebssysteme WS 2018, Speicher!30

Seiten, Kacheln, Blöcke Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware BS Software Hauptspeicher z. B. 4 GB Plattenspeicher z. B. 4 TB Betriebssysteme WS 2018, Speicher!31

MMU-Probleme: Größe und Geschwindigkeit Problem 1: Größe ein Beispiel Realspeicher: 4 GB virtuelle Adressen: 64 Bit Seitengröße: 4 KB Aufteilung virt. Adr.: 52 Bit Index in der Seitentabelle Größe Seitentabelle: 2 52 * 8B = 16PB pro Prozess Problem 2: Geschwindigkeit der Abbildung ein Beispiel CPU-Takt: 1 GHz 1 ns (4 Speicherzugriffe) Speicher-Latenz: 100 300 ns Betriebssysteme WS 2018, Speicher!32

Problem 1: Baumstrukturierte Seitentabellen CPU V PageDirIdx Seitennummer PageTableIdx Offset P Kachelnummer Offset Zeiger Tabellenindex Kopie Betriebssysteme WS 2018, Speicher!33

Eigenschaften baumstrukturierter Seitentab. beliebig schachtelbar: 64-Bit-Adressräume Seitentabellen nur bei Bedarf im Hauptspeicher: auf höherer Stufe kann bereits vermerkt sein, dass keine Unter-Tabellen vorhanden sind, dadurch Platz-Einsparung 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 2018, Speicher!34

Hierchiebildung CPU V PageDirIdx PageTableIdx Offset Schreibschutz sperrt gesamten durch eine Untertabelle definierten Bereich Schreibschutz sperrt eine einzelne Seite P Kachelnummer Offset Zeiger Tabellenindex Kopie Betriebssysteme WS 2018, Speicher!35

Problem 2: Schnellere Abbildung CPU TLB V virtuelle Adresse V P P physische Adresse MMU 1100 0000 0110 1101 1110 1100 0001 0010 1001 0110 1000 1101 MEM Translation Look Aside Buffer (TLB) schneller Speicher für schon ermittelte Abbildungen virtueller auf physische Adressen wird vor Durchsuchen der Seitentabellen inspiziert muss eventuell bei Adressraumwechsel gelöscht werden Betriebssysteme WS 2018, Speicher!36

Alternative Implementierungen Alternative: Inverse Seitentabellen zu jeder Kachel wird Prozess-Id, Seitennummer geführt bei TLB-miss wird gesucht Implementierung als Hash-Tabellen (Hashed Page Tables) z. B. PowerPC-Architektur Vorteile: kleine Seitentabellen, nur abhängig von Anzahl der Kacheln Nachteile: Suchaufwand, keine Hierarchiebildung (z. B. Schreibschutz für größere Bereiche), Sharing aufwändig Betriebssysteme WS 2018, Speicher!37

Alternative Implementierungen Alternative: Software-implementierte Seitentabellen MMU benutzt nur TLB Seitentabellen oder beliebige andere Datenstruktur wird in Software vom Betriebssystem verarbeitet Seitenfehlerbehandlung lädt TLB neu z. B. Alpha-Architektur Vorteil: total flexibel, Prozess-spezifische Verwaltung Nachteil: hoher Overhead bei TLB-misses Betriebssysteme WS 2018, Speicher!38

Wegweiser: Virtueller Speicher Anliegen, Begriffe, Vorgehen Adressumsetzung Seitenersetzung Speicherobjekte Betriebssysteme WS 2018, Speicher!39

Hauptspeicherverwaltung Aufgaben Zuteilung von Kacheln bei Speicheranforderung Buchführung: welche Kacheln sind belegt und durch wen Entziehen von Kacheln bei Speicherknappheit Frage: Welche Kachel wird bei Knappheit verdrängt? Betriebssysteme WS 2018, Speicher!40

Seitenersetzungsverfahren Problem Eine Kachel wird benötigt, aber der Speicher ist voll. Eine Seite ist zu verdrängen. Wie wird verdrängt? Kachel aus Seitentabelle austragen (TLB-Eintrag löschen) falls modifiziert: Sichern des Inhalts auf persistentem Speicher Welche Seite wird verdrängt? optimal: die Seite wird verdrängt, die in Zukunft am längsten nicht benötigt wird (im Besten Fall nie wieder) Realität: Heuristiken basierend auf Lokalitätsprinzip, Nutzung der Attribute modified und referenced Betriebssysteme WS 2018, Speicher!41

Propagieren von Attributen Kacheln können mehreren Seiten zugeordnet sein Attribute werden durch Hardware für Seiten (nicht Kacheln) gesetzt daher: Propagieren der Attribute von Seiten zu Kacheln Rückkehrabbildung welchen Seiten ist eine gegebene Kachel zugeordnet Seite in Adressraum A: referenced, not modified Seite in Adressraum B: not referenced, modified Kachel: referenced, modified Betriebssysteme WS 2018, Speicher!42

Strategie: FIFO First In First Out Verdränge die älteste Seite, d.h. die 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 dadurch mit typischem Code viele unnötige Seitenfehler BELADY sche Anomalie Betriebssysteme WS 2018, Speicher!43

Strategie: LRU Least Recently Used Verdränge am längsten nicht genutzte Seite Vorteil in der Praxis gute Näherung für optimalen Algorithmus Nachteil sehr aufwendige Realisierung jeder Speicherzugriff müsste berücksichtigt werden Hardware müsste alle Zugriffe protokollieren daher nur Annäherungen per Software möglich Betriebssysteme WS 2018, Speicher!44

Strategie: NRU Not Recently Used Verdränge eine aktuell ungenutzte Seite, d.h. Wahl einer beliebigen Kachel in folgender Rangfolge: nicht benutzt, nicht modifiziert benutzt, nicht modifiziert nicht benutzt, modifiziert benutzt, modifiziert Ermitteln der zeitlichen Lokalität durch regelmäßiges Zurücksetzen der referenced-bits nach Zeitintervall oder reihum Betriebssysteme WS 2018, Speicher!45

Strategie: Second Chance Verdränge die älteste (nach FIFO), im Inspektionsintervall nicht referenzierte (NRU) Seite A B C D E : referenced-flag! Bei den Seiten, die auf die Kacheln A, B und E abgebildet werden, ist das referenced-flag momentan gesetzt Betriebssysteme WS 2018, Speicher!46

Strategie: Second Chance Verdränge die älteste (nach FIFO), im Inspektionsintervall nicht referenzierte (NRU) Seite A B C D E : referenced-flag C A B C D E! C wird referenziert Betriebssysteme WS 2018, Speicher!47

Strategie: Second Chance Verdränge die älteste (nach FIFO), im Inspektionsintervall nicht referenzierte (NRU) Seite A B C D E : referenced-flag A B C D E! E wird referenziert E A B C D E Betriebssysteme WS 2018, Speicher!48

Strategie: Second Chance Verdränge die älteste (nach FIFO), im Inspektionsintervall nicht referenzierte (NRU) Seite A B C D E A B C D E A B C D E : referenced-flag! X wird referenziert Seitenfehler BS benötigt eine freie Kachel Seitenersetzung X A B C D E Betriebssysteme WS 2018, Speicher!49

Strategie: Second Chance Verdränge die älteste (nach FIFO), im Inspektionsintervall nicht referenzierte (NRU) Seite X A B C D E A B C D E A B C D E A B C D E : referenced-flag! X wird referenziert Seitenfehler BS benötigt eine freie Kachel Seitenersetzung! von A beginnend sucht das BS eine Kachel ohne referenced- Flag, dabei werden die ref-flags in den Seitentabellen gelöscht Betriebssysteme WS 2018, Speicher!50

Strategie: Second Chance Verdränge die älteste (nach FIFO), im Inspektionsintervall nicht referenzierte (NRU) Seite A B C D E A B C D E A B C D E A B C X E : referenced-flag! X wird referenziert Seitenfehler BS benötigt eine freie Kachel Seitenersetzung! von A beginnend sucht das BS eine Kachel ohne referenced- Flag, dabei werden die ref-flags in den Seitentabellen gelöscht! D wurde zuletzt nicht referenziert D wird ersetzt Betriebssysteme WS 2018, Speicher!51

Strategie: Second Chance Verdränge die älteste (nach FIFO), im Inspektionsintervall nicht referenzierte (NRU) Seite A B C D E A B C D E A B C D E A B C X E E A B C X : referenced-flag! X wird referenziert Seitenfehler BS benötigt eine freie Kachel Seitenersetzung! von A beginnend sucht das BS eine Kachel ohne referenced- Flag, dabei werden die ref-flags in den Seitentabellen gelöscht! D wurde zuletzt nicht referenziert D wird ersetzt! FIFO-Liste wiederherstellen Betriebssysteme WS 2018, Speicher!52

Strategie: Second Chance Verdränge die älteste (nach FIFO), im Inspektionsintervall nicht referenzierte (NRU) Seite A B C D E : referenced-flag A B C D E! A wird referenziert 2. Chance A B C D E A B C X E E A B C X A E A B C X Betriebssysteme WS 2018, Speicher!53

Strategie: Clock-Algorithmus Elegantere Implementierung von Second Chance, ansonsten gleiches Verhalten while (Kachel[i].referenced) { // wenn Kachel referenziert Kachel[i].referenced = 0; // Flag löschen i = (i + 1) % FRAME_COUNT; // Zeiger weiterdrehen } // Seite in Kachel Nummer i // verdrängen i = (i + 1) % FRAME_COUNT; // Zeiger weiterdrehen J K I L H A G B F C E D Vorteil effizient implementierbar, gute Näherung an LRU Betriebssysteme WS 2018, Speicher!54

Strategie: Aging bessere LRU-Näherung durch genaueres Speichern der Zugriffs-Historie Kachel mit ältestem Inhalt wird verdrängt Analogie: Geburtsjahr 1997 1998 1999 niedrige Zahl hohes Alter Nachteil höherer Overhead durch Auslesen der referenced-bits in regelmäßigen Zeitintervallen (Ticks) Betriebssysteme WS 2018, Speicher!55

Strategie: Aging 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Betriebssysteme WS 2018, Speicher!56

Strategie: 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 2018, Speicher!57

Strategie: 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 2018, Speicher!58

Strategie: Aging A B C D 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 Betriebssysteme WS 2018, Speicher!59

Strategie: Aging Tick 2 A B C D 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 Betriebssysteme WS 2018, Speicher!60

Strategie: Aging A B C D 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 Betriebssysteme WS 2018, Speicher!61

Strategie: Aging Tick 3 A B C D 1 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 Betriebssysteme WS 2018, Speicher!62

Strategie: Aging A B C D Seitenersetzung 1 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 Age 20 8 24 12 Betriebssysteme WS 2018, Speicher!63

Strategie: Arbeitsmengenmodell Problem bisherige Strategien ignorieren Prozess-Zugehörigkeit von Kacheln, keine Fairness inaktiver Prozess kann vollständig verdrängt werden Seitenflattern (Thrashing) Arbeitsmenge / Working Set Betrachtung der Seitenreferenzfolge eines Prozesses durch ein Fenster der Länge T (sog. Arbeitsmengen-Parameter) Arbeitsmenge w(t, T) zum Zeitpunkt t bzgl. T: Menge der im Intervall [t T, t] referenzierten Seiten Annahme: kleine Menge durch mehrfache Zugriffe auf wenige Seiten Betriebssysteme WS 2018, Speicher!64

Vorgehen Strategie: Arbeitsmengenmodell Bestimmung der Arbeitsmenge durch regelmäßiges Auslesen der referenced-bits für aktive und bereite Prozesse muss sich mindestens die Arbeitsmenge im Speicher befinden Nachteile wenn alle Kacheln in einer Arbeitsmenge sind, dann findet Algorithmus keinen Verdrängungskandidaten Reservestrategie nötig, zum Beispiel Prozess auslagern geeignete Wahl der Fenstergröße nötig Betriebssysteme WS 2018, Speicher!65

Seitenverdrängung insgesamt void pagefault(page) { f r a m e = g e t _ f r e e _ f r a m e ( ) ; i f (! f r a m e ) { // keine Kachel mehr frei f r a m e = r e p l a c e m e n t _ s t r a t e g y ( ) ; } i f ( f r a m e. m o d i f i e d ) s a v e _ c o n t e n t ( f r a m e ) ; r e m o v e _ f r o m _ p a g e t a b l e ( f r a m e ) ; // aus zugehörigem Adressraum entfernen } f i l l _ c o n t e n t ( f r a m e ) ; // siehe Speicherobjekte i n s e r t _ i n t o _ p a g e t a b l e ( f r a m e ) ; // in Ziel-Adressraum eintragen Betriebssysteme WS 2018, Speicher!66

Wegweiser: Virtueller Speicher Anliegen, Begriffe, Vorgehen Adressumsetzung Seitenersetzung Speicherobjekte Betriebssysteme WS 2018, Speicher!67

Speicherobjekte Text/Code-, Daten- und andere Segmente eines Prozesses Dateien Gerätespeicher, zum Beispiel Grafikspeicher über Netzwerk verteilter Speicher Betriebssysteme WS 2018, Speicher!68

Speicherobjekte und Regionen Datei, D08 Datei, D47 Betriebssysteme WS 2018, Speicher!69

Speicherobjekte und Regionen Datei, D08 Datei, D47 Betriebssysteme WS 2018, Speicher!70

Speicherobjekte und Regionen Datei, D08 Datei, D47 Betriebssysteme WS 2018, Speicher!71

Speicherobjekte und Regionen Datei, D08 Datei, D47 Betriebssysteme WS 2018, Speicher!72

Speicherobjekte und Regionen Regionmanager Datei, D08 Datei, D47 Betriebssysteme WS 2018, Speicher!73

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: reparabler Seitenfehler (lediglich not present) Betriebssysteme WS 2018, Speicher!74

Aufbau der Adressraumstruktur Regionen im Adressraum explizites oder implizites Einbinden ( Mappen ) von Speicherobjekten in den virtuellen Adressraum eines Prozesses Operationen mmap(adresse, Länge, Zugriffsrechte, Speicherobjekt); implizit: bei Prozesserzeugung werden Code-, Daten-, Stack- Regionen gebildet (in Unix: Segmente ) interner Lookup von Adresse und Zugriffsart Speicherobjekt Seitennummer innerhalb Objekt oder nicht definiert oder Rechteverletzung Betriebssysteme WS 2018, Speicher!75

Überlappende Adressräume - Sharing Seite Kachel / Rahmen Block MMU Hardware BS Software Betriebssysteme WS 2018, Speicher!76

Sharing bei mehrstufigen Seitentabellen CPU CPU identische Inhalte der Seitentabellen Betriebssysteme WS 2018, Speicher!77

Sharing bei mehrstufigen Seitentabellen CPU CPU Betriebssysteme WS 2018, Speicher!78

Spezieller Einsatz von Sharing Verzögertes Kopieren / Lazy Copying / Copy on Write Kopier-Anforderung: zunächst nur read-only Sharing Eintragen des zu kopierenden Bereichs an Zieladresse beide gegen Schreiben schützen verzögertes Kopieren: entkoppelt, nur bei Bedarf beim ersten schreibenden Zugriff Seitenfehler Behandlung: neue Kachel allokieren, Inhalt echt kopieren neue Kachel ohne Schreibschutz in Seitentabelle eintragen Nutzung bei fork(), für Prozess-Schnappschüsse, Betriebssysteme WS 2018, Speicher!79

Gemeinsames Nutzen von Daten A share X neuen MMU Eintrag an Zieladresse A Z # Attrib # Attrib 2 p, rw 2 p, rw Y A Z X Betriebssysteme WS 2018, Speicher!80

Echtes Kopieren copy neue Kachel besorgen A # Attrib 2 p, rw p, rw X A # Attrib Z Kacheln kopieren neuen Eintrag in die Seitentabelle für Zieladresse 5 p, rw copy Y A Z X A Betriebssysteme WS 2018, Speicher!81

Verzögertes Kopieren A lazy copy X Ändern des MMU-Eintrags an der Quelladresse: rw (r, cow) A Z neuen MMU-Eintrag an Zieladresse: (r, cow) # Attrib 2 p, p, r, cow rw # Attrib 2 p, r, cow Y A Z X Betriebssysteme WS 2018, Speicher!82

Verzögertes Kopieren A write X schreibender Zugriff Seitenfehler A Z # Attrib 2 p, r, cow # Attrib 2 p, r, cow Y A Z X Betriebssysteme WS 2018, Speicher!83

Verzögertes Kopieren A # Attrib 2 p, r, cow write X A # Attrib 5 p, rw Z 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 A Z X A Betriebssysteme WS 2018, Speicher!84

Verzögertes Kopieren A # Attrib 2 p, r, cow write X B # Attrib 5 p, rw Z 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 Y A Z X B Betriebssysteme WS 2018, Speicher!85

Verzögertes Kopieren A # Attrib 2 p, r, cow write X B # Attrib Z schreibender Zugriff Seitenfehler ist der Prozess der alleinige Besitzer der Kachel, wird lediglich das Schreibrecht gesetzt 5 p, rw Y A Z X B Betriebssysteme WS 2018, Speicher!86

Verzögertes Kopieren C # Attrib 2 p, rw write X B # Attrib 5 p, rw Z schreibender Zugriff Seitenfehler ist der Prozess der alleinige Besitzer der Kachel, wird lediglich das Schreibrecht gesetzt danach erfolgt der Schreibzugriff Y C Z X B Betriebssysteme WS 2018, Speicher!87

Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Dateisysteme Platte Hauptspeicher Regionmanager Seitenersetzung Anonyme Speicher Betriebssysteme WS 2018, Speicher!88

Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Dateisysteme Platte Hauptspeicher Regionmanager Seitenersetzung Anonyme Speicher Betriebssysteme WS 2018, Speicher!89

Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 Dateisysteme Platte Hauptspeicher Regionmanager Seitenersetzung Anonyme Speicher Betriebssysteme WS 2018, Speicher!90

Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 D47, 11?? Dateisysteme Platte Hauptspeicher Regionmanager Seitenersetzung Anonyme Speicher Betriebssysteme WS 2018, Speicher!91

Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Hauptspeicher Datei, D47, 11 D47, 11?? JA Regionmanager Seitenersetzung Dateisysteme Anonyme Speicher Netz Platte Betriebssysteme WS 2018, Speicher!92

Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 eintragen ST Dateisysteme Platte Hauptspeicher Regionmanager Seitenersetzung Anonyme Speicher Betriebssysteme WS 2018, Speicher!93

Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Hauptspeicher Datei, D47, 11 D47, 11?? NEIN Regionmanager Seitenersetzung Dateisysteme Anonyme Speicher Netz Platte Betriebssysteme WS 2018, Speicher!94

Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Hauptspeicher Datei, D47, 11 Kachel frei?? JA Regionmanager Seitenersetzung Dateisysteme Anonyme Speicher Netz Platte Betriebssysteme WS 2018, Speicher!95

Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 Datei.read Dateisysteme Platte Hauptspeicher Regionmanager Seitenersetzung Anonyme Speicher Betriebssysteme WS 2018, Speicher!96

Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 eintragen ST Dateisysteme Platte Hauptspeicher Regionmanager Seitenersetzung Anonyme Speicher Betriebssysteme WS 2018, Speicher!97

Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Hauptspeicher Datei, D47, 11 Kachel frei?? NEIN Regionmanager Seitenersetzung Dateisysteme Anonyme Speicher Netz Platte Betriebssysteme WS 2018, Speicher!98

Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 auswählen Dateisysteme Platte Hauptspeicher Regionmanager Seitenersetzung Anonyme Speicher Betriebssysteme WS 2018, Speicher!99

Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 austragen ST Dateisysteme Platte Hauptspeicher Regionmanager Seitenersetzung Anonyme Speicher Betriebssysteme WS 2018, Speicher!100

Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 zu Objekt?? Dateisysteme Platte Hauptspeicher Regionmanager Seitenersetzung Anonyme Speicher Betriebssysteme WS 2018, Speicher!101

Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Hauptspeicher Datei, D47, 11 Datei, D08, 15 Datei.write Regionmanager Seitenersetzung Dateisysteme Anonyme Speicher Platte Betriebssysteme WS 2018, Speicher!102

Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 Datei.read Dateisysteme Platte Hauptspeicher Regionmanager Seitenersetzung Anonyme Speicher Betriebssysteme WS 2018, Speicher!103

Das Zusammenspiel Adressräume z. B. 4 GB Seite Kachel/Rahmen Block MMU Hardware Netz Datei, D47, 11 eintragen ST Dateisysteme Platte Hauptspeicher Regionmanager Seitenersetzung Anonyme Speicher Betriebssysteme WS 2018, Speicher!104

Das Zusammenspiel Seitenfehler 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 vorhanden verdrängen Aus allen beteiligten 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 2018, Speicher!105

Speicherobjekte im Netz Rechner in einem verteilten System Botschaften über Netzwerk Betriebssysteme WS 2018, Speicher!106

Wegweiser Elementare Techniken Virtueller Speicher (Paging) Anliegen, Begriffe, Vorgehen Adressumsetzung Seitenersetzung Speicherobjekte Caches Betriebssysteme WS 2018, Speicher!107

Rechnerarchitektur: Caches Ziel größtmöglicher und schnellstmöglicher Speicher Grundlage Lokalitätsverhalten bei Speicherzugriffen Idee Anordnung von schnelleren, kleineren Speichern vor größeren, langsameren Speichern bei jedem Zugriff auf langsameren Speicher wird auch in schnellerem Speicher eine Kopie angelegt und genutzt Betriebssysteme WS 2018, Speicher!108

Caches für Hauptspeicher CPU Adresse1 Adresse2 Adresse3 Adresse4 Inhalt Inhalt Inhalt Inhalt MEM Characteristika Gesamtgröße, Cacheline-Größe, Geschwindigkeit Organisation: Austauschverfahren, Zugriffsart Index: aus Adresse wird Position im Cache berechnet Tag: im Cache gespeicherte Adresse Betriebssysteme WS 2018, Speicher!109

Organisation von Caches Virtuelle vs. physische Adressen virtuelle Tags und Indizes (VIVT) CPU schnell (spart MMU-Zugriff) Löschen bei AR-Wechsel physische Tags und Indizes (PIPT) langsamer, da auf MMU gewartet werden muss unabhängig von Adressraum-Organisation (Sharing) virtuelle Indizes, physische Tags (VIPT) Kompromiss Index-Zugriff parallel zur MMU, Tag-Vergleich physisch V P virtuelle Adresse physische Adresse MMU Betriebssysteme WS 2018, Speicher!110

Zusammenfassung Speicher Ziele von virtuellem Speicher: Schutz, Abstraktion, Effizienz Adressumsetzung in der MMU mehrstufige Seitentabellen, TLB Behandlung von Seitenfehlern Seitenersetzung zur Verwaltung des Hauptspeichers logischer Aufbau des Adressraums: Regionen Betriebssysteme WS 2018, Speicher!111