10. Fallbeispiel Plurix

Werbung
10. Fallbeispiel Plurix
10.1
Entwurfsziele und Visionen:
10.1.1 Schnelles und leichtgewichtiges OS:
 Kurze Ausführungspfade:
-
Übersichtlich,
Kompakter Code,
Direkte Adressierung,
Keine Datenserialisierung,
Kein Lader und kein Binder,
Verzicht auf heterogene Hardware,
Programmierung auf Hardwareebene,
Weglassen einiger Betriebssystemschichten,
Nur ein einziger Adressraum für alle PCs im Cluster.
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
1
 Hohe Durchsatzleistung pro Station:
-
übersetzt 20 000 Zeilen pro Sekunde,
20 000 Transaktionen pro Sekunde,
30 MB/s auf Disk schreiben.
Systemstart in 1 Sekunde,
3D Beschleunigung.
 Geeignet auch für mobile Endgeräte:
-
Wenig Hauptspeicher und schwache CPUs,
GPRS Datenraten sollen ausreichen,
Sparsamer Batteriebetrieb,
Verteilte Datenhaltung,
Embedded Systems.
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
2
 Vereinfachte Benutzersicht:
-
Ortsunabhängige Sicht auf den Gesamtcluster:
Workspace enthält die Objekte eines Benutzers,
Einfache Administrierung & Konfiguration,
Aktive Texte à la Oberon.
 Programmierkomfort:
-
Persistente Objekte.
Programmierung wie Einzelplatz,
Automatische Freispeichersammlung.
Objektorientierte Programmierung in Java,
 Erlernbarkeit/Teachability:
-
Betriebsmittel als Java-Klassen bzw. Java-Objekte,
(CPU, Memory, MMU, Network, Devices),
Shared virtual Memory anstatt RPC,
Einsatz im Übungsbetrieb.
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
3
10.2 Geplante Einsatzbereiche
10.2.1 Allgemeine Zielrichtungen
 Vorerst weniger geeignet als Höchstleistungsrechner.
 Allgemeine Datenverarbeitungsaufgaben.
 Multimedia-Telekooperation.
 Network Computing.
 Multplayerspiele.
 Hypertexte.
 VR.
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
4
10.2.2 Zum Beispiel: "Frame-On-Demand“ Technik
 Je nach Belastung der
Stationen und des Netzes
werden mehr oder weniger
Frames abgeholt.
 Neuen Frame erst holen, nach
Invalidierung des alten durch
den Sender.
 Bisher übliche Verfahren:
- Flusskontrolle,
- Skalierung beim Sender,
- Übertragungsratensteuerung.
 Verfeinerungen: Komprimierung, Rundspruch, „Interest Bit“.
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
5
10.2.3 Beispielszenarium CeBit 2000:
 CeBit2000 Demo 
 Cluster mit 3 PCs:
-
3 Videokameras
(Shared) Texteditor
100 MBit/s Ethernet
360 Grad Panoramabild
Programm+Daten im DSM
 Programmgrösse:
-
Panorama: 1 KB + 1 MB
OS mit Treibern: 40 KB
Editor: 10 KB
Video 1 KB
10.2.4
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
6
10.2.4 CeBit 2001 Demo:
 ATI Radeon Hochleistungsgrafik für gemeinsam rotierenden Würfel.
 QuickBoot BIOS.
 ~ Oberon GUI.
 CD abspielen.
 Sound Analyzer.

≡Quit≡ ≡AutoRotate≡ ≡Manual≡ ≡Grabber≡ ≡Textures≡ //
ATI Radeon
 Supercube
≡On≡ ≡Off≡ // Use Cursorkeys, PageUp,
 PageDown, to move





≡Quit≡ ≡CD-ROM≡ ≡Mic≡
≡Line≡ // Graphic Alyzer
≡Quit≡ ≡Objects≡
≡Start/Stop≡ ≡Reset≡ //
Sound
 ≡Quit window
system≡
≡Cube≡ ≡Analyzer≡ ≡WavePlayer≡
≡InfoText≡
≡Applications≡
//

