Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


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

1 4 Verteilte Algorithmen 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

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

3 Client/Server-Architektur Rollen: Auftraggeber (Klient) und Auftragnehmer (Server) file server grep pat file mail server print server lpr file

4 Verteilter Algorithmus Prozesse kooperieren zwecks Erreichung eines gemeinsamen Ziels - in verschiedenen oder gleichen Rollen, - mit bestimmten, vereinbarten Interaktionsmustern (Protokollen) z.B. zuverlässige unidirektionale Nachrichtenübertragung über unzuverlässigen bidirektionalen Kanal: Kommunikationsprotokoll SenderEmpfänger Daten Quittungen oderEinigung auf Anführer: Auswahlprotokoll

5 Def.:Verteilter Algorithmus Prozesse kooperieren zwecks Erreichung eines gemeinsamen Ziels Häufig Fehlertoleranz bei unzuverlässigen Prozessen oder unzuverlässiger Interprozeßkommunikation Formulierung in Pseudocode, mit prozeßbezogener Adressierung

6 4.1 Zeit und Kausalität Nochmals: 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? )

7 4.1.1 Kausale Ordnung von Ereignissen Ereignisse:- prozeßintern (z.B. Zuweisung an Variable x) - send (Ausführung von send ) - recv (Ausführung von recv ) (Prozesse sind als sequentiell vorausgesetzt) (Kommunikationssemantik: zunächst keine Festlegung) Ereignismenge, nicht näher spezifiziert: E

8 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 Prozeß und werden in dieser Reihenfolge ausgeführt 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 )

9 Bemerkung:Die Relation gleich oder vor ist partielle Ordnung auf E: Kausalordnung Def.:Zwei Ereignisse a,b sind zueinander nebenläufig (unabhängig, concurrent, causally unrelated), wenn weder a b noch b a

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

11 Nochmals zur Semantik von Senden/Empfangen: Reihenfolgetreue (FCFS, FIFO) bei Sender/Empfänger-Paar: gegebenenfalls erzwingen mit Durchnumerieren der Nachrichten Kausalitätstreue bei mehreren Beteiligten: a c a c a vor c ! b a wie erzwingen ?

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

13 1. Versuch: Skalare Zeit (Lamport 1978) T = natürliche Zahlen (totale Ordnung - daher zum Scheitern verurteilt) Jeder Prozeß führt in einer lokalen Uhr eine lokale Zeit c und 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.

14 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 Prozeßnummer an, so kann man die Ereignisse gemäß dieser Kennung linear anordnen – verträglich mit ihrer Kausalordnung.

15 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,..,nHalbordnung! Jeder Prozeß p führt in einer lokalen Uhr eine lokale Vektorzeit c und versieht jede versendete Nachricht mit c als Zeitstempel. 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.

16 Mit der Vektorzeit C erreichen wir die gewünschte Isomorphie: (E, ) (C(E), <)


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

Ähnliche Präsentationen


Google-Anzeigen