23.11.2013 Aufrufe

2. Zeit in Verteilten Systemen 2.1 Asynchrone Verteilte Systeme

2. Zeit in Verteilten Systemen 2.1 Asynchrone Verteilte Systeme

2. Zeit in Verteilten Systemen 2.1 Asynchrone Verteilte Systeme

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

• Überblick<br />

<strong>2.</strong> <strong>Zeit</strong> <strong>in</strong> <strong><strong>Verteilte</strong>n</strong> <strong><strong>Systeme</strong>n</strong><br />

<strong>2.</strong>1 <strong>Asynchrone</strong> <strong>Verteilte</strong> <strong>Systeme</strong><br />

<strong>2.</strong>2 Synchronisierung physischer Uhren<br />

<strong>2.</strong>3 Relative Uhrsynchronisation und NTP<br />

<strong>2.</strong>4 Logische <strong>Zeit</strong><br />

<strong>2.</strong>5 Vektorzeit<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-1<br />

<strong>2.</strong>1 <strong>Asynchrone</strong> <strong>Verteilte</strong><br />

<strong>Systeme</strong><br />

• Bei e<strong>in</strong>em asynchronen VS existieren ke<strong>in</strong>e Beschränkungen<br />

bezüglich<br />

Prozessausführungsgeschw<strong>in</strong>digkeiten<br />

Nachrichtenübertragungsverzögerung<br />

Uhrabweichraten<br />

⇒ Ke<strong>in</strong>e Annahme über <strong>Zeit</strong><strong>in</strong>tervalle erlaubt<br />

• Folgerungen<br />

Zur Herstellung e<strong>in</strong>er Abfolge von Ereignissen s<strong>in</strong>d zusätzliche Konzepte<br />

notwendig ⇒ logische <strong>Zeit</strong><br />

Exakte Abstimmung zwischen Ereignissen <strong>in</strong> diesem Modell nicht<br />

möglich<br />

• <strong>Verteilte</strong> <strong>Systeme</strong> s<strong>in</strong>d häufig asynchron<br />

Prozesse müssen Prozessoren und Netzwerke geme<strong>in</strong>sam nutzen<br />

Angabe von Grenzen ist aufgrund der unvorhersehbaren Auslastung der<br />

Prozessoren und Netzwerken nicht möglich<br />

⇒ Modellierung von realen Situationen<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-2


Zusammenfassung:<br />

<strong>Zeit</strong> <strong>in</strong> <strong><strong>Verteilte</strong>n</strong> <strong><strong>Systeme</strong>n</strong><br />

• <strong>Zeit</strong>stempel werden <strong>in</strong> Rechnersystemen (allgeme<strong>in</strong>) benötigt, um<br />

Leistungsmessungen durchzuführen<br />

Aktualität von Daten zu bewerten<br />

Totalordnung von Objekten zu bewirken<br />

• Probleme bei <strong><strong>Verteilte</strong>n</strong> <strong><strong>Systeme</strong>n</strong><br />

Uhren s<strong>in</strong>d mit Ungenauigkeiten behaftet ⇒ e<strong>in</strong>e e<strong>in</strong>deutige, globale<br />

<strong>Zeit</strong> ist nicht verfügbar<br />

Selbst bei e<strong>in</strong>em zentralen <strong>Zeit</strong>geber entstehen Ungenauigkeiten durch<br />

unterschiedliche Nachrichtenlaufzeiten<br />

• Beispiel: <strong>Verteilte</strong>s UNIX-make<br />

Rechner mit<br />

Compiler<br />

Rechner mit<br />

Editor<br />

100 101 102 103<br />

102 103<br />

104 105 106 107 108<br />

Datei output.o erzeugt<br />

Datei output.c erzeugt<br />

104 105 106 107 108 109 110<br />

Lokale<br />

<strong>Zeit</strong><br />

Lokale<br />

<strong>Zeit</strong><br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-3<br />

Beispiel:<br />

Abfolge von Ereignissen<br />

• Austausch von Nachrichten zwischen Benutzern X, Y und Z<br />

Benutzer X sendet Nachricht mit dem Betreff Meet<strong>in</strong>g<br />

Benutzer Y und Z antworten durch Senden e<strong>in</strong>er Nachricht mit Betreff<br />

Re: Meet<strong>in</strong>g, wobei Z sich sowohl auf die Nachricht von X als auch auf<br />

die Nachricht von Y bezieht<br />

Aufgrund der vone<strong>in</strong>ander unabhängigen Verzögerungen bei der<br />