Main
 Framegrabber.
 DSM-Monitor.
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
7
10.3 Aktive Text Bedienerschnittstelle, geplant
 Jeder Text in einem Viewer ist ein potentieller Befehl.
 Analog zur Bedienung des Oberon Systems, jedoch keine Interclicks.
 Mausknöpfe:
Doppelclick: ausführen
Links:
auswählen
Rechts:
zusätzliches Menu
....
....
pjc.compile cube3D
 allgemeine Befehlssyntax:
<Klassenname>"."<Methodenname> <textuelle Parameter>
<Objektname>"."<Methodenname> <textuelle Parameter>
Platzhalter: *, ~, ^
 Dynamische Methoden von Text evtl. abgekürzt:
.cut, .copy, .paste, .clear, .open, .close, .grow
 Verallgemeinerte Textelemente:
- Bilder, Verzeichnisse, Menus, Syntaxfehler, URLs, Helpers, Hiders ...
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
8
10.4 Transaktionsschleife
 Kooperatives Multitasking (Oberon-style):
- Zentrale Event-Schleife =>
- System Transaktion (GC ..),
- Legacy Netzwerkprotokolle,
- Tastatur & Mauslistener,
- Installierbare Transaktionen.
 Kernel Funktionen:
- Initialisierung,
- Interrupt dispatching,
- Memory management,
- Machine Record als Kontext,
- Begin- & End-of-Transaction.
System
Network
Input
User
System
System
System
 Besonderheiten:
- Kurze Transaktionen erwünscht,
- Pro Befehl implizites Begin- & End-Of-Transaction,
- Automatischer Wiederanlauf nach Zugriffskonflikten im DSM ...
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
9
10.5 Gemeinsamer verteilter Speicher
= Distributed Shared Memory = DSM .
= Verteilter virtueller Speicher = VVS .
 Granularität: Viele Objekte pro Seite.
 Seitenorientierter DSM in Plurix:
- Logischer Speicherzugriff mit einer Byteadresse,
- Übersetzung in phys. Adresse durch MMU,
- Falls erforderlich werden 4K übertragen.
 Implizite Kommunikation:
-
Über gemeinsamen Speicher,
Kein RMI/RPC/Corba,
TCP/FTP extern,
Keine Pipes,
Kein MPI ...
Logical Memory
DSM
Physical Mem.
MMU
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
10
10.6 Optimistisches Konsistenzmodell:
 Sequentielle Konsistenz zwischen den verschiedenen Transaktionen.
 Die Reihenfolge der Transaktionen ist vorerst unbestimmt.
 Kollidierende Transaktionen werden erneut gestartet.
 Erkennen der Zugriffskonflikte mithilfe der Read- & Write-Sets:
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
11
10.7 Schattenkopien und Rücksetzung
 Zwischen Transaktionen in verschiedenen Stationen:
-
Im Lauf einer Transaktion wird ein Read- & ein Write Set aufgebaut,
Schattenkopie erstellen, bevor eine Seite beschreiben wird,
Commit-Request am Ende einer Transaktion,
Im Kollisionsfall Reset 
 Kollisionsauflösung:
- Serialisierung über Token,
- Derzeit mit „First wins“,
- Fairness nicht garantiert.
 Kurze Transaktionen:
-
Niedrige Kollisionsrate,
Oberon-artige Befehle,
Tastatur und Maus,
Klasse compilieren,
Ein Video Frame …
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
12
10.8 Rücksetzbare Puffer (Smart Buffers)
 Für wiederholbare Eingabe:
- Schreibzeiger für die InterruptRoutine ist definitiv
- Commitzeiger ist wirksam nach
einem erfolgreichem Commit,
- Lesezeiger für die Transaktion
ist rücksetzbar
 Smart Buffers liegen zwischen Interrupt- & Transaktionsraum :
- Die Interrupt-Routine legt Eingabe-Daten in den Smart Buffer,
- Eingaben in eine erneut gestartete Transaktion können erneut gelesen werden.
 Die Pufferinhalte sind als Klassen mit Attribut „NonTransactional“
