© H.-U. Hei§, Uni Paderborn 1 Grundlagen Verteilter Systeme 1.1 BegrŸndung und Bedeutung Verteilte Systeme Warum bilden ãVerteilte SystemeÒ ein eigenstŠndiges Thema ? ¥ Es gibt parallele AktivitŠten (Koordination, Synchronisation) ¥ Es gibt keinen gemeinsamen Speicher (Interaktion durch Nachrichtenaustausch) ¥ Systeme kšnnen sehr gro§ sein (Gro§systemeffekte, Umschlag von der QuantitŠt in die QualitŠt) ¥ Fehler und AusfŠlle sind wahrscheinlich (Fehlertoleranz) ¥ Komponenten (Hardware und Software) sind heterogen (Standardisierung von Schnittstellen) 1-1 © H.-U. Hei§, Uni Paderborn Paradigmenwechsel in der Informatik Zum wissenschaftstheoretischen Begriff des Paradigma παραδειγµα = Beispiel, Muster Paradigma im Sinne von Th. Kuhn (ãThe structure of scientific revolutionsÒ): Summe aller Grundannahmen, die in einem gewissen Zeitraum in einem Fachgebiet allgemein anerkannt werden, d.h. das aktuell gŸltige Fundament eines Fachgebiets Beispiele fŸr Paradigmenwechsel in der Physik: ¥ Kopernikanische Wende: †bergang vom geozentrischen (PtolemŠus) zum heliozentrischen Weltbild (Kopernikus) ¥ Von der NewtonÕschen Mechanik zur RelativitŠtstheorie und weiter zur Quantenmechanik 1-2 © H.-U. Hei§, Uni Paderborn Paradigmenwechsel in der Informatik Phase 1: 1930 - 1960 (AnfŠnge) Sichtweise: Rechenassistent Maschine Charakterisierung: In eine leere Maschine wird ausfŸhrbarer Code inklusive Eingabedaten geladen, die Maschine berechnet Ergebnisse, gibt sie aus und hŠlt an. 1-3 © H.-U. Hei§, Uni Paderborn Phase 2: 1960 - 1980 (Hoch-Zeit der Informatik) Sichtweise: Hierarchie logischer, sprachverarbeitender Maschinen Programm Übersetzer Maschine Charakterisierung: Programme in hšheren Programmiersprachen dienen als Eingabedaten fŸr †bersetzer oder Interpreterierer, die daraus ausfŸhrbaren Code erzeugen. Abarbeitung weitgehend sequentiell. Residentes Betriebssystem ermšglicht Mehrprogrammbetrieb (time-sharing) 1-4 © H.-U. Hei§, Uni Paderborn Phase 3: heute Sichtweise: Eine Gruppe autonomer, ãintelligenterÒ Instanzen, die untereinander und mit der Au§enwelt interagieren. Charakterisierung: Komplexe Softwaresysteme erstrecken sich Ÿber eine Vielzahl von Rechnern. Sie bestehen aus einer Vielzahl spezialisierter, parallel arbeitender ãAgentenÒ, die zur ErfŸllung ihrer komplexen Aufgaben miteinander kooperieren und gleichzeitig im Wettbewerb um knappe Ressourcen stehen. 1-5 © H.-U. Hei§, Uni Paderborn Was ist ein Verteiltes System ? Definition (Leslie Lamport) (nicht ganz ernst gemeint) "A distributed system is one on which I cannot get any work done because some machine I have never heard of has crashed." Begriffliche AnnŠherung ãEin verteiltes System ist eine Zusammenfassung autonomer Rechner, die durch ein Netzwerk verbunden sind und durch geeignete SoftwareunterstŸtzung sich dem Benutzer als ein zusammenhŠngendes Rechensystem darstellen.Ò 1-6 © H.-U. Hei§, Uni Paderborn Beispiele ¥ Ein Transputersystem (z.B. direkt gekoppelte Transputer-Bausteine mit lokalem Speicher) ¥ Ein Netz von Arbeitsplatzrechnern (verbunden durch Ethernet oder Token-Ring) ¥ Gesamtheit aller Internet-Knoten ¥ Die durch einen Bus gekoppelten Prozessoren in einem Automobil (ABS, Motorsteuerung, autom. Getriebe, Airbag, Navigationsrechner) ¥ Ein Netz von Bargeldautomaten und dazugehšrige Server-Rechner ¥ Die Gesamtheit aller Rechnerknoten einer vollautomatischen Fertigungsstra§e ¥ Die Menge aller Mobiltelephone in einer Zelle d.h. Verteilte Systeme umfassen nahezu alle Bereiche heutigen Rechnereinsatzes 1-7 © H.-U. Hei§, Uni Paderborn 1.2 Entstehung Verteilter Systeme Verteilte Systeme sind das Resultat zweier Prozesse: ¥ Verteilen Programme und Daten werden auf mehrere Rechner verteilt, um Beschleunigung oder Fehlertoleranz zu erzielen ¥ Verbinden Rechner und ihre Programme werden von anderen Rechnern erreichbar und bilden gro§e Verbunde logischer und physikalischer Betriebsmittel 1-8 © H.-U. Hei§, Uni Paderborn Das Grosch'sche Gesetz Leistung Preis "Die Leistung eines Rechners steigt (ungefŠhr) quadratisch mit dem Preis" Konsequenz: Es ist gŸnstiger, einen doppelt so schnellen Rechner zu kaufen als zwei einfach schnelle (Das Gesetz galt in den Sechzigern und Siebzigern Ÿber einen weiten Bereich von Universalrechnern) 1-9 © H.-U. Hei§, Uni Paderborn Achtziger Jahre Aufkommen leistungsstarker Mikroprozessoren ¥ ¥ ¥ ¥ ¥ Hohe Integrationsdichte (VLSI) Ein-Chip-Prozessoren Automatisierter Herstellungsprozess Automatisierter Entwurfsprozess Hohe StŸckzahlen Konsequenz: Grosch'sches Gesetz gilt nicht mehr: 1000 billige Mikroprozessoren bringen (rechnerisch) mehr Leistung (MIPS) als teurer Superrechner (z.B. Cray) Idee: Zur Erzielung hoher Leistung bei geringen Kosten viele Prozessoren gemeinsam einsetzen. ⇒ Parallelverarbeitung (ãVerteilenÒ) 1-10 © H.-U. Hei§, Uni Paderborn Achtziger Jahre ¥ Verbreitung von Arbeitsplatzrechner und PCs Bildschirme werden durch PCs ersetzt Workstations erreichen die Leistung von Gro§rechnern bei einem Bruchteil des Preises. ¥ Verbreitung lokaler Netze (LAN) (Ethernet) Mšglichkeit, eine gro§e Anzahl autonomer Rechner kostengŸnstig mit einem leistungsfŠhigen Medium zu verbinden. Zugriff auf Dateien anderer Rechner Nutzung von (Unter)programmen und anderer Betriebsmittel auf entfernten Rechnern ⇒ Verteilte Systeme (ãVerbindenÒ) 1-11 © H.-U. Hei§, Uni Paderborn Wesentliche Eigenschaften ¥ Gemeinsame Nutzung von Betriebsmitteln (GerŠte, Kommunikationsverbindungen, Programme, Daten) erweist sich im verteilten Fall als schwieriger ¥ NebenlŠufigkeit in hohem Ma§e vorhanden: Ein komplexes Netzwerk paralleler AktivitŠten ¥ Skalierbarkeit als Forderung: System soll auch noch funktionieren, wenn sich die Zahl der Knoten um Zehnerpotenzen Šndert ¥ Transparenz Benutzer soll von der Verteiltheit des Systems mšglichst nichts mitbekommen ¥ Offenheit Verwendete Schnittstellen (HW&SW) sollen šffentlich sein, damit neue Komponenten leicht integriert werden kšnnen ¥ Fehlertoleranz Einzelne AusfŠlle einzelner Komponenten dŸrfen nicht zum Ausfall des gesamten Systems fŸhren 1-12 © H.-U. Hei§, Uni Paderborn Vor- und Nachteile verteilter Systeme Vorteile Nachteile ¥ Kostenreduktion ¥ Hoher Bedienungs- und Wartungsaufwand ¥ Lokale Kontrolle und VerfŸgbarkeit ¥ Probleme durch HeterogenitŠt ¥ Schwierigkeit, korrekte verteilte Software zu erstellen ¥ KomplexitŠt des Kommunikationssystems ¥ Hoher Aufwand beim †bergang vom zentralisierten zum dezentralen System ¥ Sicherheitsprobleme ¥ Gesamtkosten schwer abzuschŠtzen ¥ Ma§geschneiderte Konfiguration ¥ Leichte Erweiterbarkeit ¥ Ausfalltoleranz ¥ Hohe Leistung durch Parallelarbeit ¥ Modulare Software ¥ HerstellerunabhŠngigkeit ¥ †bereinstimmung mit organisatorischen Strukturen 1-13 © H.-U. Hei§, Uni Paderborn 1.3 Hardware-Architektur Verteilter Systeme Grobklassifikation nach Flynn Das bekannteste und einfachste Klassifikationsschema unterscheidet nach Einfachheit oder Vielfachheit von Befehls- und Datenstršmen. Durch Kombination gelangt man zu vier Klassen: MI (Multiple Instruction) SI (Single Instruction) SD (Single Data) MD (Multiple Data) SISD SIMD konventionelle von-Neumann-Rechner Feldrechner, Vektorrechner (Cray-1, CM-2, MasPar,..) MISD MIMD (bisher) leer Multiprozessorsysteme, Verteilte Systeme (Transputersysteme, Suprenum, Sequent Balance, CM-5, SGI, Intel Paragon, IBM SP6000, Cray T3D/T3E) 1-14 © H.-U. Hei§, Uni Paderborn MIMD-Maschinen a) Multirechnersysteme (message passing systems, loosely coupled systems) Jeder Prozessor P verfŸgt Ÿber einen eigenen Speicher M, auf den nur er Zugriff hat. Datenaustausch durch Versenden von Nachrichten Ÿber ein Verbindungsnetzwerk Verbindungsnetz P P P P P P M M M M M M 1-15 P M P M © H.-U. Hei§, Uni Paderborn b) Multiprozessorsysteme (shared memory systems, tightly coupled systems) Alle Prozessoren (P) greifen Ÿber ein gemeinsames Kommunikationsnetz auf gemeinsame Speichermodule (M) zu P P P P P P P P Verbindungsnetz M M M M Nach der Art der Erreichbarkeit der Speichermodule kann weiter unterschieden werden: - einheitlicher Speicherzugriff (uniform memory access, UMA): Zugriffszeit zum Speichermodul ist unabhŠngig von der Adresse des Prozessors oder des Speichermoduls - uneinheitlicher Speicherzugriff (nonuniform memory access , NUMA Zugriffszeit hŠngt von den beteiligten Adressen ab. 1-16 © H.-U. Hei§, Uni Paderborn Verbindungsnetze Allgemeine Kriterien ¥ Erweiterbarkeit Variable Anzahl von AnschlŸssen pro Prozessor Beliebige Inkremente ¥ Leistung Kurze Wege zwischen allen Prozessoren Hohe Bandbreite Geringe †bertragungsdauer ¥ Kosten Proportional zur Anzahl der Leitungen und zur Anzahl der AnschlŸsse. ¥ ZuverlŠssigkeit Die Existenz redundanter Datenpfade ¥ FunktionalitŠt Pufferung Wegewahl Gruppenkommunikation 1-17 © H.-U. Hei§, Uni Paderborn Statische Verbindungsnetze KonnektivitŠtsspektrum statischer Netze Ring Hyperwürfel Anz. Verbindungen n n/2 log2 n n (n-1) / 2 Anschlüsse/Prozessor 2 log2 n n-1 Durchmesser n/2 log2 n 1 1-18 vollständig vermascht © H.-U. Hei§, Uni Paderborn Beispiele Gitter-Strukturen 4x4-Gitter 4x4-Torus Eigenschaften ¥ ¥ ¥ Konstanter Knotengrad Erweiterbarkeit in kleinen Inkrementen Gute UnterstŸtzung von Algorithmen mit lokaler Kommunikationsstruktur (Modellierung physikalischer Prozesse) 1-19 © H.-U. Hei§, Uni Paderborn HyperwŸrfel HyperwŸrfel der Dimension 4 (H(4)) Eigenschaften: ¥ ¥ ¥ logarithmischer Durchmesser Erweiterung in Zweierpotenzen Variabler Knotengrad 1-20 © H.-U. Hei§, Uni Paderborn WŸrfelartig verbundene Ringe CCC(d) (cube connected cycles) d-dimensionalen HyperwŸrfel, bei dem jeder durch einen Ring der Anzahl d ersetzt wird. Jeder dieser d Knoten besitzt neben den zwei Ringkanten eine weitere Kante in Richtung einer der d HyperwŸrfel-Dimensionen Cube Connected Cycles der Dimension 3 (CCC(3)) Eigenschaften: ¥ logarithmischer Durchmesser ¥ konstanter Knotengrad (=3) ¥ Erweiterung nur in Zweierpotenzen 1-21 © H.-U. Hei§, Uni Paderborn Parameter typischer statischer Verbindungsnetze Anzahl Knoten d d Gitter G( a1 × a 2 ×L× a d ) ∏a k =1 Anzahl Kanten k ∑ (a k =1 d Torus T( a1 × a 2 ×L× a d ) ∏a k =1 d HyperwŸrfel H(d) 2 Cube Connected Cycles CCC(d) d2 k −1) i 2d d ∏a k =1 k − 1) d 2d k ∑ a k =1 d −1 3d 2 ∑ (a k =1 d k Durchmesser d i≠k d2 d ∏a max. Knotengrad d −1 1-22 k / 2 d d 3 2d + d / 2 © H.-U. Hei§, Uni Paderborn Dynamische Verbindungsnetze Alle Komponenten haben Zugang zu einem gemeinsamen Verbindungsnetz. Verbindungen werden bei Bedarf geschaltet schaltbares Verbindungsnetz Schema eines dynamischen Netzes Im wesentlichen lassen sich drei Klassen unterscheiden ¥ Bus ¥ Schaltermatrix ¥ Mehrstufige Netze 1-23 © H.-U. Hei§, Uni Paderborn Busartige Netze Eigenschaften: ¥ ¥ ¥ ¥ KostengŸnstig Blockierend erweiterbar geeignet fŸr begrenzte Anzahl von Komponenten Einzelbus M M M M P P P P Bus Mehrbus - Verbindungsnetz (MultibusfŸr Multiprozessor-Architektur M M M M P P B1 B2 Bm 1-24 P P © H.-U. Hei§, Uni Paderborn Gitter von Bussen fŸr Multicomputer-Architektur (Suprenum) P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P 1-25 © H.-U. Hei§, Uni Paderborn Schaltermatrix Eigenschaften ¥ Teuer ¥ Blockierungsfrei, leistungsfŠhig ¥ Zahl der AnschlŸsse festgelegt ¥ Wegen der quadratisch wachsenden Kosten nur fŸr begrenzte Anzahlen realisierbar M P P P P P P P P P P P P P P P P Interprozessorverbindung M M M M M M M Verbindung zwischen Prozessoren und Speichermodulen 1-26 © H.-U. Hei§, Uni Paderborn Mehrstufige Netze Kleinere Schaltermatrizen (z.B. 2x2) dienen als Zellen, die in Stufen zu komplexeren Netzen verschaltet werden. Eigenschaften ¥ ¥ teilweise blockierend erweiterbar (a) (b) (c) (d) Elementare SchalterzustŠnde: Durchschaltung (a), Kreuzschaltung (b), obere (c) und untere (d) VervielfŠltigung 1-27 © H.-U. Hei§, Uni Paderborn Beispiel: Omega-Netz 000 001 000 001 010 011 010 011 100 101 100 101 110 111 110 111 1-28 © H.-U. Hei§, Uni Paderborn Klassen dynamischer Verbindungsnetze mit ihren wesentlichen Eigenschaften im Vergleich: Bus Latenzzeit (Distanz) Bandbreite pro Anschluss Schalterkosten Verdrahtungskosten Schaltermatrix 1 1/n Mehrstufige Netze log n 1 n n n log n n log n n2 n 1 1 AbschŠtzung des asymptotischen Wachstums von Kosten- und Leistungsmerkmalen dynamischer Verbindungsnetze 1-29 © H.-U. Hei§, Uni Paderborn Lokale Netze ¥ meist bus- oder ringartige Topologie ¥ diverse Medien (z.B. Koaxialkabel, Twisted Pair, Glasfaser, Infrarot) ¥ diverse Protokolle (z.B. Ethernet, Fast-Ethernet, Gigabit-Ethernet, Token-Ring, FDDI, ATM) ¥ angeschlossene Rechnerknoten hŠufig sehr heterogen bezŸglich Leistung Hersteller Betriebssystem ¥ meist hierarchische heterogene Struktur von Subnetzen (gegliederte Netze) 1-30 © H.-U. Hei§, Uni Paderborn Beispiel fŸr gegliedertes lokales Netz File-Server Rep Router Bridge Ethernet Token-Ring PSE FDDI-Ring Bridge 1-31 WANVerbindungen © H.-U. Hei§, Uni Paderborn Cluster-Architekturen Unter einem Cluster versteht man die Zusammenfassung vollstŠndiger autonomer Rechner (Workstations, PCs) zu einem Parallelrechner. Die Komponentenrechner kšnnen, mŸssen aber nicht rŠumlich eng gekoppelt sein. Wesentlich ist die Kopplung durch ein Hochgeschwindigkeitsnetz. Typischerweise eingesetzte Netze Fast Ethernet ATM Myrinet SCI (Scalable Coherent Interface) 1-32 © H.-U. Hei§, Uni Paderborn Beispiel: SCI-Cluster der Uni Paderborn (Siemens hpcLine) 96 Doppelprozessor-PCs (Pentium II, 450 MHz) mit insgesamt 48 GB Hauptspeicher, mit SCI-Ringen als 12x8-Torus verschaltet. NUMA-Architektur: Hardwarezugriff auf entfernten Speicher Prozessor L1 L1 Cache Prozessor-Bus Cache L2 Busbrücke L2 I/O-Bus I/O-Bus Speicher Busbrücke Prozessor Prozessor Prozessor L1 L1 L2 L2 Prozessor-Bus Speicher SCI Adapter SCI Adapter SCI-Ring 1-33 © H.-U. Hei§, Uni Paderborn 1.4 Software-Architektur Verteilter Systeme Anwendungen sollen in mšglichst transparenter Weise unterstŸtzt werden, d.h. es wird eine SW-Infrastruktur benštigt, welche die Verteiltheit weitgehend Verteilte Anwendung ??? Rechner Rechner Rechner Rechner Verbindungsnetz 1-34 verdeckt. © H.-U. Hei§, Uni Paderborn Zwei ArchitekturansŠtze fŸr verteilte Systeme: Verteiltes Betriebssystem: Das Betriebssystem selbst stellt bereits die benštigten Funktionen zur VerfŸgung Verteilte Anwendung Verteiltes Betriebssystem Rechner Rechner Rechner Rechner Verbindungsnetz Netzwerk-Betriebssystem Die lokalen Betriebssysteme werden ergŠnzt um eine weitere Schicht (Netzwerkbetriebssystem, Middleware), welche die verteilten Funktionen anbietet Verteilte Anwendung lok. BS Netzwerk-Betriebssystem lok. BS lok. BS lok. BS Rechner Rechner Rechner Rechner Verbindungsnetz 1-35 © H.-U. Hei§, Uni Paderborn Allgemeine Betriebssystem-Architektur (Mikrokern-Architktur) Steuerung & Kontrolle Kommandos, Benutzerschnittstelle Anwendung Dienste Prozeßbereich Betrieb und Verwaltung realer und logischer Betriebsmittel Kernschnittstelle BS-Kern Prozeßverwaltung Interaktion Hardware 1-36 Kernbereich © H.-U. Hei§, Uni Paderborn Architektur lokaler Betriebssysteme Benutzerprozesse BS-Prozesse Kernschnittstelle Betriebssystemkern Hardware 1-37 © H.-U. Hei§, Uni Paderborn Architektur verteilter Betriebssysteme Rechnergrenze Benutzerprozesse BS-Prozesse BS-Kern BS-Kern Hardware Hardware Verbindungsnetz 1-38 © H.-U. Hei§, Uni Paderborn Prozesskommunikation Konzeptuelle Sicht: A B oder A B K Kommunikationsobjekt Realisierung: A B Senden(K,..) Empfangen(K,..) Kern K 1-39 © H.-U. Hei§, Uni Paderborn Verteilte Betriebssysteme: Architekturvarianten In verteilten Systemen mŸssen zur Prozessinteraktion Rechnergrenzen Ÿberwunden werden. Die dazu erforderliche Kommunikationssoftware kann nun im Betriebssystemkern integriert sein (Kernverbund) oder als spezielle Komponente au§erhalb des Kerns existieren (Proze§verbund) ¥ Beim Kernverbund ist die Verteiltheit unter der Kernschnittstelle verborgen. Kernaufrufe kšnnen sich auf beliebige Objekte im Netz beziehen. Die Vereinigung aller Kerne bildet den Verbundkern. ¥ Beim Prozessverbund bleibt die lokale Kernschnittstelle unangetastet. Der lokale Kern ist sich nicht bewusst, dass er Teil eines verteilten Systems ist. Auf diese Weise kšnnen bestehende Betriebssysteme zu verteilten Betriebssystemen erweitert werden. 1-40 © H.-U. Hei§, Uni Paderborn Kernverbund: Rechnergrenzen Prozeß Prozeß Verbundsoftware Verbundsoftware lok. BS-Kern lok. BS-Kern Verbundkern 1-41 © H.-U. Hei§, Uni Paderborn Prozessverbund: Rechnergrenzen Prozeß Prozeß Verbundsoftware Verbundsoftware BS-Kern BS-Kern 1-42 © H.-U. Hei§, Uni Paderborn Abgrenzung verteilter Betriebssysteme Multiprozessor-BS Verteiltes BS Netzwerk-BS Alle Rechner das gleiche BS? ja ja nein Wie viele Kopien des BS ? 1 n n Gemeinsame Prozesswarteschlange ? ja nein nein gemeinsamer Speicher Nachrichtenaustausch Nachrichtenaustausch / gemeinsame Dateien Kommunikation 1-43 © H.-U. Hei§, Uni Paderborn Transparenz Transparenz ist die Eigenschaft, dass der Benutzer (fast) nichts von der Verteiltheit merkt Sie bildet die wesentliche Herausforderung beim Entwurf verteilter Systeme ¥ Zugriffstransparenz Zugriffe auf entfernte BM in gleicher Weise wie auf lokale ¥ Ortstransparenz Namenstransparenz Objekte werden Ÿber einen Namen angesprochen, der unabhŠngig von seinem Ort ist BenutzermobilitŠt Auch wenn der Benutzer seinen Ort Šndert, kann er die Objekte mit gleichem Namen ansprechen ¥ Replikationstransparenz Falls zur Leistungssteigerung (temporŠre) Kopien von Daten angelegt werden, wird fŸr deren Konsistenz automatisch gesorgt. 1-44 © H.-U. Hei§, Uni Paderborn Transparenz ¥ Fehlertransparenz AusfŠlle einzelner Komponenten sollen mšglichst nicht bemerkbar sein ¥ Migrationstransparenz Die Verlagerung eines Objektes an einen anderen Ort soll nicht bemerkbar sein ¥ NebenlŠufigkeitstransparenz Die Tatsache, dass mehrere Benutzer von verschiedenen Orten auf Objekte gemeinsam zugreifen, soll zu keinen Fehlern oder Problemen fŸhren. ¥ Skalierungsstransparenz Die Erweiterung um weitere Knoten soll im laufenden Betrieb mšglich sein. Die Verfahren und Algorithmen sollen das Wachstum ãverkraftenÒ kšnnen ¥ Leistungstransparenz Keine LeistungseinbrŸche einzelner Knoten durch ungleiche Lastverteilung 1-45