6.6 Persistenter virtueller Speicher

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

4.5 Virtueller Speicher Problemsituation: Programme und Daten sind zu groß für den verfügbaren Arbeitsspeicher Frühere Lösung Aufspaltung der Programme.
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
5.5 Virtueller Speicher Wenn der reale Speicher sogar für einzelne Prozesse zu klein ist : Virtueller Speicher (virtual memory),  ist „beliebig“ groß,
Kritische Betrachtung
Aktuelle Java-Trends, Norbert Schuler1 Jini Java im Netz.
FU Berlin SS 2003 Klaus-Peter Löhr
4.2 Gruppenkommunikation (group communication) Bedeutet:Sendeoperation bezieht sich auf mehrere Adressaten - die Mitglieder einer Prozeßgruppe (process.
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
SAP R/3 - Speichermanagement
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Konzeption und Realisierung eines Software Configuration Management Systems Autor: Alex Rempel Referent: Prof. Dr. Elke Hergenröther Korreferent: Prof.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
Objekte und Arbeitsspeicher
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
1 Linux Paging, Caching und Swapping. 1 Vortragsstruktur Paging – Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation.
7 Verteilungsabstraktion
DbjFileManager Paul Fruntzek Michael Stanek. Überblick Unterste Ebene im Schichtenmodell Schnittstelle zum BS (Low-Level) Aufgabenbereich: Persistente.
Vererbung Spezialisierung von Klassen in JAVA möglich durch
Vorlesung 4: Memory Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin Wintersemester.
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 2 Rechnerarchitektur Peter B. Ladkin Wintersemester 2001/2002 Universität Bielefeld Technische Fakultät.
DVG Klassen und Objekte
Capabilities - Sicherheit realisiert auf Hardware-Ebene am Beispiel von MONADS Teil 2 Vorgelegt von: Wiebke Schröder Vortragsdatum: 07. Juli /21.
Dieter Bergmann, Lichtenfels
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Referat zum Thema „DLL“
2.3 Register-Transfer-Strukturen
EDO-RAM,SDRAM,RDRAM,DDR2-SDRAM.
Zukunft HMS Qualifikationsverfahren
Speicherverwaltung durch Swapping
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Die Finalisten für den Advanced Encryption Standard Advanced Encryption Standard Herbert Frohner Sebastian Hegenbart Joachim Kerschbaumer.
Dateisysteme Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2 Dateisysteme Was ist eine Datei?
6.5 Lindas Tupelraum Interaktion von Prozessen über zentralen Umschlagplatz für alle zwischen Prozessen ausgetauschten Daten: Tupelraum (tuple space) (Carriero/Gelernter,
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 5 SS 2001 Segmentschnitt II (n Segmente)
Intelligente Dateisysteme
Information und Kommunikation
Konstruktion der Voronoi-Diagramme I
3.4 CPU-Chips und Busse CPU-Chips
HMS Modul 5 Weiterbildungstagung Qualifikationsverfahren ALS und PE
secunet Security Networks AG
Betriebssysteme Übung Tutorium „System Calls & Multipgrogramming“
1. Entwicklungsumgebung 2. Kontextmenü 3. Compile 4. Objekt 5. Attribut 6. Klasse 7. Deklaration 8. Intialisierung.
Bs Gemeinsame Datensegmente am Beispiel Solaris [Beachte: Unix/Linux setzen keine Hardware-Segmentierung voraus und sprechen daher statt von.
Systemsoftware und Betriebssysteme
Seminar: Grundlagen Wissenschaftlichen Arbeitens
Betriebssysteme Übung Tutorium „TLB & Virtual Memory“
Arbeitsspeicher Eine Präsentation von - Namen wurden entfernt -
Neue Speichermedien für Datenbanken
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
RelationentheorieObjektorientierte Datenbanken  AIFB SS C++-ODL (1/6) Erweiterung des deklarativen Teils einer C++-Klasse Datentypen d_String,
2.3 Implementierung von Prozessen
KA – Rechnerarchitektur II ____________________________________________________________________________________________ ____________________________________________________________________________________________.
Bs Dateien als Segmente Idee:Datei = persistentes Segment Konsequenzen:  Datei kann in virtuellen Adressraum eingeblendet werden (memory-mapped.
6.2 Repräsentation auf Platten
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
Bs Der Speicherverwalter Speicherverwalter (memory manager) = im einfachsten Fall ein Systemprozess, der für die Umlagerung der Seiten (page.
6.4.4 Berechtigungen (Capabilities)
Bs Segmentierte Prozesse im virtuellen Speicher Zur Erinnerung:  Virtueller Speicher ermöglicht effiziente und komfortable Nutzung des realen.
Bs Segmentierung Adressraum besteht aus mehreren Segmenten (segments), die unabhängig voneinander manipulierbar sind. Segmentierungsstruktur ist.
C Tutorium – Shared Memory – Knut Stolze. 2 Shared Memory Ein Speicherbereich, auf den mehrere Prozesse Zugriff haben – Also kein privater Speicher –
Von Bits, Bytes und Raid Eine Schnuppervorlesung Inhalt
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Einflußreiche Systeme Dr. Wolfgang Wörndl.
 Präsentation transkript:

6.6 Persistenter virtueller Speicher Idee: alle Segmente sind persistent  „Datei“-Begriff überflüssig ! Aber: Segment hat erweiterten Deskriptor. bs-6.5

 Tod des erzeugenden Prozesses,  Systemabschaltung,  Systemabsturz,  Segment überdauert  Tod des erzeugenden Prozesses,  Systemabschaltung,  Systemabsturz, solange es über eine Berechtigung oder einen Namen erreichbar ist (sonst Speicherfreigabe!). Problem: Inter-Segment-Adressierung Lösung: - entweder objektbasierte Adressräume ( 6.6.1) - oder „unendliche“ Adressräume ( 6.6.2) bs-6.5

6.6.1 Objektbasierte Adressräume (z.B. in DAS (TU Berlin 1974-78), Clouds (Georgia Tech 1977-85), Birlix (GMD Birlinghoven 1985-89), u.a.)  minimale Segmentstruktur, z.B. lediglich Code, Daten, Keller Modul oder Objekt oder Code, Moduldaten, Objektdaten, Keller Objekt bs-6.5

 Objektidentifizierung über Berechtigung  Objektaufruf/rücksprung bewirkt Wechsel des Adressraums unter Beibehaltung des Kellers, ist Mikrokern-Systemaufruf in prozedurorientierter Architektur (kein technischer Unterschied zwischen Benutzer- und Systemobjekten) bs-6.5

Berechtigungen Deskriptoren für Objekte für Datensegmente für Codesegmente x c „Objekt x vom Typ c“ bs-6.5

Codesegment beginnt mit Sprungleiste: 8: 125: JUMP 0008 JUMP 0125 JUMP 4711 JUMP .... bs-6.5

CALL(objCap, opNo, args) ohne Code/Daten-Adressen, Objektaufruf: CALL(objCap, opNo, args) ohne Code/Daten-Adressen, wohl aber Berechtigungen! Objektrücksprung: RETURN bs-6.5

Typisches Sharing-Szenario: Prozess P Prozess Q P-Keller Q-Keller ObjektX ObjektY ObjektZ CodeC CodeD Code Sharing Object Sharing

 Shared Libraries: jede Bibliothek in eigenem Adressraum Beispiele:  Shared Libraries: jede Bibliothek in eigenem Adressraum  Text“datei“? In der Regel ineffizient – daher Aufweichung der starren Segmentierung: zusätzlich freie Datensegmente (greifbar über Berechtigungen, map/unmap) Parameterübergabe bei CALL/RETURN kann Berechtigungen für Objekte und freie Segmente beinhalten bs-6.5

6.6.2 „Unendliche“ Adressräume Wünschenswert:  freie Inter-Segment-Adressierung ermöglichen  Adressraumwechsel vermeiden  Segmentkollisionen im Adressraum vermeiden Realisierung: Jedem realen Segment ist ein eigenes virtuelles Segment – für alle Prozesse! – zugeordnet. bs-6.5

Folgerung: unendlicher Adressraum wäre schön –  hat Platz für beliebig viele Segmente,  erlaubt Verzicht auf Wiederverwendung virtueller Segmente (!), die mit technischen und Sicherheitsproblemen verbunden ist. ? Was leisten 64-Bit-Adressen ? ? Braucht man 128-Bit-Adressen ? bs-6.5

adressierbar sind 264  16 * 1018 Bytes, 64-Bit-Adressen: adressierbar sind 264  16 * 1018 Bytes, Segmenterzeugung mit Rate 1000/sec à 106 Bytes verbraucht pro Sekunde 109 Adressen, Pro Tag (86400 sec) werden damit weniger als 1014 Adressen verbraucht, 16*1018 / 1014 = 16*104  Adressen reichen für mindestens 160 000 Tage. ! Für netzweite Adressräume verteilter Systeme wurden sogar schon 128-Bit-Adressen realisiert (MONADS, Univ. of Newcastle, Australien, 1986-94) bs-6.5

Typische Charakteristika unendlicher Adressräume:  Berechtigungen für Segmente, map/unmap  Seitentabellen auslagerbar (Seitentabelle entspricht file map im Dateideskriptor!)  integrierte Speicherbereinigung (für realen Speicher!) bs-6.5

Beispiel MONADS Hardware:  128-Bit-Adressraum mit Paging  Segmente* nicht an Seitengrenzen gebunden  Capability-Register für capability-basierte Adressierung: base length rights R,W,X * haben festes Format (control, capabilities, regular data) bs-6.5

MONADS Software (Newcastle, Bremen, Ulm [Keedy et al.]) realisiert damit objektbasierten, persistenten Adressraum:  Module Capability: module handle rights meta-rights  kein map – wegen capability-basierter Adressierung: jeder Prozess hat gleichen Adressraum mit allen existierenden Segmenten – kann aber nur diejenigen Segmente ansprechen, für die er Berechtigungen hat. (Berechtigung in Register laden  map ) bs-6.5

6.6.3 Stabiler Speicher (stable storage) = durch Systemsoftware realisierter „virtual storage“ mit der Eigenschaft, sogar Hardware- und System- zusammenbrüche unbeschadet zu überstehen – im Gegensatz zum flüchtigen Speicher (volatile storage), dem Arbeitsspeicher; wird (natürlich) mit Hilfe des externen Speichers realisiert. Voraussetzung: keine Plattenschäden (andernfalls Platten duplizieren („spiegeln“)) bs-6.5

 regelmäßige Sicherungs-Operation hinterlässt Grundprinzipien:  regelmäßige Sicherungs-Operation hinterlässt Platten in konsistentem Zustand (s.u.).  Nach Sicherung geänderte Seiten werden beim Verdrängen auf neu bereitgestellte Platten-Sektoren hinauskopiert („shadow pages“); Seitentabelle wird entsprechend geändert – und selbst entsprechend gesichert (da selbst im virtuellen Speicher!).  Erste Seite der Seitentabelle und ihre shadow page werden im Arbeitsspeicher gehalten. bs-6.5

Sicherungs-Operation: Die erste Seite der Seitentabelle wird durch ihre shadow page ersetzt – im Arbeitsspeicher und auf der Platte. bs-6.5

Sicherungs-Operation: Die erste Seite der Seitentabelle wird durch ihre shadow page ersetzt – im Arbeitsspeicher und auf der Platte. shadow pages bs-6.5

Aktuell ist die gesicherte Version unter der Voraussetzung, daß eine geänderte Seite möglichst bald verdrängt wird. Korrekt ist dieses Verfahren unter der Voraussetzung, daß das Schreiben eines Blocks auf die Platte ein hardwaremäßig atomarer Vorgang ist. bs-6.5

Aktuell ist die gesicherte Version unter der Voraussetzung, daß eine geänderte Seite möglichst bald verdrängt wird. Korrekt ist dieses Verfahren unter der Voraussetzung, daß das Schreiben eines Blocks auf die Platte ein hardwaremäßig atomarer Vorgang ist. Falls nicht: 2 vergangene Versionen auf Platte halten – von denen die ältere garantiert konsistent ist: Versionierte Wurzelseiten: bedeutet: wurde nicht vollständig geschrieben! n-1 n-1 n n-1 bs-6.5