Auslieferung der Nachrichten kann e<strong>in</strong> vierter Benutzer A folgende<br />

Reihenfolge bekommen<br />

E<strong>in</strong>trag<br />

23<br />

24<br />

25<br />

Poste<strong>in</strong>gang<br />

Von<br />

Z<br />

X<br />

Y<br />

Betreff<br />

Re: Meet<strong>in</strong>g<br />

Meet<strong>in</strong>g<br />

Re: Meet<strong>in</strong>g<br />

Problem: Benutzer A muss anhand der Texte die richtige Reihenfolge<br />

der Nachrichten ermitteln, um den Inhalt entsprechend zu verstehen<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-4


Beispiel:<br />

Abfolge von Ereignissen (2)<br />

• Lösung 1: Synchronisation der lokalen Uhren der Rechner von X, Y, Z<br />

⇒ Jede Nachricht enthält e<strong>in</strong>en gültigen <strong>Zeit</strong>stempel (Sortierung)<br />

Problem: Uhrensynchronisation nur beschränkt möglich<br />

X<br />

Y<br />

Z<br />

A<br />

send<br />

receive receive<br />

1<br />

4<br />

m<br />

send<br />

2<br />

2<br />

3<br />

receive<br />

Physical<br />

receive<br />

time<br />

send<br />

receive receive<br />

m m m 3 1 2<br />

receive receive receive<br />

t 1<br />

t 2<br />

t 3<br />

• Lösung 2: Konzept der logischen <strong>Zeit</strong> zur Herstellung e<strong>in</strong>er<br />

Reihenfolge zwischen den Ereignissen<br />

Beispiel für den Austausch zwischen X und Y<br />

X sendet m1 bevor Y m1 empfängt, Y sendet m2 bevor X m2<br />

empfängt und Y empfängt m1, bevor Y m2 sendet<br />

m 1<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-6<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-5<br />

<strong>2.</strong>2 Synchronisierung<br />

physischer Uhren<br />

• Jeder Rechner hat e<strong>in</strong>e physische Uhr<br />

Betriebssystem liest aktuellen Wert Hi(t) der e<strong>in</strong>gebauten Hardwareuhr<br />

Skaliert den Wert und addiert e<strong>in</strong>en Offset: Ci(t)=αHi(t)+β<br />

Ergebnis: annähernd reale, physische <strong>Zeit</strong> t für den Prozess pi<br />

Beispielsweise könnte Ci(t) e<strong>in</strong> 64-Bit-Wert für Anzahl von<br />

Nanosekunden se<strong>in</strong>, die zum <strong>Zeit</strong>punkt t seit e<strong>in</strong>em Referenzzeitpunkt<br />

vergangen s<strong>in</strong>d<br />

Im Allgeme<strong>in</strong>en ist die Uhr nicht ganz genau, so dass sich Ci(t) von t<br />

unterscheidet<br />

• Ermittelte <strong>Zeit</strong> dient als <strong>Zeit</strong>stempel<br />

Unterscheidung zwischen Ereignissen auf dem gleichen Rechner – die<br />

<strong>Zeit</strong>stempel basieren auf der gleichen physischen Uhr – ist problemlos<br />

möglich<br />

Unterschiedliche Ereignisse haben gleichen Stempel nur dann, wenn die<br />

Uhrauflösung größer ist als die <strong>Zeit</strong>spanne zwischen den Ereignissen


Uhrsynchronisierungsfehler<br />

und Uhrabweichung<br />

• Synchronisierungsfehler = Differenz beim Ablesen von zwei<br />

beliebigen Uhren<br />

• Uhrabweichung = Divergenz aufgrund unterschiedlicher<br />

Geschw<strong>in</strong>digkeit bei <strong>Zeit</strong>zählung<br />

• Abweichgeschw<strong>in</strong>digkeit = Offset zwischen aktueller Uhr und e<strong>in</strong>er<br />

perfekten Referenzuhr pro gemessener <strong>Zeit</strong>e<strong>in</strong>heit<br />

Normale Uhren: 10 -6 Sekunden/Sekunde, d.h. 1 Sek pro 11,6 Tage<br />

Präzisionsuhren: 10 -7 bis 10 -8 Sekunden/Sekunde<br />

• Universal Time Coord<strong>in</strong>ated (UTC)<br />

Internationaler Standard für die <strong>Zeit</strong>nahme, basiert auf Atomzeit<br />

UTC-Signale s<strong>in</strong>d synchronisiert<br />