angelegt und nehmen damit nicht am Rücksetzungsalgorithmus teil.
 Ausgabepuffer können die Ausgaben einer Transaktion verwerfen.
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
13
10.9 Speicherorganisation
 DSM-Heap allen Stationen gemeinsam:
-
Reguläre Transaktionsobjekte,
Schwach konsistente Objekte,
Objekte ohne Backchain,
Offscreen-Pixmap,
Stationsobjekt,
Share-Sets.
3.5 GB
 Lokaler Speicher:
-
Puffer (Grafik, Netz, Sound ...),
Attribut "nontransactional",
Interrupt-Vektor,
Netzwerktreiber,
0.5 GB
Seitentabellen ...
> 32 MB
 Physikalische Kacheln:
- mapped oder unmapped.
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
14
10.10 Stationsobjekt
 Clusterobjekt:
- Einmal pro Cluster vorhanden,
- Enthält unter anderem den Stationsarray.
 Stationsobjekt liefert den lokalen Kontext:
-
thisStation
Aktuell ausführende Transaktion,
Eingehängte Transaktionen,
Focus- und Maus-Viewer,
System.out Viewer,
Standardtreiber,
IP-Adresse,
Desktop,
 Verzeichnisse,
thisCluster.station[ Station# ].
- User, Public, Kernel.
 "System.out" übersetzt in "thisCluster.Station[ Station# ].out"
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
15
10.11 Verkettung der Heapblöcke
...
 Wurzelobjekt.
ObjectType
 Basisklassen.
extends
 Klassen.
< Interface >
CodesegType
Type of
InterfaceType
ArrayType
KlassType
< Array >
< Klasse >
extends
 Instanzen =>
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
Methode
Arrayvariable
Instanzobjekt
16
10.12 Doppelköpfiges Objektformat im Heap
 Objektformat im Heap:
- Referenzen " links" vom Header,
- Variablen " rechts" vom Header.
 Header im Inneren des Heap-Blockes:
-
Entspricht der Klasse "java.lang.object",
An abgeleitete Objekte vererbt,
Anker für die Backchain,
Flags & Längenfelder,
Nächster Heapblock
Objektklasse.
 Flagwort im Header:
- Memory Modes,
- Stopper.
 Ist des letzte Bit eines Referenzwortes gesetzt, so wird damit das Ende
des Referenzbereichs markiert (Stopper) und der Header folgt.
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
17
10.13 Implementierung von Interfaces
 Felder im Klassendeskriptor:
-
Statische Variablen der Klasse,
Referenz auf die Klasse "ClassDeskriptor",
Unmittelbare Elternklasse zum erben,
Referenz auf dynamische Methoden,
Eigene statische Methoden,
Eigene Referenzvariablen,
Referenzen auf Strings,
Importierte Klassen.
Code
Klasse
Interf.
 Interface-Deskriptoren machen eine Methoden-Untermenge verfügbar:
-
Zusätzlich zu Klassenfeldern eine Referenz auf die implementierende Klasse,
In Java nur dynamische Methoden und Konstanten im Interface,
Im Prinzip aber allgemeine Mehrfachvererbung,
Interfaces evtl. auf Klasse casten,
 Interface-Variablen sind 16 Bytes groß & zeigen auf Interf. & Instanz.
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
18
10.14 Objektidentifikation in einer beliebigen DSM-Seite
 Problemstellung:
-
Ein Page-Fault liefert eine Byteadresse. Welches Objekt ist davon betroffen?
Nützlich für Werkzeuge zur Analyse des Speicherkonfliktverhaltens,
Nützlich zur komprimierten Übertragung von Speicherseiten,
bzw. zur Übertragung von Einzelobjekten.
 Lösung:
-
"R-Speicherseiten" enthalten als erstes Wort eine Referenzvariable,
Alle R-Speicherseiten sind in der Seitentabelle markiert
Am Anfang einer R-Seite beginnend wird die Seite sequentiell durchsucht,
Finden wir einen Stopper so haben wir den Anfang eines Objektes gefunden,
Ab hier kann von einem Objekt zum nächsten gesprungen werden,
Solange bis das zu unserer Adresse passende Objekt gefunden ist.
-
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
-
-
+
-
-
+
-
19
10.15 Freispeichersammlung und Relozierung
 Virtualisierung durch MMU:
- Derzeit 4 Gigabytes großer Heap
- 4 Megabytes für Seitentabellen
- Verwaltung der Seitenattribute
Heap Objekt
Referenzen
 Garbage Collection mit Backchain:
-
Verkettung der Referenzen auf ein Objekt
Objekte mit leerer Backchain sind Garbage
Inkrementelle Freispeichersammlung
Automatisch und im ganzen Cluster
Sammlung nur mit leerem Stack
Zyklenerkennung Off-Line ...
Backchain
 Relozierung:
-
Verschieben eines Objektes im Heap
Referenzen mithilfe der Backchain anpassen
Zum Zwecke der Speicherdefragmentierung
Zur Speicherentflechtung bei  False-Sharing
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
20
10.16 False-Sharing von DSM-Objekten
 Grundphänomen in seitenbasierten DSM-Systemen:
-
Zwei Objekte liegen auf derselben Speicherseite,
Zugriffe erfolgen von verschiedenen Knoten,
Die Seite wird unnötig oft transportiert,
Exakte Definition schwierig ...
Speicherentflechtung 
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
21
10.17
Orthogonale Persistenz
 Es besteht ein Namensdienst für Objekte, aber kein Dateisystem.
 Konzeptuell wird der DSM-Cluster nie abgeschaltet.
 Alle noch referenzierbaren Daten sind persistent.
 Stationen verlassen den Cluster und treten wieder bei.
 Import & Export von serialisierten Objekten ist optional.
 Zwischen verschiedenen
gleichzeitig aktiven DSM
werden Kopien von
serialisierten Objekten
ausgetauscht =>
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
22
10.18
Page Server (Skibicki & Frenz)
 Liefert den Hintergrundspeicher für den persistenten Heap.
 Off-Line Freispeichersammlung und Relozierung.
 Anmeldung für neu hinzukommende Stationen.
 Periodische Komplettierung des Heap-Abbildes.
 Sichert konsistente Heap-Images:
~
Minimale Konsistenzverzögerung
Beantworten von Page-requests
Abschalten des DSM-Heaps
Wiederanlauf im Fehlerfall
Mithören am Netz
30 Mbytes / sec ...
 Clusterbetrieb ist auch ohne
Server möglich.
 Ausnahmen für "lazy Pages".
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
23
10.19
Native Java Compiler (M. Schöttner)
 Java Source nach native i486:
< 200 kByte JVM Bytecode,
> 10000 Zeilen / sec.
 Direkte Übersetzung in den DSM:
- Binden & Laden zur Compilationszeit,
- Frühe Initialisierung von Klassen,
- Serialisierung entfällt.
 Direkte Programmierung der HW:
- Compilerklasse “Magic” & “pMapper”,
- “return” sequenz für Interruptmethoden.
- inline assembly code …
 Java Übersetzung ist umständlich:
- Zyklisches Importieren & Initialisieren,
- Polymorphien und Interfaces,
 Multipass compiler
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
24
10.20 Bewertung
 Pro:
- kompakt, schnell, übersichtlich, ubiquitär.
 Contra:
-
Fehlende Fairness,
Java Allozierungsstrategie,
Rücksetzbarkeit von Grafikausgaben,
False-Sharing Situationen schwer erkennbar,
Schreibkonflikte im Heap wegen Backchain ...
 Optimierungspotentiale:
-
Objekt-Aufsatz zur parallelen Programmierung,
Verbesserte Strategie zur Konfliktauflösung,
Alternative Speicherverkettung,
Explizite Variablenallozierung,
Optimierender Compiler,
Fairnessprotokoll,
64 Bit Adressen ...
Verteilte Betriebssysteme 2002, © VS Informatik, Uni Ulm
25
Herunterladen