5 Verteilte Algorithmen. vs5 1

Ähnliche Dokumente
Überblick. Zeit Motivation Network Time Protocol (NTP) Logische Uhren. c td VS (SS16) Zeit 9 1

Aufgabe 2.1: Lamports Uhren

Zeit als Mittel der Reihenfolgebestimmung

Prof. Dr. Th. Letschert CS5001. Verteilte Systeme. Master of Science (Informatik) - Formalisierungen, Logische Zeit - Th Letschert FH Gießen-Friedberg

Verteilte Systeme SS Universität Siegen Tel.: 0271/ , Büro: H-B Stand: 7.

Überblick. Zeit Motivation Konvergenz-Algorithmus CNV Network Time Protocol (NTP) Logische Uhren. c td VS (SS17) Zeit 8 1

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

2 Kommunikationssysteme. vs2 1

Vorlesung "Verteilte Systeme" Sommersemester Verteilte Systeme NTP) Verteilte Systeme, Sommersemester 1999 Folie 4.2

6.1.2 Sequentielle Konsistenz (Lamport 1979)

Verteilte Systeme. Organisatorisches. Secure Identity Research Group

Grundlagen: Überblick

9: Verteilte Algorithmen

Gruppenkommunikation. Dipl.-Inf. J. Richling Wintersemester 2003/2004

Einführung in die Informatik 2

Verteilte Systeme. Verteilte Systeme. 7 Koordination SS 2017

Verteilte Systeme. Replikation & Konsistenz I. Prof. Dr. Oliver Haase

Rechnernetze und verteilte Systeme (BSRvS II)

Erste Beispiele für verteilte Algorithmen

Motivation. Gruppenkommunikation. Verteilte Anwendung. Gruppenkommunikation. HW-Multicast div. GC-Impl totale Ord. Kommunikationsnetz

Verteilte Systeme. Synchronisation II. Prof. Dr. Oliver Haase

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme

Elementare Systemkomponenten:

Kapitel 11. Dimension und Isomorphie

Das Paradigma der Beobachtung. Ideale Beobachtungen

Mathematische Grundlagen der Computerlinguistik Ordnungsrelationen

Ziele der Replikation Unterschiedliche Replikationsanforderungen Replikationsmodelle. Verteilte Systeme. 6. Konsistenz und Replikation

Verteilte Systeme - 3. Übung

Synchronisation und Kommunikation über Nachrichten

Uhrensynchronisation. Dipl.-Inf. J. Richling Wintersemester 2003/2004

Wahlalgorithmen auf beliebigen Netzstrukturen. Verteilte Algorithmen (VA), WS 2003/04 43

Interdisziplinäre Fachdidaktische Übung: Kommunikation in der Informatik

Vorlesung "Verteilte Systeme" Sommersemester Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19.

7 Fehlertoleranz. vs7 1

Homogene lineare Differentialgleichung 1. Ordnung

Kapitel 2: Mathematische Grundlagen

Übung 4 Gruppe Hosebei

Transaktionen. Michael Löwe 04/15/16. FHDW Hannover, Freundallee 15, Hannover address:

Mathematische Grundlagen der Computerlinguistik Ordnungsrelationen

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Anomalien und andere folk lores

Überblick. Zeit in verteilten Systemen. Echtzeit-basierte Uhren. Synchronsation von Echtzeit-Uhren: NTP, PTP

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013. WebSphere MQ Teil 3

Diskrete Strukturen Kapitel 2: Grundlagen (Relationen)

Grundlagen der Informationstheorie. Hanna Rademaker und Fynn Feldpausch

Kapitel 2 Partielle Ordnungen

WS 2009/10. Diskrete Strukturen

Verteilte Systeme - Synchronisation

Ordnungen und Verbände

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Verteilte Systeme Vorbereitungsfragen zur Prüfung Teil I V 1.0 vom Seite 1 von 5. K Kommunikation

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 4: Zahlentheorie