Übertragung durch Funkstationen auf dem Land und von Satelliten<br />

Frei erhältliche Empfänger mit Genauigkeit der empfangenen Signale<br />

im Bereich 0,1-10 Millisekunden vorhanden<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-7<br />

Genauigkeit von<br />

UTC-Ausstrahlung<br />

• Rundfunk<br />

ca. ± 1msec. Bei atmosphärischen Störungen wird die Übertragung<br />

der Radiowellen bee<strong>in</strong>trächtigt ⇒ Genauigkeit von ± 10 msec<br />

• Satelliten<br />

GEOS (Geostationary Environmental Operational Satellite): ± 0.1 msec<br />

GPS (Global Position<strong>in</strong>g System): ± 1 msec<br />

• Verbesserung der Genauigkeit<br />

Verwendung mehrerer UTC-Quellen ⇒ Mittelung zur Verbesserung<br />

der Genauigkeit<br />

Genauigkeitsfenster der<br />

Quellen<br />

UTC-Quelle 1<br />

UTC-Quelle 2<br />

UTC-Quelle 3<br />

UTC-Quelle 4<br />

Schnitt<br />

UTC<br />

Quelle 4 abgelehnt<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-8


Absolute<br />

Nachrichtensynchronisation<br />

• <strong>Zeit</strong>server mit UTC-Empfänger (Cristian‘s Algorithm)<br />

• Synchronisationsmöglichkeiten<br />

1. Setze lokale Uhr auf t:=t UTC<br />

Problem: Nachrichtenlaufzeit nicht berücksichtigt<br />

<strong>2.</strong> Schätze Nachrichtenlaufzeit mit (t1-t0)/2 ⇒ t := t UTC +(t1-t0)/2<br />

Problem: <strong>Zeit</strong> für Anfrageverarbeitung nicht berücksichtigt<br />

3. Berücksichtigung – falls bekannt – von t a ⇒ t := t UTC +(t1-t0-t a )/2<br />

Problem: Nachrichtenlaufzeit abhängig von aktueller Netzlast<br />

4. Mehrere Messungen von (t1-t0): Messungen über e<strong>in</strong>em Schwellwert<br />

ablehnen (Ausreißerelim<strong>in</strong>ation), Rest zur Mittelung verwenden<br />

Zu synchronisierender Rechner<br />

t0<br />

Anfrage<br />

<strong>Zeit</strong>server<br />

<strong>Zeit</strong><br />

t a<br />

t1<br />

t UTC<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-9<br />

Realisierungsprobleme bei<br />

absoluter Synchronisation<br />

• Spezifische Probleme beim Algorithmus von Cristian<br />

E<strong>in</strong>zelner <strong>Zeit</strong>server ⇒ kritische Komponente bzgl. Ausfallsicherheit<br />

Fehlerhafter/manipulierter <strong>Zeit</strong>server bedroht das gesamte <strong>Verteilte</strong><br />

System durch Übermittlung von falschen <strong>Zeit</strong>werten<br />

• E<strong>in</strong>e Rücksetzung der lokalen Uhr ist <strong>in</strong> der Regel nicht tolerierbar<br />

Lokal gültige <strong>Zeit</strong>stempel verlieren ihre Bedeutung<br />

Feststellung e<strong>in</strong>er lokalen Ordnung nicht mehr möglich<br />

• Korrektur der Uhren lediglich ausschließlich durch Inkrementierung<br />

der aktuellen <strong>Zeit</strong> oder durch Verzögerung der Uhr<br />

Falls Uhr nachgeht ⇒ Übernahme der neuen <strong>Zeit</strong><br />

Falls Uhr vorgeht ⇒ Verzögerung der Uhr<br />

• Beispiel für Uhrverzögerung<br />

Hardware-Timer erzeugt 100 Unterbrechungen/Sekunde<br />

Lokale <strong>Zeit</strong> wird nicht um 10 msec, sondern um 9 msec erhöht, bis die<br />

Anpassung vollzogen ist ⇒ sanfte Anpassung nachgehender Uhren<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-10


<strong>2.</strong>3 Relative<br />

Uhrsynchronisation<br />

• Gew<strong>in</strong>nung e<strong>in</strong>er e<strong>in</strong>heitlichen <strong>Zeit</strong> unter Verzicht auf UTC-<br />

Empfänger<br />

• Berkeley-Algorithmus<br />

Synchronisation von mehreren Rechnern im Netzwerk<br />

