Verteilte Betriebssystemedistributed Operating Systems
Total Page:16
File Type:pdf, Size:1020Kb
Verteilte Betriebssysteme – Fallstudien Verteilter Betriebssysteme Verteilte Betriebssysteme 3.1 Motivation Wintersemester 2020/2021 3.1 Motivation I Bevor wir einzelne Aspekte diskutiert, betrachten wir einige reale Betriebssysteme Verteilte Betriebssysteme I Betriebssysteme für verteilte Systeme müssen verschiedene Probleme lösen I Bisher keine einheitliche Problemsicht á unterschiedliche Konzepte und Abstraktionen 3. Kapitel I Sehr heterogen I Noch kaum etablierte best practices oder gar Standards, erst in letzter Zeit Bemühungen im Rahmen Fallstudien Verteilter Betriebssysteme des Cloud-Computing Konzentrieren uns hier auf Abstraktionen Matthias Werner I Professur Betriebssysteme I Unterschiedliche Abstraktionen (Modelle) stellen unterschiedliche Anforderungen an Implementierung WS 2020/21 · Matthias Werner III – 2 von 36 osg.informatik.tu-chemnitz.de Verteilte Betriebssysteme – Fallstudien Verteilter Betriebssysteme Verteilte Betriebssysteme – Fallstudien Verteilter Betriebssysteme 3.2 Mach 3.2 Mach 3.2 Mach – Tore als Stellvertreter Mach-Objekte I Entwickelt 1983–86 von der Carnegie-Mellon-University (CMU) in Pittsburgh I Vorgänger: Accent (1981, CMU) I Ursprüngliches Ziel: Moderne Neuimplementierung von UNIX BSD 4.3 I BS-Kern Mach 3.0 verfügbar für die meisten PC- und Workstation-Prozessoren I Grundlage von OSF/1, dem Unix-Standard der Open System Foundation I Kernel für: I NeXTSTEP / OPENSTEP - Rhapsody I XNU (Basis von Darwin, was wiederum die Basis von MacOS X ist) I MkLinux (Power Macintosh) I GNU Hurd (in Form von GNU Mach) I Tru64 (OSF/1) WS 2020/21 · Matthias Werner III – 3 von 36 osg.informatik.tu-chemnitz.de WS 2020/21 · Matthias Werner III – 4 von 36 osg.informatik.tu-chemnitz.de Verteilte Betriebssysteme – Fallstudien Verteilter Betriebssysteme Verteilte Betriebssysteme – Fallstudien Verteilter Betriebssysteme 3.2 Mach 3.2 Mach Ports Ports (Forts.) I Ports spielen Schlüsselrolle in Mach I Typisch: ein Server verwaltet viele Ports I Ports unterstützen n:1-Kommunikation I Betriebsmittel werden mit Ports identifiziert und ihre Benutzung wird durch eine Nachricht an den I Für jeden Port gibt es zu einem Zeitpunkt genau einen Empfänger (Besitzer des receive rights), aber beliebig zugehörigen Port angefordert viele Sender (Besitzer eines send rights) I Ports bestehen im Wesentlichen aus einer Nachrichtenwarteschlange, deren Größe vom Port-Besitzer Zugriff auf Betriebsmittel wird über Ports geregelt á Recht auf Benutzung eines Betriebsmittels wird über I dynamisch eingestellt werden kann (Flusskontrolle) ein Recht am zugehörigen Port realisiert I Senden an einen vollen Port führt zur Blockierung des sendenden Threads I Die Besitzer der Rechte sind Tasks I Lediglich Sende-Operationen mit send-once right sind auch bei voller Warteschlange erfolgreich I Rechte können in Nachrichten verschickt werden Folgende Rechte sind vorgesehen: I I Existiert kein receive right für einen Port, so werden Sende-Operationen mit einer Fehlermeldung I send right abgewiesen I send-once right I Ebenso kann ein Prozess den Kern beauftragen, ihm mitzuteilen, wenn keine send rights mehr existieren I receive right I bootstrap port right WS 2020/21 · Matthias Werner III – 5 von 36 osg.informatik.tu-chemnitz.de WS 2020/21 · Matthias Werner III – 6 von 36 osg.informatik.tu-chemnitz.de Verteilte Betriebssysteme – Fallstudien Verteilter Betriebssysteme Verteilte Betriebssysteme – Fallstudien Verteilter Betriebssysteme 3.2 Mach 3.2 Mach Ports (Forts.) Entfernte Kommunikation I Mach ist zunächst kein verteiltes System I Der Kern führt Buch über die Zahl I Aber: Das Konzept „Port“ als zentrale Abstraktion macht es leicht, verteilte Betriebssysteme auf der der ausgegebenen Rechte für Grundlage von Mach zu konstruieren einen Port Verwaltung erfolgt im Kernel I I Kommunikation zu anderen Knoten ist Aufgabe einer speziellen Komponente außerhalb des Kerns: Net I Portname (Integer) ist lokal Message Server (NetMsgServer, NMS) bezüglich des Prozesses I NMS-Prozess realisiert die typischen Schichten eines Protokollstapels Kernel isoliert damit I I Er enthält u.a.: Prozesse á Tabellen zur Umsetzung lokaler Portnummern in globale Sicherheitsfeature I I Funktionen zur Wandlung der Datenrepräsentation I Authentisierungsmechanismen I Verschlüsselungsverfahren WS 2020/21 · Matthias Werner III – 7 von 36 osg.informatik.tu-chemnitz.de WS 2020/21 · Matthias Werner III – 8 von 36 osg.informatik.tu-chemnitz.de Verteilte Betriebssysteme – Fallstudien Verteilter Betriebssysteme Verteilte Betriebssysteme – Fallstudien Verteilter Betriebssysteme 3.2 Mach 3.2 Mach Entfernte Kommunikation (Forts.) Arbeiten mit dem NetMsgServer I Dienste registrieren sich beim NetMsgServer netname_look_up() P1 NMS NMS P2 Client NetMsgServer Send receive answer netname_check_in() request Server Netz I NetMsgServer ist auch Dienst. Wie wird er gefunden? á Enviroment-Manager (für lokale Ports) oder Bootstrap-Server (MacOS) mit festem Port WS 2020/21 · Matthias Werner III – 9 von 36 osg.informatik.tu-chemnitz.de WS 2020/21 · Matthias Werner III – 10 von 36 osg.informatik.tu-chemnitz.de Verteilte Betriebssysteme – Fallstudien Verteilter Betriebssysteme Verteilte Betriebssysteme – Fallstudien Verteilter Betriebssysteme 3.2 Mach 3.2 Mach Resümee Andere Mikrokernel-Ansätze I Amoeba I Vrije University/CMCS Amsterdam, 1981 Erkenntnis I Komplettes, Microkernel-basiertes OS mit Prozessor-Pool-Modell, objekt-basiert, verschlüsselte Capabilities I Mikrokernel-Ansatz funktioniert bei verteilten und nichtverteilten Systemen I Prozessmigration I Zentrales Konzept des Ports ermöglicht „Verstecken“ (Transparenz) von Verteiltheit. I gilt als Referenz für verteilte Betriebssysteme I Außerdem interessant bei Mach: I Chorus I Rechteübertragung durch IPC I INRIA (Frankreich), 1979-87, ursprünglich als europäische Konkurrenz zu Mach I Unterstützung verschiedener Modelle zur Speicherverwaltung, insbesondere Paging I Sehr ähnlich zu Mach (konzeptionell), aber kleiner I Copy on write bei neuen Prozessen I MiX: UNIX-Server, COOL: Chorus Object-Oriented Layer I NORMA (No Remote Memory Access Interprocessor Communication) als In-Kernel-Ersatz für I V-System NetMsgServer I Standford University, 1984 I Sehr kleiner Kernel I Möglichkeiten zur Prozessmigration WS 2020/21 · Matthias Werner III – 11 von 36 osg.informatik.tu-chemnitz.de WS 2020/21 · Matthias Werner III – 12 von 36 osg.informatik.tu-chemnitz.de Verteilte Betriebssysteme – Fallstudien Verteilter Betriebssysteme Verteilte Betriebssysteme – Fallstudien Verteilter Betriebssysteme 3.3 Plan 9 3.3 Plan 9 3.3 Plan 9 – Alles ist eine Datei Trivia I Name kommt vom Film Plan 9 From Outer Space I Regie: Ed Wood I Vor dem Hintergrund von UNIX vollständig neu entwickelte Rechenumgebung I gewählt zum schlechtesten Film aller Zeiten I Entwickelt in Computing Science Research Center der Lucent Technologies Bell Laboratories (die gleiche Gruppe, die UNIX, C und C++ entwickelt hat, u.a. ROB PIKE und KEN THOMPSON) I Glenda ist für Plan 9 was Tux für Linux ist: das Maskottchen I Erste Version erschien 1993 (nur im universitären Bereich verfügbar) I Bezieht sich auf einen anderen Ed-Wood-Film: I Offiziell aktuelle Version: Release 4 von 2002 „Glen or Glenda“ I Aber ständige Weiterentwicklung durch die „Community“ (und auch noch etwas durch Bell-Labs) I Letztes Image vom Mai 2016 (Stand: Oktober 2020) I Als Open Source verfügbar, u.a.: http://www.9legacy.org/download.html WS 2020/21 · Matthias Werner III – 13 von 36 osg.informatik.tu-chemnitz.de WS 2020/21 · Matthias Werner III – 14 von 36 osg.informatik.tu-chemnitz.de Verteilte Betriebssysteme – Fallstudien Verteilter Betriebssysteme Verteilte Betriebssysteme – Fallstudien Verteilter Betriebssysteme 3.3 Plan 9 3.3 Plan 9 Design-Ansatz Typische Plan 9 Umgebung Fiber Network I Unix war ursprünglich kein Netzwerk-Betriebssystem á Brüche im Design File server Idee CPU server CPU server Ein UNIX, das aus vielen kleinen Systemen besteht, statt einem System, dass aus vielen UNIXen besteht. Ethernet I Plan 9 I Ein mächtigeres Multiprozess-System I Zentral administrierbar Gateway I Aufwärtskompatibilität war kein Design-Ziel, aber POSIX-Emulation vorhanden Terminal Terminal Terminal WS 2020/21 · Matthias Werner III – 15 von 36 osg.informatik.tu-chemnitz.de WS 2020/21 · Matthias Werner III – 16 von 36 osg.informatik.tu-chemnitz.de Verteilte Betriebssysteme – Fallstudien Verteilter Betriebssysteme Verteilte Betriebssysteme – Fallstudien Verteilter Betriebssysteme 3.3 Plan 9 3.3 Plan 9 Verteilungsabstraktion Beispiele für Dateien I UNIX: zwei zentrale Konzepte: Prozess und Datei I Eigene Shell terminieren ; echo kill > /proc/$pid/ctrl I Plan 9: Alles ist eine Datei: I Gespeicherte Daten und Dateisysteme I Umgebungvariablen auflisten Fenster ; lc /env I '*' cpu init planb sysname I Protokolle 0 cputype location plumbsrv tabstop Netzwerkinterfaces MKFILE disk menuitem prompt terminal I afont ether0 monitor rcname timezone I ... apid facedom mouseport role user Bildschirm-Kopie drucken I Umsetzung der Abstraktion I ; lp /dev/screen I Angepasstes Namensystem notwendig I Jeder Server ist File-Server I DNS-Abfrage I Implementierung mit einer Art NFS-Protokoll: 9P Protokoll (Version 9P2000 auch unter dem Namen ; echo osg.informatik.tu-chemnitz.de!http > /net/dns styx) WS 2020/21 · Matthias Werner III – 17 von 36 osg.informatik.tu-chemnitz.de WS 2020/21 · Matthias Werner III – 18 von 36 osg.informatik.tu-chemnitz.de Verteilte Betriebssysteme – Fallstudien Verteilter Betriebssysteme Verteilte Betriebssysteme – Fallstudien Verteilter Betriebssysteme