Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Vs41 4 Verteilte Algorithmen. vs42 Prozesse als Systemkomponenten:  Spezifikation eines Prozesses ? (Vgl. Spezifikation eines ADT) syntaktisch:z.B. Ports.

Ähnliche Präsentationen


Präsentation zum Thema: "Vs41 4 Verteilte Algorithmen. vs42 Prozesse als Systemkomponenten:  Spezifikation eines Prozesses ? (Vgl. Spezifikation eines ADT) syntaktisch:z.B. Ports."—  Präsentation transkript:

1 vs41 4 Verteilte Algorithmen

2 vs42 Prozesse als Systemkomponenten:  Spezifikation eines Prozesses ? (Vgl. Spezifikation eines ADT) syntaktisch:z.B. Ports oder Parameter vom Typ „Prozeß“ semantisch:Ein/Ausgabeverhalten  Unterschiedliche Arten von Beziehungen zwischen Prozessen – „Interaktionsparadigmen“, „Architekturstile“ (Prozesse spielen Rollen in diesen Beziehungen) Datenfluß-Architektur Client/Server-Architektur Verteilter Algorithmus

3 vs43 Datenfluß-Architektur (dataflow architecture, „pipes and filters“) keine ausgezeichneten Rollen grep patlprsort z.B. Unix Pipeline: oder Datenflußmaschine: + * -

4 vs44 Client/Server-Architektur Rollen: Auftraggeber (Klient) und Auftragnehmer (Server) z.B. so: file server grep pat file mail server print server lpr file

5 vs45 Def.:Verteilter Algorithmus Prozesse kooperieren zwecks Erreichung eines gemeinsamen Ziels  in verschiedenen oder gleichen Rollen,  mit bestimmten, vereinbarten Interaktionsmustern, „Protokollen“ Häufig Fehlertoleranz bei unzuverlässigen Prozessen oder unzuverlässiger Kommunikation Gerne in Pseudocode formuliert, mit prozessbezogener Adressierung

6 vs46 z.B. zuverlässige unidirektionale Nachrichtenübertragung über unzuverlässigen bidirektionalen Kanal: Kommunikationsprotokoll SenderEmpfänger Daten Quittungen oderEinigung auf „Anführer“: Auswahlprotokoll

7 vs47 4.1 Zeit und Kausalität Zur Erinnerung: Charakteristika eines verteilten Systems: es gibt keinen gemeinsamen Speicher es gibt keine globale Zeit absolute Zeit interessiert wenig aber: relative Zeitpunkte einzelner Ereignisse können wichtig sein (z.B. „push vor pop - oder pop vor push?“ )

8 vs48 4.1.1 Kausale Ordnung von Ereignissen Def.: Ereignis(event) local - prozessinterne Aktion (z.B. „Zuweisung an Variable x“) send - Senden einer Nachricht (Ausführung von send ) recv - Empfangen einer Nachricht (Ausführung von recv )  Prozesse werden als sequentiell vorausgesetzt  Dienstgüte des Nachrichtensystems bleibt zunächst offen Ereignismenge, nicht näher spezifiziert: E

9 vs49 Def.: Kausale Abhängigkeit Zwei Ereignisse a,b  E stehen in der Beziehung a  b („a vor b“, „a happened before b“, „b ist kausal abhängig von a“) zueinander, wenn gilt: entweder1) a und b gehören zum selben Prozess und geschehen in dieser Reihenfolge oder2) a ist das Senden einer Nachricht, b ist das Empfangen dieser Nachricht oder3) es gibt ein Ereignis c mit a  c und c  b (Transitivität von  )

10 vs410 Bemerkung:Die Relation „gleich oder vor“ ist partielle Ordnung auf E: Kausalordnung Def.:Zwei Ereignisse a,b sind voneinander unabhängig (auch nebenläufig, concurrent, causally unrelated), wenn weder a  b noch b  a

11 vs411 Veranschaulichung der partiellen Ordnung durch Zeitdiagramm (ähnlich dem Hasse-Diagramm für partielle Ordnungen) Zeit a j f e dc b h g i z.B.a  c  e b  d  e c  h ! y x Aus x  b, d  y folgt, daß die beiden Nachrichten nicht FIFO übertragen wurden! nichta  d, g  j !

12 vs412 Nochmals zur Dienstgüte des Nachrichtensystems: Reihenfolgetreue (FCFS, FIFO) bei Sender/Empfänger-Paar: 1 2 0 gegebenenfalls erzwingen mit Durchnumerieren der Nachrichten Kausalitätstreue bei mehreren Beteiligten: a c a wird vor c gesendet, also auch vor c empfangen b wie erzwingen ? 012012

13 vs413 4.1.2 Logische Uhren in Anlehnung an die Kausalitätsbeziehung Ziel:Jedem Ereignis e  E wird eine „Zeit“ C(e)  T zugeordnet. Die Zeiten sind partiell geordnet, und die Ordnung sollte isomorph zur Kausalordnung sein: (E,  )  (T,  ) Die Abbildung C: E  T heißt logische Uhr.

14 vs414 1. Versuch: Skalare Zeit [Lamport 1978] T = natürliche Zahlen (totale Ordnung - daher zum Scheitern verurteilt) Jeder Prozess - führt in einer lokalen Uhr eine lokale Zeit c (anfangs 0) - versieht jede versendete Nachricht mit Zeitstempel (timestamp) t = c.  Vor jedem Ereignis wird c um 1 erhöht.  Nach recv mit Zeitstempel t wird c auf max(c,t+1) gesetzt.

15 vs415 Für beliebige Ereignisse a,b  E gilt a  b  C(a)  C(b), aber nicht die Umkehrung! Auch gilt zwar C(a) = C(b)   (a  b  b  a), aber nichtC(a) = C(b)  a = b Bemerkung:Hängt man an die Skalarzeit die Prozessnummer an, so kann man die Ereignisse gemäß dieser Kennung linear anordnen – verträglich mit ihrer Kausalordnung („topologisches Sortieren“).

16 vs416 2. Versuch:Vektorzeit [Fidge, Mattern 1988] T = n-Tupel natürlicher Zahlen (bei n Prozessen 1,..,n) t  s : t i  s i für alle i=1,..,n  Halbordnung ! Jeder Prozess p - führt in einer lokalen Uhr eine lokale Vektorzeit c (anfangs (0,0,..) ), - versieht jede versendete Nachricht mit Zeitstempel t = c.  Vor jedem Ereignis wird c p um 1 erhöht.  Nach recv mit Zeitstempel t werden für alle i=1,..,n die c i auf max(c i,t i ) gesetzt.

17 vs417 Mit der Vektorzeit C erreichen wir die gewünschte Isomorphie: (E,  )  (T,  )


Herunterladen ppt "Vs41 4 Verteilte Algorithmen. vs42 Prozesse als Systemkomponenten:  Spezifikation eines Prozesses ? (Vgl. Spezifikation eines ADT) syntaktisch:z.B. Ports."

Ähnliche Präsentationen


Google-Anzeigen