Ausgewählter Koord<strong>in</strong>ationsrechner (Master) fragt <strong>in</strong> regelmäßigen<br />

Abständen die anderen Rechner (Slaves) nach deren aktuellen Uhrzeit<br />

Aus den Antworten werden die lokalen <strong>Zeit</strong>en durch Schätzung der<br />

Nachrichtenlaufzeiten ermittelt<br />

Ignorieren von Antworten, die zu lange auf sich warten lassen<br />

Berechnung e<strong>in</strong>es fehlertoleranten Mittelwerts ⇒ arithmetisches Mittel<br />

der Uhren, deren Abweichung <strong>in</strong>nerhalb a-priori vorgegebener<br />

Grenzen liegt<br />

Rückmeldung der Abweichung (positiv und negativ) an die e<strong>in</strong>zelnen<br />

Rechner im Netz<br />

Ausfallsicherheit: Falls der Master ausfällt, kann er durch andere<br />

Rechner austauscht werden<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-11<br />

• Zielsetzung<br />

NTP (Network Time Protocol)<br />

Absoluter (UTC-) <strong>Zeit</strong>dienst <strong>in</strong> großen Netzen (Internet)<br />

Hohe Zuverlässigkeit durch Fehlertoleranz<br />

Schutz vor Verfälschungen durch Authentisierungstechniken<br />

• Eigenschaften<br />

Präzise Synchronisation e<strong>in</strong>es Clients mit UTC trotz der großen und<br />

variablen Nachrichtenverzögerungen bei der Kommunikation im<br />

Internet<br />

Redundante Server und Pfade ermöglichen e<strong>in</strong>en zuverlässigen Dienst,<br />

der längere Verb<strong>in</strong>dungsunterbrechungen überstehen kann<br />

Rekonfiguration der Server, wenn e<strong>in</strong> Server nicht erreichbar ist<br />

Auslegung auf großer Anzahl von Clients und Servern, um häufige<br />

Synchronisationsvorgänge und somit ausreichende Anpassung der<br />

Abweichgeschw<strong>in</strong>digkeit zu erreichen<br />

Authentifizierungsschutz vor Manipulation<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-12


Architektur von NTP<br />

• <strong>Zeit</strong>server im hierarchischen baumartigen Subnetz (Synchronisation<br />

subnet)<br />

• Primäre Server (Primary server) <strong>in</strong> der Wurzelschicht besitzen UTC-<br />

Empfänger<br />

• Sekundäre Server (Secondary Server) <strong>in</strong> Schicht 2 werden direkt<br />

vom primären Server synchronisiert<br />

• Blätter = allgeme<strong>in</strong>e Netzwerkteilnehmer,<br />

z.B. Arbeitsplatzrechner<br />

1<br />

• Genauigkeit nimmt zu den Blättern ab<br />

• Rekonfiguration bei Ausfall<br />

bzw. Unerreichbarkeit<br />

2<br />

2<br />

• NTP berücksichtigt Gesamtverzögerungen,<br />

<strong>in</strong>dem es die<br />

Qualität der <strong>Zeit</strong>nahmendaten<br />

auf e<strong>in</strong>em bestimmten Server<br />

bewertet<br />

3<br />

3 3<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-13<br />

NTP Synchronisation<br />

• Ausfallsicherheit<br />

Fällt e<strong>in</strong> primärer Server, so wird dieser <strong>in</strong> Ebene 2 zurückgestuft<br />

Knoten abhängig vom ausgefallenen Knoten beziehen die Daten von<br />

redundanten primären Servern<br />

• Synchronisationsmodi<br />

Multicast-Modus: Verwendung bei schnellen lokalen Netzen<br />

Server schickt periodisch aktuelle <strong>Zeit</strong> per Multicast an LAN-Rechner<br />

Ger<strong>in</strong>ge Genauigkeit<br />

Procedure-Call-Modus: Ähnlich zum Algorithmus von Cristian<br />

Server beantwortet <strong>Zeit</strong>anfragen mit dem aktuellen <strong>Zeit</strong>stempel<br />

Mittlere Genauigkeit<br />

Symmetrischer Modus: Synchronisation zwischen <strong>Zeit</strong>servern<br />

Wechselseitiger Austausch von <strong>Zeit</strong>stempeln<br />

Hohe Genauigkeit<br />

In allen Fällen wird UDP verwendet ⇒ Nachrichtenverluste können<br />

vorkommen<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-14


Nachrichtenaustausch zwischen<br />

gleichgestellten NTP-Servern<br />

