4 Verteilte Algorithmen

Slides:



Advertisements
Ähnliche Präsentationen
Aufbau eines Netzwerkes
Advertisements

Einer der Dienste im Internet
Rechnernetze und verteilte Systeme (BSRvS II)
Beim Start eines Prozesses in Windows NT, 2000 wird a der Programmtext aus der exe-Datei ab der dort angegebenen Adresse gespeichert.
Frame-Logik Eine Einführung Andreas Glausch.
Attribute Protocol.
Hauptseminar Modellüberprüfung Kathrin Ott
Kapitel 4 Datenstrukturen
Vs61 6 Verteilte Datenverwaltung. vs62 Ziel:Zusammengehöriger Datenbestand soll über mehrere Stationen verteilt werden, z.B. Fragmentierung: in mehrere.
6.3 Ereignisbasierte Systeme Ereignis (event) : eine Ereignis-Quelle (event source, publisher) generiert Benachrichtigung (event notification), an der.
2.4 Kommunikationsdienste des Betriebssystems
2 Kommunikationssysteme bieten Kommunikationsdienste an, die das Senden und Empfangen von Nachrichten erlauben (sending & receiving messages) bestehen.
4.2 Gruppenkommunikation (group communication) Bedeutet:Sendeoperation bezieht sich auf mehrere Adressaten - die Mitglieder einer Prozeßgruppe (process.
Vs Klassifizierung von Kommunikationsdiensten synonym:Nachrichtensystem/dienst(message service) Kommunikationssystem/dienst(communication service)
Multivariate Datenanalyse Datum: Betreuer: Dr. Bellmann Quellen: Multivariate Statistik, Hartung/Elpelt 1989 Stochastik für Ingenieure und Naturwissenschaftler,
SAP R/3 - Speichermanagement
Spezifikation der Module / Programme
Abhängigkeitsbeziehung
Vortrag im Rahmen des Seminars
Architektur von Netzwerken
7 Verteilungsabstraktion
Bs Kommunikation Kommunikation zwischen Benutzerprozessen (IPK) stellt andere Anforderungen als auftragsorientierte Kommunikation in mikrokernbasierten.
3.1.7 Korrektheit von Objekten Voraussetzung für die Diskussion der Korrektheit von nichtsequentiell benutzten abstrakten Objekten: Modellbasierte Spezifikation:
Datentyp  Zusammenfassung von Mengen von "Werten" mit auf
Übersetzung durch Mensch und Maschine Einleitung Einleitung Entwicklungsgechichte der MÜ Entwicklungsgechichte der MÜ Entwicklungsphasen der MÜ Entwicklungsphasen.
Seminar: Architekturbeschreibungssprachen
Interaktionen Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld Wie arbeiten VS mit ihrem Material (im einfachsten Fall)?
Datenbankentwurfsprozess
1 Klassen (1) Eine Klasse beschreibt eine Menge von Objekten mit gemeinsamer Struktur gemeinsamem Verhalten gemeinsamen Beziehungen gemeinsamer Semantik.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Vorlesung Gestaltung von soziotechnischen Informationssystemen - RequirementsEngineering und Contextual Design- Thomas Herrmann, Lehrstuhl Informations-
Kurzüberblick über ereignisgesteuerte Prozessketten (EPK)
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Mark Doll – 1/21V3D2 Workshop 2003, Frankfurt/Main 19./ http:// Ansätze für eine Web-basierte Initiierung qualitätsbasierter Kommunikationsdienste.
Sequenzdiagramme (1) Festlegen des Inter-Objekt-Verhaltens (Interaktionsstruktur, Verantwortlichkeiten) Sequenzdiagramm ist temporal orientiert zeigt.
Dateisysteme Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2 Dateisysteme Was ist eine Datei?
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Internet-Protokolle und Sicherheitsaspekte
Kapitel 16 Ökonometrische Modelle
Komponenten eines Informationssystems
Zustandsübergangsdiagramme (1)
Interprozess- kommunikation (IPC)
Der Zentralwert.
Netzwerke.
Client-Server-Modell
Mehrbenutzerzugriff auf GIS-Daten
3.4 Konstanz der Lichtgeschwindigkeit
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
2. Kommunikation und Synchronisation von Prozessen 2
->Prinzip ->Systeme ->Peer – to – Peer
7.2.4 Klassifikation mobilen Codes Nicht vergessen:  Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, daß der Code entweder am.
6.1.2 Sequentielle Konsistenz
Lösungen 1. Zu einem Dienst gehören immer: Diensterbringer (Server), Dienstbenutzer (Client) und Protokoll.
4.4 Sperrsynchronisation
Serialisierbarkeitsprinzip Isolationsprinzip scheint zunächst streng serielle Abwicklung der Transaktionen zu fordern: r 1 (x) r 1 (y)... w 1 (z) c 1 r.
Vs Gruppenkommunikation (group communication) Bedeutet:Sendeoperation bezieht sich auf mehrere Adressaten - die Mitglieder einer Prozessgruppe.
Vs51 5 Verteilte Datenverwaltung. vs52 Situation:Zusammengehöriger Datenbestand ist über mehrere Stationen verteilt, z.B. Fragmentierung: in mehrere Fragmente.
5.1.2 Sequentielle Konsistenz
Max Haustein, Karsten Otto
Vs41 4 Verteilte Algorithmen. vs42 Prozesse als Systemkomponenten:  Spezifikation eines Prozesses ? (Vgl. Spezifikation eines ADT) syntaktisch:z.B. Ports.
Lisa Huber DHBW Mannheim
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Einflußreiche Systeme Dr. Wolfgang Wörndl.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Web Services Dr. Wolfgang Wörndl
Verteilte Systeme Sommersemester 2007 Karsten Otto.
Vs Klassifizierung von Kommunikationsdiensten synonym:Nachrichtensystem/dienst(message service) Kommunikationssystem/dienst(communication service)
2 Kommunikationssysteme
Netzwerke - Protokolle
6.1.2 Sequentielle Konsistenz
 Präsentation transkript:

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

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

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

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 Daten Sender Empfänger Quittungen oder Einigung auf „Anführer“: Auswahlprotokoll

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

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?“ )

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

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 1) a und b gehören zum selben Prozeß und werden in dieser Reihenfolge ausgeführt oder 2) a ist das Senden einer Nachricht, b ist das Empfangen dieser Nachricht oder 3) es gibt ein Ereignis c mit a  c und c  b (Transitivität von )

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

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

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

in Anlehnung an die Kausalitätsbeziehung 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.

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.

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 nicht C(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.

2. Versuch: Vektorzeit (Fidge, Mattern 1988) T = n-Tupel natürlicher Zahlen (bei n Prozessen 1,..,n) t  s : ti  si für alle i=1,..,n Halbordnung! 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 cp um 1 erhöht.  Nach recv mit Zeitstempel t werden für alle i=1,..,n die ci auf max(ci,ti) gesetzt.

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