Ein einfaches Modell zur Fehlerfortpflanzung

Alternative Architekturkonzepte

Logische Zeit in dezentral gesteuerten Materialflusssystemen

Uberblick Verteilte Synchronisation Zeit in verteilten Systemen Logische Uhr Synchronisation Aufgabe 6 VS- Ubung (SS15) Verteilte Synchronisation 10 1

U = U, v i λ i = o und (z.b.) λ 1 0. i=1 1 = i=2. i=2

Kausalität und kontrafaktische

Message Sequence Charts, Live Sequence Charts

Isomorphie von Bäumen

Schulinternes Curriculum Informatik Differenzierung Klassen 8 und 9

Vorlesung Informatik II

Satz 18 (Satz von der totalen Wahrscheinlichkeit)

3. Relationen Erläuterungen und Schreibweisen

1 Axiomatische Charakterisierung der reellen. 3 Die natürlichen, die ganzen und die rationalen. 4 Das Vollständigkeitsaxiom und irrationale

9. November ZHK in dynamischen Graphen Zentralitäten. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 67

Terminierungserkennung

Sequenz- und Kommunikationsdiagrammen. Systemmodellierung mit SysML von Michel Manthey

Automatisiertes Auffinden von Präfix- und Suffix-Inklusionsabhängigkeiten in relationalen Datenbankmanagementsystemen

Motivation. Überblick. Motivation. Sequentielle Verfahren

Parallele und verteilte Programmierung

Objektorientierte Analyse (OOA) Dynamisches Modell. Objektorientierte Analyse (OOA) Sequenzdiagramm

Distributed Memory Computer (DMC)

Verteilte Systeme Kapitel 8: Replikation und Konsistenz

Seminar über Darstellungstheorie endlicher Gruppen Darstellungen

Dieses Kapitel vermittelt:

Verteilte Algorithmen TI5005

Der Chandy/Lamport-Algorithmus (2) Der Chandy/Lamport-Algorithmus (erster Schnappschussalgorithmus, 1985 veröffentlicht in ACM TOCS 3, 63-75)

Architektur verteilter Anwendungen

Abschnitt 3: Mathematische Grundlagen

Wechselseitiger Ausschluss in verteilten Systemen / Elektionsalgorithmen. Özden Urganci Ulf Sigmund Ömer Ekinci

Reservation von Ressourcen im Internet. Prof. B. Plattner ETH Zürich

S1 Zeit in verteilten Systemen

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

Formale Grundlagen 2008W. Vorlesung im 2008S Institut für Algebra Johannes Kepler Universität Linz

Lineare Algebra I (WS 13/14)

BI Publisher Style- und Subtemplates

Mengen und Abbildungen

2 Die Dimension eines Vektorraums

Terminierungserkennung. Das Problem der Terminierung. - Bsp: Zahlenrätsel (oder ggt) auf einem PC-Cluster

Diskrete Strukturen 5.9 Permutationsgruppen 168/558 c Ernst W. Mayr

3.6 Bemerkungen zur Umformung boolescher Formeln (NAND): doppelte Negation

Diskrete Strukturen Kapitel 1: Einleitung

Kapitel 2. Mathematische Grundlagen. Skript zur Vorlesung Einführung in die Programmierung

VHDL Simulation. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

KÖNIGSBERGER BRÜCKENPROBLEM

Rechnerarchitektur. Lösungsvorschlag 6. Übung. Sommersemester Aufgabe: Zyklische Verschiebung

Grundlagen Internet-Technologien INF3171

Mit Skalarprodukt und Vektorprodukt lässt sich ein weiteres, kombiniertes Produkt, das Spatprodukt

Transkript:

5 Verteilte Algorithmen vs5 1

Charakterisierung eines verteilten Systems? 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 vs5 2

Datenfluß-Architektur (dataflow architecture, pipes and filters ) z.b. Unix Pipeline: keine ausgezeichneten Rollen, keine Erwartungen an Kommunikationspartner grep pat sort lpr oder Datenflußmaschine: + - * vs5 3