• Nachrichten werden <strong>in</strong> Paaren ausgetauscht<br />

Jede Nachricht enthält e<strong>in</strong>e Reihe von <strong>Zeit</strong>stempeln: lokale <strong>Zeit</strong>en, als<br />

das vorgehende Nachrichtpaar gesendet/empfangen wurde (Ti-3,Ti-2)<br />

und die lokale Sendezeit (Ti-1) für die aktuelle Nachricht<br />

Empfänger notiert die aktuelle Empfangszeit (Ti)<br />

• Wichtige Kenngrößen<br />

Sei o := ta – tb <strong>Zeit</strong>differenz von B relativ zu A<br />

oi<br />

Schätzwert für o<br />

t und t‘ Jeweilige Nachrichtenlaufzeit für m bzw. m‘<br />

di = t + t‘<br />

Gesamte Nachrichtenlaufzeiten (H<strong>in</strong>- und Rückweg)<br />

Server B<br />

Ti-2<br />

Ti-1<br />

<strong>Zeit</strong><br />

m<br />

m'<br />

Server A<br />

T i- 3<br />

Ti<br />

<strong>Zeit</strong><br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-15<br />

Wichtige NTP-Kenngrößen<br />

• Gesamtlaufzeit di wird gemessen als d i =T i -T i-3 -(T i-1 -T i-2 )<br />

• Es gilt T i-2 = T i-3 + t + o und T i = T i-1 + t‘ – o<br />

• Mit a := T i-2 - T i-3 und b := T i - T i-1 ⇒ a = t+o, b = t‘-o<br />

• Durch Subtraktion ergibt sich o = (a-b)/2+(t‘-t)/2<br />

• Da t,t‘ ≥ 0 ⇒ Abschätzung –di ≤ -t ≤ t‘-t ≤ t‘ ≤ di<br />

⇒ oi-di/2 ≤ o ≤ oi+di/2<br />

• Folgerung<br />

mit oi=(a-b)/2<br />

oi ist e<strong>in</strong>e Abschätzung für die Abweichung<br />

di ist e<strong>in</strong> Qualitätsmaß für die Güte der Abschätzung<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-16


Beispiele zu wichtigen NTP-<br />

Kenngrößen<br />

Server B<br />

T i-2<br />

T i-1<br />

=6 =8<br />

<strong>Zeit</strong><br />

t=2<br />

m<br />

m'<br />

t‘=4<br />

Server A<br />

Ti- 3<br />

=2<br />

Ti<br />

=10<br />

Ergebnis: di=6, a=4, b=2 => oi=1 und -2 ≤ o ≤ 4<br />

<strong>Zeit</strong><br />

• Aufe<strong>in</strong>anderfolgende Paare werden weiterem<br />

Filterungsprozess unterzogen, um die Qualität der Schätzung zu<br />

verbessern<br />

• <strong>Zeit</strong>server synchronisieren sich mit mehreren anderen <strong>Zeit</strong>servern<br />

(typischerweise mit e<strong>in</strong>em auf der gleichen Ebene und zweien auf<br />

e<strong>in</strong>er niedrigeren Ebene)<br />

• Server können sich ihre Synchronisationspartner auswählen<br />

• Messungen im Internet: Bei 99% der Server liegt der<br />

Synchronisationsfehler unter 30 msec<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-17<br />

<strong>2.</strong>4 Logische <strong>Zeit</strong><br />

• Grundidee<br />

Rechner e<strong>in</strong>igen sich auf e<strong>in</strong>e geme<strong>in</strong>same <strong>Zeit</strong>, die nicht mit der realen<br />

<strong>Zeit</strong> übere<strong>in</strong>stimmen muss ⇒ logische Uhr<br />

Anforderung: Die <strong>Zeit</strong> auf allen Rechnern ist <strong>in</strong>tern konsistent<br />

Ergebnis<br />

Bestimmung der zeitlichen Reihenfolge von zwei relativen<br />

Ereignissen zue<strong>in</strong>ander ⇒ relative Lage auf der <strong>Zeit</strong>achse<br />

Skalierung der <strong>Zeit</strong>achse ist beliebig (logische <strong>Zeit</strong>)<br />

• Annahmen<br />

E<strong>in</strong> VS besteht aus e<strong>in</strong>er Menge von Knoten (Monoprozessoren)<br />

Aktivität jedes Knotens besteht aus e<strong>in</strong>er total geordneten Folge von<br />

Ereignissen e p<br />

