Grundlagen verteilter Systeme - Universität Augsburg

informatik.uni.augsburg.de

Grundlagen verteilter Systeme - Universität Augsburg

Universität Augsburg

Insitut für Informatik

Prof. Dr. Bernhard Bauer

Wolf Fischer

Christian Saad

Wintersemester 08/09

Übungsblatt 7

17.12.08

Grundlagen verteilter Systeme

Lösungsvorschlag

Aufgabe 1:

Geben Sie für folgendes Beispiel die Durchführung des ringbasierten Wahl-

Algorithmus an und begründen Sie, dass E1 und E2 erfüllt werden. Hinweis:

Die Zahlen in den Kreisen in der Angabe entsprechen den IDs. (2,5 Punkte)

Abbildung 1: Initialzustand

Lösungsvorschlag:

Jeder Prozess des Rings hat eine eindeutige ID. Prozess 21 sendet eine Election

Nachricht mit seiner eigenen ID an seinen Nachbarn (In diesem Fall im

Uhrzeigersinn, sodass der erste Empfänger einer Nachricht Prozess 56 ist). Die

Nachrichten verlaufen weiter im Uhrzeigersinn. Sofern die eintreffende Nachricht

eine höhere ID hat, als der empfangende Prozess, wird die Nachricht weitergeleitet.

Andernfalls - für den Fall dass der empfangende Prozess eine höhere ID hat,

als in der eintreffenden Nachricht enthalten - schickt der die Nachricht mit seiner

eigenen Prozessnummer weiter. Die Nachricht wandert also bis zur im Beispiel

höchsten ID 73 und muss danach noch einmal den gesamten Ring passieren, bis

es wieder bei Prozess 73 landet. Der Gewinner-Prozess (73) verschickt danach

die Elected-Nachricht im Ring, wie in Abbildung 3 dargestellt. Dies stellt E1

sicher.

Da bei diesen Algorithmus davon ausgegangen wird, dass ein zuverlässiges

System zugrunde liegt, wird auch die Eigenschaft E2 sichergestellt. Es wird also

vorausgesetzt, dass die Nachrichten immer ankommen, und er Kreis somit nie

unterbrochen wird.

Aufgabe 2:

a) Wenden Sie den Bully-Algorithmus auf folgendes Beispiel an und überlegen

Sie, ob E1 und E2 auch hier erfüllt werden. Stellen Sie den Verlauf grafisch

dar. (2,5 Punkte)

1


Abbildung 2: Ringbasierte Wahl

Abbildung 3: Versand der Elected-Nachricht nach der Wahl

2


• Nach dem Initialzustand aus Abbildung 5 fällt Prozess 104 aus.

• Prozess 21 bemerkt den Ausfall und leitet eine Wahl ein.

• Während Prozess 73 seine Koordinator-Nachrichten versendet, fällt zusätzlich

noch Prozess 56 aus.

• Im Anschluss daran ist davon auszugehen, dass Prozess 73 die Wahl gewonnen

hat und alle laufenden Prozesse darüber informiert sind. Prozess

104 läuft jetzt wieder.

Abbildung 4: Initialzustand des Bully Algorithmus

b) Wie könnte man den Algorithmus anpassen, damit er mit größeren Latenzen

und langsameren Prozessen zurecht kommt. (Tipp: Wodurch wird eine Wahl

veranlasst?) (1 Punkt)

Lösungsvorschlag:

Abbildung 5: Ablauf des Bully Algorithmus

• E1 ist erfüllt, solange kein ausgefallener Prozess, aufgrund dessen die Wahl

veranlasst wurde, durch einen Prozess mit der gleichen ID ausgetauscht

wird und der Timeout Mechanismus korrekt funktioniert. Da somit irgendwann

ein Koordinator gefunden wird und die Kommunikation als zuverlässig

gilt, setzt auch jeder Prozess irgendwann seine elected-Variable

auf den Koordinator, wenn die coordinator-Nachricht empfangen wurde.

Damit wird auch E2 erfüllt.

3


• Durch den Timeout wird festgestellt, ob ein Prozess ausgefallen ist oder

nicht. Um nicht ständig neue Wahlen zu veranlassen, sollte dieser Wert

dynamisch über die Zeit angepasst werden. Wenn eine Antwort nach Ablauf

des Timeout doch ankommt, so könnte der neue Timeout-Wert auf

die Mitte zwischen beiden gesetzt werden. Somit reagiert der Algorithmus

auf wechselnde Latenzen und Prozesse.

