Verteilte Algorithmen sind Verfahren, die dadurch charakterisiert sind, daB mehrere autonome Prozesse gleichzeitig Teile eines gemeinsamen Problems in kooperativer Weise bearbeiten und der dabei erforderliche Informationsaustausch ausschlieBlich liber Nachrichten erfolgt. Derartige Algorithmen kommen im Rahmen verteilter Systeme zurn Einsatz, bei denen kein gemeinsamer Speicher existiert und die Ubertragungs- und Bearbeitungsdauer von Nachrichten i. a. nieht vernachlassigt werden kann. DaB dabei kein ProzeB eine aktuelle konsistente Sieht des globalen Zustands besitzt, fUhrt zu sammen mit anderen typischen Eigenschaften der Verfahren, wie Nebenliiufigkeit und Nichtdeterminismus, zu interessanten Problemen. In der vorliegenden Arbeit werden einige dieser Probleme analysiert, diskutiert und zueinander in Beziehung gesetzt. Flir eine Reihe von Grundproblemen, zu denen das Election-Problem, das SchnappschufJproblem und das Terminierungsproblem geh6ren, werden verschiedene LOsungsalgorithmen angegeben und miteinander verglichen. Die Bewertung der Algorithmen umfaBt analytische und empirische Untersuchungen sowie eine Diskussion der qualitativen Eigenschaften verschiedener Varianten. Urn ein tieferes Verstandnis des "Prinzips der Verteiltheit" zu erreichen, werden grundsatzliche Aspekte hervorgehoben, wie etwa die Bedeutung des Zeitbegriffs in verteilten Systemen. Dariiber hinaus werden einige typische Methoden und Techniken vorgestellt, die auch fUr die systemnahe oder anwendungsbezogene Programmierung verteilter oder hochgradig paralleler Systeme praktisch relevant sind. Durch die Beschreibung des Urnfeldes und der wichtigsten Konzepte der verteilten Programmierung, durch weiterflihrende Literaturangaben und einige spielerische und gleichnishafte Beispiele werden die Problemstellungen motiviert und die Ergebnisse der Arbeit in den gr6Beren Rahmen des Distributed Computing eingeordnet.
Inhaltsverzeichnis
1 Einleitung. - 1. 1 Verteilte Systeme. - 1. 2 Prozesse und Ereignisse. - 1. 3 Synchronisation und Kommunikation. - 1. 4 Programmiersprachen für verteilte Systeme. - 1. 5 Verteilte Algorithmen. - 1. 6 Ausblick auf die weiteren Kapitel. - 2 Untersuchung von Election-Algorithmen. - 2. 1Das Election-Problem. - 2. 2 Ringbasierte Election-Verfahren. - 2. 3 Election-Algorithmen für andere Topologien. - 3 Das Schnappschußproblem. - 3. 1 Konsistente globale Zustände. - 3. 2 Das Schnappschußprinzip. - 3. 3 Zwei symmetrische Schnappschußalgorithmen. - 3. 4 Basisalgorithmen als Bausteine. - 3. 5 Konsistenz durch Einfrieren . - 4 Verteilte Terminierung. - 4. 1 Einleitung. - 4. 2 Ein Beispiel verteiltes Lösen von krypto-arithmetischen Rätseln. - 4. 3 Der Terminierungsbegriff. - 4. 4 Eine Analyse des Terminierungsproblems. - 4. 5 Charakteristika von Terminierungsalgorithmen. - 4. 6 Verfahren mit zwei Wellen. - 4. 7 Zeitzonenverfahren. - 4. 8 Die Vektormethode. - 4. 9 Die Kreditmethode. - 4. 10 Empirische Effizienzmessungen. - 5 Virtuelle Zeit in verteilten Systemen. - 5. 1 Zeitdiagramme und Kausalitätsstruktur. - 5. 2 Realzeit. - 5. 3 Virtuelle Zeit. - 5. 4 Vektorzeit. - 5. 5 Stichzeitpunkt und Schnappschuß. - 6 Schlußbemerkungen. - Anhang Meßergebnisse allgemeiner Election-Algorithmen. - Literatur.