Gesamtaktivität e im VS besteht aus der Vere<strong>in</strong>igung<br />

e =<br />

Ue p<br />

p<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-18


Kausale Ordnung der<br />

Ereignisse<br />

• Unterscheidung der Ereignistypen<br />

Lokale Ereignisse<br />

Sendeereignisse: Versenden e<strong>in</strong>er Nachricht<br />

Empfangsereignisse: Empfangen e<strong>in</strong>er Nachricht<br />

• Relation liegt_vor (happens_bevor)<br />

S<strong>in</strong>d a und b Ereignisse des gleichen Prozesses, dann bedeutet<br />

a→b : Ereignis a tritt vor Ereignis b auf, d.h. a liegt_vor b<br />

Ist a e<strong>in</strong> Ereignis des Sendens e<strong>in</strong>er Nachricht und b das Ereignis des<br />

Empfangens <strong>in</strong> e<strong>in</strong>em anderen Prozess, so gilt auch a → b<br />

a→b ist e<strong>in</strong>e transitive Relation (a → b und b → c ⇒ a → c)<br />

• Zusammenfassung<br />

Ereignisse, dessen zeitlicher Zusammenhang gemäß der Relation<br />

liegt_vor festgestellt wird, treten entweder h<strong>in</strong>tere<strong>in</strong>ander im gleichen<br />

Prozess auf oder es wird e<strong>in</strong>e Nachricht zwischen den beiden gesendet<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-19<br />

Kausale Ordnung der<br />

Ereignisse (2)<br />

• Falls zwei Ereignisse a und b <strong>in</strong> verschiedenen Prozessen liegen<br />

und ke<strong>in</strong> Nachrichtenaustausch vorliegt (auch <strong>in</strong>direkt über e<strong>in</strong>en<br />

dritten Prozess), dann stehen a und b nicht <strong>in</strong> liegt_vor Relation<br />

⇒ Nebenläufige (konkurrente) Prozesse a || b<br />

⇒ Ke<strong>in</strong>e Aussage über Auftreten der Ereignisse möglich<br />

• Beispiel<br />

Liegt_vor gilt für a→b, b→c, c→d, d→f, …, a→f<br />

Nebenläufige Prozesse: a || e, b || e, c || e, …<br />

p 1<br />

a b<br />

p 2<br />

e<br />

m 1<br />

Physische<br />

<strong>Zeit</strong><br />

m 2<br />

c<br />

d<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-20<br />

f


<strong>Zeit</strong>stempel<br />

• Logische Uhr des Prozesses Pi = Monoton steigender SW-Zähler Li<br />

• Umwandlung des Zählerstands <strong>in</strong> Pseudozeit (Lamport-<strong>Zeit</strong>)<br />

Jedem Ereignis wird e<strong>in</strong> <strong>Zeit</strong>wert L(a) assoziiert ⇒ L(a) ist der<br />

<strong>Zeit</strong>stempel des Ereignisses a<br />

Falls a → b ⇒ L(a) < L(b)<br />

E<strong>in</strong> <strong>Zeit</strong>stempel kann nur anwachsen, d.h. <strong>Zeit</strong>korrekturen ausschließlich<br />

durch Addition von positiven Werten möglich<br />

• Unterscheidung<br />

Li(a) ⇒ <strong>Zeit</strong>stempel von a im Prozess Pi<br />

L(a) ⇒ <strong>Zeit</strong>stempel von a im beliebigen Prozess<br />

• Vorgehensweise zur Modellierung von liegt_vor<br />

1. Inkrementierung von Li, bevor a im Prozess Pi auftritt ⇒ Li=Li+1<br />

<strong>2.</strong> Senden e<strong>in</strong>er Nachricht m von P1 an P2<br />

P1 sendet den Wert t=L1 mit der Nachricht m mit (send(m,t))<br />

P2 empfängt m und t (receive(m,t)) und setzt L2=max(L2,t).<br />

Danach L2=L2+1 bevor receive(m) durchgeführt wird<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-21<br />

<strong>Zeit</strong>stempel (2)<br />

p 1<br />

1<br />

a<br />

2<br />

b<br />

p 2<br />

m 1<br />

3 4<br />

c<br />

d<br />

m 2<br />

Physische<br />

<strong>Zeit</strong><br />

1<br />

5<br />

p 3<br />

e<br />

f<br />

• Interpretation<br />

Jeder Ort unterhält e<strong>in</strong>en Zähler als logische Uhr, der mit jedem<br />

Ereignis <strong>in</strong>krementiert wird<br />