Client/Server-Architektur Rollen: Auftraggeber (Klient) und Auftragnehmer (Server) Einseitige Erwartung des Klienten an den Server z.b. so: lpr file grep pat file print server file server mail server vs5 4

Def.: Verteilter Algorithmus Prozesse kooperieren zwecks Erreichung eines gemeinsamen Ziels in verschiedenen oder gleichen Rollen, mit bestimmten, vereinbarten Interaktionsmustern = "Protokoll" Gerne in Pseudocode formuliert, mit prozessbezogener Adressierung Behandelt häufig Fehlertoleranz bei unzuverlässigen Prozessen oder unzuverlässiger Kommunikation vs5 5

z.b. zuverlässige unidirektionale Nachrichtenübertragung über unzuverlässigen bidirektionalen Kanal: Kommunikationsprotokoll Daten Sender Empfänger Quittungen oder Einigung auf Anführer : Auswahlprotokoll vs5 6

5.1 Zeit und Kausalität Zur Erinnerung: Charakteristika eines verteilten Systems: es gibt keinen gemeinsamen Speicher es gibt keine globale Zeit absolute Zeit sehr schwer realisierbar aber: relative Zeitpunkte einzelner Ereignisse können wichtig sein (z.b. push vor pop - oder pop vor push? ) vs5 7

Speziell Nachrichten-Reihenfolge: Bei Sender/Empfänger-Paar: leicht darstellbar durch Durchnumerieren der Nachrichten 0 1 2 Bei mehreren Beteiligten: wie numerieren? Insbesondere Darstellung von Kausalketten - wurde b nach Eintreffen von a versendet oder nicht? a b' vs5 8 b c

5.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) Ereignismenge, nicht näher spezifiziert: E Prozesse werden als sequentiell vorausgesetzt Kommunikation wird als verlustfrei vorausgesetzt vs5 9

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: entweder oder oder 1) a und b gehören zum selben Prozess und geschehen in dieser Reihenfolge 2) a ist das Senden einer Nachricht, b ist das Empfangen dieser Nachricht 3) es gibt ein Ereignis c mit a c und c b (Transitivität von ) vs5 10

Def.: Mit der kausalen Abhängigkeit " " definieren wir eine Relation "gleich oder vor". Diese ist eine partielle Ordnung auf E: die Kausalordnung. Def.: Zwei Ereignisse a,b sind voneinander unabhängig (auch nebenläufig, concurrent, causally unrelated), wenn weder a b noch b a vs5 11

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

5.1.2 Logische Uhren Numerische Repräsentation der kausalen Abhängigkeit - anstelle von pysikalischen Zeitpunkten Idee: 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. vs5 13

1. Versuch: Skalare Zeit [Lamport 1978] T = natürliche Zahlen 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. Bemerkung: Hängt man an die Skalarzeit noch die Prozessnummer an, so kann man die Ereignisse gemäß dieser Kennung linear anordnen verträglich mit ihrer Kausalordnung ( topologisches Sortieren ). vs5 14

Naiver Ansatz: Durchnumerieren der Ereignisse pro Prozess A 1 2 3 4 B 1 2 3 4 C 1 2 3 4 Lineare Anordnung mit Skalar-Zeit A 1 2 3A 8 B 1 3B 4 5B C 1 5C 6 7 vs5 15

Für beliebige Ereignisse a,b E gilt aber nicht die Umkehrung! Auch gilt zwar a b C(a) < C(b), 4 5B 5C 6 C(a) = C(b) (a b b a), aber nicht C(a) = C(b) a = b vs5 16

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. vs5 17

Lineare Anordnung mit Skalar-Zeit A 1 2 3A 8 B 1 3B 4 5B C 1 5C 6 7 Vektor-Zeitstempel A 100 200 300 434 B 010 220 230 240 C 001 232 233 234 vs5 18

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