Aufgabe 3:

a) Mit welchem Protokoll werden Multicast-Gruppen verwaltet? (1 Punkt)

b) Nennen und beschreiben Sie die Eigenschaften, die von verlässlichem Multicast

(R-multicast) gefordert werden. (1,5 Punkte)

c) Aus welchem Grund benötigt man R-multicast? Begründen Sie, weshalb

TCP für Multicasts nicht jene Merkmale bzgl. Transport-Sicherheit bereitstellen

kann. (1,5 Punkte)

d) Warum werden die in Teilaufgabe 1 genannten Aspekte bzgl. der Sicherheit

und Verlässlichkeit von R-Multicast nicht mittels Bestätigung durch

den Empfänger erzielt? Begründen Sie Ihre Antwort kurz und beschreiben

Sie den Mechanismus, der stattdessen verwendet wird. (2 Punkte)

Lösungsvorschlag:

a) Multicast-Gruppen können jederzeit dynamisch erstellt werden. Teilnehmer

in Multicast-Gruppen können diese auch zu jeder Zeit wieder verlassen. Das

Protokoll, mit dem diese Gruppen verwaltet werden, ist das Internet Group

Management Protocol (IGMP).

b) Die Forderungen umfassen

• Integrität: Die empfangene Nachricht ist identisch zur Verschickten und

erreicht exakt ein mal das Ziel.

• Validität: Versendete Nachrichten kommen beim Empfänger an

• Übereinstimmung: Sofern eine Nachricht versendet wurde, wird die Nachricht

auch (komplett) an die Zielgruppe zugestellt. ( ” Alles oder nichts“)

c) TCP ist ein Unicast-Protokoll und daher nicht für die Verwendung bei Broadcasts

oder Multicasts geeignet. Dennoch kann man oft nicht auf eine gewisse

Garantie für die erfolgreiche Übertragung von Daten verzichten - genau diese

Eigenschaft bietet TCP ja für Unicasts. Möchte man beispielsweise Dateien

per Multicast auf viele Rechner verteilen, muss entweder das Programm

selbst sicherstellen, dass die Daten vollständig und korrekt sind, oder aber

R-Multicast verwendet werden.

Zur Initiierung von Verbindungen wird bei TCP ein Drei-Wege-Handshake

durchgeführt, der in Multicast-Umgebungen nicht sinnvoll wäre, da der sendende

Computer Antworten aller Teilnehmer bekäme, was zu Ressourcenund

Stabilitätsproblemen führen könnte.

4


d) Wenn alle Empfänger einer Multicast-Gruppe jede der Nachricht bestätigen

würden ( ” Acknowledge“), und die Gruppe entsprechend groß wäre, dann

könnte der sendende Prozess oder Computer unter der Last dieser Bestätigungspakete

lahmgelegt werden.

Es wird daher das Verfahren der negativen Bestätigung eingesetzt, bei dem

Sender ihren Nachrichten beispielsweise Sequenznummern hinzufügen. Dadurch

können Prozesse feststellen, dass sie Nachrichten verpasst haben und

diese erneut anfordern. Diese Form der zusätzlichen Übertragung von Inhalten

in anderen Nachrichten wird auch als ” piggy-backing“ bezeichnet.

Aufgabe 4:

Beschreiben Sie warum Deadlocks im Maekawa Algorithmus auftreten können.

Stellen Sie den Ablauf mit drei Prozessen grafisch dar. (3 Punkte)

Lösungsvorschlag:

Wenn aus jedem Voting Set jeweils ein Prozess gleichzeitig Anfragen verschickt,

kann es dazu kommen, dass kein Voting Set einheitlich abstimmt und

somit ein Deadlock auftritt. Ein Beispiel könnte aus drei Prozesse mit drei Voting

Sets aufgebaut sein:

In Voting Set 1 (VS1) befinden sich die Prozesse 1 und 2, in VS2 befinden

sich die Prozesse 2 und 3 und zuletzt befinden sich die Prozesse 3 und 1 in VS3.

Stimmt jeder Prozess für sich selbst, so blockieren sich die Prozesse in ihren

Voting Sets gegenseitig, wodurch keiner in den kritischen Bereich gelangt und

somit ein Deadlock entsteht. 1

Abbildung 6: Deadlock beim Maekawa-Algorithmus

1 Weitere Informationen erhalten Sie dazu unter: http://portal.acm.org/citation.cfm?id=214445&dl=ACMI

5

Weitere Magazine dieses Users
Ähnliche Magazine