Bei Kommunikation muss e<strong>in</strong> Uhrabgleich stattf<strong>in</strong>den, damit die<br />

logische <strong>Zeit</strong> mit der Kausalität konsistent ist<br />

Maximumsbildung der lokalen <strong>Zeit</strong> mit empfangener Senderzeit<br />

• Wichtig<br />

Ist L(a) L(e) aber b || e<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-22


<strong>Zeit</strong>stempel (3)<br />

• Mechanismus zur Berechnung der Lamportzeit kann auch für<br />

Uhrenabgleich verwendet werden<br />

• Beispiel<br />

Ohne Korrektur der logischen Uhren<br />

P1<br />

0<br />

6<br />

12<br />

18<br />

24<br />

30<br />

36<br />

42<br />

48<br />

54<br />

60<br />

P2<br />

0<br />

8<br />

16<br />

24<br />

32<br />

40<br />

48<br />

56<br />

64<br />

72<br />

80<br />

P3<br />

0<br />

10<br />

20<br />

30<br />

40<br />

50<br />

60<br />

70<br />

80<br />

90<br />

100<br />

Mit Korrektur der logischen Uhren<br />

P1<br />

0<br />

6<br />

12<br />

18<br />

24<br />

30<br />

36<br />

42<br />

48<br />

70<br />

76<br />

P2<br />

0<br />

8<br />

16<br />

24<br />

32<br />

40<br />

48<br />

61<br />

69<br />

77<br />

85<br />

P3<br />

0<br />

10<br />

20<br />

30<br />

40<br />

50<br />

60<br />

70<br />

80<br />

90<br />

100<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-23<br />

Totale Ordnung von Ereignissen<br />

• Probleme durch identische <strong>Zeit</strong>stempel für zwei Ereignisse a und b <strong>in</strong><br />

unterschiedlichen Prozessen P1 und P2 ⇒ Def<strong>in</strong>ition e<strong>in</strong>er partiellen<br />

Ordnung der Ereignisse<br />

• Totalordnung entsteht, wenn man die e<strong>in</strong>deutigen und total<br />

geordneten Knotenkennungen e<strong>in</strong>bezieht ⇒ Ereignis a auf Knoten p<br />

erhält als globalen <strong>Zeit</strong>stempel L T (a) = (L(a),p). Dann gilt<br />

( L(<br />

a),<br />

p)<br />

< ( L(<br />

b),<br />

q )<br />

⎧L(<br />

a)<br />

< L(<br />

b)<br />

⇔ ⎨<br />

⎩L(<br />

a)<br />

= L(<br />

b)<br />

∧ p < q<br />

• Realisierung: Erweiterung des <strong>Zeit</strong>stempels durch Prozessnummer PIDi<br />

Falls Li(a) = Lj(b) ⇒ Vergleich von PIDi und PIDj<br />

Absolute Reihenfolge hat ke<strong>in</strong>e physische Bedeutung (PIDs s<strong>in</strong>d zufällig),<br />

werden zur Herstellung von Reihenfolgen z.B. für den E<strong>in</strong>tritt <strong>in</strong> kritischen<br />

Bereich e<strong>in</strong>gesetzt<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-24


<strong>2.</strong>5 Vektorzeit<br />

• Gegeben sei e<strong>in</strong> <strong>Verteilte</strong>s System mit n Knoten<br />

• E<strong>in</strong> n-dimensionaler Vektor Vp heißt Vektorzeit von Knoten p, wenn<br />

Vp nach folgenden Regeln gebildet wird<br />

1. Initialisierung: Setze alle Komponenten auf 0: Vp[k]=0 für k=1,…,n<br />

<strong>2.</strong> Inkrementierung bei e<strong>in</strong>em lokalen Ereignis e am Knoten p:<br />

Vp[p]=Vp[p]+1<br />

3. Beim Senden e<strong>in</strong>er Nachricht wird der Vektor wie <strong>in</strong> 2 <strong>in</strong>krementiert<br />

und der Nachricht h<strong>in</strong>zugefügt<br />

4. Beim Empfang e<strong>in</strong>er Nachricht m mit beigefügter Vektorzeit V(m) wird<br />

Vp gemäß (2) <strong>in</strong>krementiert und dann durch Vp=sup{V(m),Vp}<br />

aktualisiert, wobei<br />

⎧⎛<br />

u [1] ⎞<br />

⎪⎜<br />

⎟<br />

⎜u<br />

[2] ⎟<br />

sup⎨⎜<br />

⎟,<br />

⎪ ...<br />

⎜ ⎟<br />

⎪<br />

⎩⎝u<br />

[ n]<br />

⎠<br />

⎛v<br />

[1] ⎞⎫<br />

⎛ max{ u [1], v [1]} ⎞<br />

⎜ ⎟⎪<br />

⎜<br />

⎟<br />

⎜v<br />

[2] ⎟<br />

⎜ max{ u [2], v [2]} ⎟<br />

⎜ ⎟⎬<br />

=<br />

...<br />

⎜<br />

⎟<br />

⎜ ⎟⎪<br />

...<br />

⎜<br />

⎟<br />

⎪<br />

⎝v<br />

[ n]<br />

⎠⎭<br />

⎝max{<br />

u [ n],<br />

v [ n]}<br />

⎠<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-25<br />

Beispiel zu Vektorzeit<br />

p 1<br />

p 2<br />

p 3<br />

⎛1⎞<br />

⎜ ⎟<br />

⎜0⎟<br />

⎜ ⎟<br />

⎝0⎠<br />

e11<br />

⎛0⎞<br />

⎜ ⎟<br />

⎜0⎟<br />

⎜ ⎟<br />

⎝1⎠<br />

e31<br />

⎛1⎞<br />

⎜ ⎟<br />

⎜1⎟<br />

⎜ ⎟<br />

⎝0⎠<br />

e21<br />

⎛1⎞<br />

⎜ ⎟<br />

⎜2⎟<br />

⎜ ⎟<br />

⎝0⎠<br />

e22<br />

⎛2⎞<br />

⎜ ⎟<br />

⎜0⎟<br />

⎜ ⎟<br />

⎝0⎠<br />

e12<br />

⎛1⎞<br />

⎜ ⎟<br />

⎜2⎟<br />

⎜ ⎟<br />

⎝2⎠<br />

e32<br />

⎛2⎞<br />

⎜ ⎟<br />

⎜3⎟<br />

⎜ ⎟<br />

⎝0⎠<br />

e23<br />

⎛1⎞<br />

⎜ ⎟<br />

⎜2⎟<br />

⎜ ⎟<br />

⎝3⎠<br />

e33<br />

⎛3⎞<br />

⎜ ⎟<br />

⎜2⎟<br />

⎜ ⎟<br />

⎝3⎠<br />

e13<br />

⎛4⎞<br />

⎜ ⎟<br />

⎜2⎟<br />

⎜ ⎟<br />

⎝3⎠<br />

e14<br />

⎛2⎞<br />

⎜ ⎟<br />

⎜4⎟<br />

⎜ ⎟<br />

⎝0⎠<br />

e24<br />

• Vektorzeit charakterisiert die Kausalbeziehung so, dass<br />

Ereignisse <strong>in</strong> e<strong>in</strong>er Kausalrelation auch bezüglich der Vektorzeit<br />

geordnet s<strong>in</strong>d<br />

Bezüglich der Vektorzeit geordnete Ereignisse auch <strong>in</strong> e<strong>in</strong>er kausalen<br />

Relation stehen<br />

• Vektorzeit bildet aufgrund des lokalen Wissens „beste Schätzung“<br />

der globalen Reihenfolgeverhältnisse<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-26


Eigenschaften der Vektorzeit<br />

• Seien u,v zwei <strong>Zeit</strong>vektoren der Dimension n. Dann gilt<br />

1. u ≤ v ⇔ u[i] ≤ v[i] für alle i=1,…,n<br />

<strong>2.</strong> u < v ⇔ u ≤ v und u ≠ v<br />

3. u || v ⇔ ¬(u ≤ v) und ¬(v ≤ u)<br />

• Aus diesen Def<strong>in</strong>itionen ergibt sich der folgende Zusammenhang<br />

zwischen Kausalrelation und Vektorzeit<br />

1. e → e‘ ⇔ V(e) < V(e‘)<br />

<strong>2.</strong> e || e‘ ⇔ V(e) || V(e‘)<br />

• Nachteil der Vektorzeit<br />

Speicherbedarf der Vektor-<strong>Zeit</strong>stempel wächst proportional zur Anzahl<br />

der Prozesse<br />

• Erweiterung zu Matrixuhren<br />

Prozesse verwalten die Schätzungen der Vektorzeiten der eigenen<br />

und der anderen Prozesse<br />

O. Kao Systemaspekte <strong>Verteilte</strong>r <strong>Systeme</strong> 2-27

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!