Kap. 8: Globale Zeit /



Ähnliche Dokumente
Uhrensynchronisation. Dipl.-Inf. J. Richling Wintersemester 2003/2004

Verteilte Systeme - Synchronisation

S1 Zeit in verteilten Systemen

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

Zeitsynchronisation in drahtlosen Sensornetzen Verfahren und Anwendungen

Grundlagen verteilter Systeme

Fakultät für Informatik der Technischen Universität München. Kapitel 7. Uhren & Synchronisation

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

Verteilte Systeme - 3. Übung

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.

Network Time Protocol NTP

Man liest sich: POP3/IMAP

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

56. UKW Tagung Weinheim 2011 Zeitsynchronisation mit NTP (Network Time Protocol)

Easy-Monitoring Universelle Sensor Kommunikations und Monitoring Plattform

Das Network Time Protocol - NTP. Das Network Time Protocol - NTP. Das Network Time Protocol - NTP. Das Network Time Protocol - NTP

Bericht über Kooperation zwischen JOIN/Fa. Meinberg

Lokalisierung durch Messung von WLAN-Signallaufzeiten

Elementare Systemkomponenten:

Zeit-und Frequenzstandards. Nick Rothbart

Messmethoden zur Eignung von Gigabit-Ethernet für Echtzeit-Anwendungen

Anleitung zur Nutzung des SharePort Utility

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Im Folgenden wird die Konfiguration der DIME Tools erläutert. Dazu zählen die Dienste TFTP Server, Time Server, Syslog Daemon und BootP Server.

Vorlesung "Verteilte Systeme" Wintersemester 2002/03. Vergleichbarkeit kausal abhängiger Ereignisse Reicht in vielen Fällen aus

OSEK/VDX NM (Network Management)

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

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

Übungspraktikum 3 Physik II

Synchronisation von physikalischen Uhren

SharePoint Demonstration

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

6.2 Petri-Netze. kommunizierenden Prozessen in der Realität oder in Rechnern Verhalten von Hardware-Komponenten Geschäftsabläufe Spielpläne

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Beispiel Zugangsdaten -Konto

Anbindung LMS an Siemens S7. Information

Zeitstempel für digitale Dokumente. Ein neuer Dienst in der DFN-PKI

ISA Server 2004 Erstellen eines neuen Netzwerkes - Von Marc Grote

Energieeffiziente Empfänger in Sensornetzwerken

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Ein einfaches Modell zur Fehlerfortpflanzung

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Systemvoraussetzungen

A. Ersetzung einer veralteten Govello-ID ( Absenderadresse )

Beispiel Zugangsdaten -Konto

Whitepaper. Produkt: combit Relationship Manager / address manager. Dateiabgleich im Netzwerk über Offlinedateien

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Synchronisations- Assistent

Übung zur Vorlesung Echtzeitsysteme

How-to: Webserver NAT. Securepoint Security System Version 2007nx

peer-to-peer Dateisystem Synchronisation

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren

Einsatzbearbeitung im Sanitätsdienst

Lizenzen auschecken. Was ist zu tun?

AO Agrar-Office. und Vermessung

GeFüGe Instrument I07 Mitarbeiterbefragung Arbeitsfähigkeit Stand:

10.1 Auflösung, Drucken und Scannen

TECHNISCHE INFORMATION LESSOR LOHN/GEHALT BEITRAGSNACHWEIS-AUSGLEICH BUCH.-BLATT MICROSOFT DYNAMICS NAV

Multicast Security Group Key Management Architecture (MSEC GKMArch)

Wie optimiert man die Werbungserkennung von Ad- Detective?

Dieser Artikel beschreibt die Veröffentlichung eines Microsoft SQL Server 2000 über einen ISA Server 2004.

Internet online Update (Internet Explorer)

Systemvoraussetzungen

Zeichen bei Zahlen entschlüsseln

Systemvoraussetzungen

EKF Software Server. Handbuch. Version 2.1. Hersteller: 2008 mesics gmbh Berliner Platz Münster info@mesics.de

2 Datei- und Druckdienste

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Zeitsynchronisation Windows Server 2008 R2 PDC Master der FRD mit einer externen Zeitquelle

Virtuelle Fotografie (CGI)

Zeitsynchronisation per DCF-77 Funktionsbeschreibung

Wintersemester 2014/2015. Überblick. Prof. Dr. Peter Mandl Verteilte Systeme

Kommunikation in drahtlosen Sensornetzen

Systemvoraussetzungen

TK-Schnittstelleneinrichtung. Redundante Softswitches

teamsync Kurzanleitung

Universität Zürich Informatikdienste. SpamAssassin. Spam Assassin Go Koordinatorenmeeting 27. April

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Physik & Musik. Stimmgabeln. 1 Auftrag

Addendum Option Dynam. HD-Text-/Grafikoptimierung Xerox EX Print Server, Powered by Fiery, für Druckmaschine Xerox igen 150, Version 1.

Version White Paper ZS-TimeCalculation und die Zusammenarbeit mit dem iphone, ipad bzw. ipod Touch

Systemvoraussetzungen

Motivation. Motivation

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

WinVetpro im Betriebsmodus Laptop

Updatehinweise für die Version forma 5.5.5

Support-Tipp Mai Release Management in Altium Designer

SolarWinds Engineer s Toolset

Theoretische Grundlagen der Informatik WS 09/10

Zeit als Mittel der Reihenfolgebestimmung. Zeit als Mittel der Reihenfolgebestimmung. als Mittel der Reihenfolgebestimmung


ANYWHERE Zugriff von externen Arbeitsplätzen

Visualisierung verteilter Systeme

Vorlesung. Rechnernetze II Teil 13. Sommersemester 2004

Internet LUFA. Topologiebeschreibung LUFA Speyer Gesamtübersicht. Co Location in einem RZ. LUFA Speyer Topologiebeschreibung Projekt Nr.

WSPR = Weak Signal Propagation Reporter gesprochen: whisper (engl.: flüstern, Geflüster) Autor: Joe Taylor, K1JT Digitaler Mode über Soundkarte

Transkript:

Kap. 8: Globale Zeit / Uhrensynchronisation 81 8.1 Einführung 8.2 Zeitbegriff und Zeitsysteme 83 8.3 Rechneruhren 8.4 Synchronisationsprotokolle 85 8.5 Logische Zeitmarken Verteilte Systeme 8-1

8.1 Einführung Probleme mit nicht-synchronisierten Rechneruhren Zeitstempel von Dateien (make) zeitgesteuertes Ausführen von Aufträgen (cron)... Motivation Etablierung von systemweiter Zeit in verteilten Systemen Synchronität mit realer Außenzeit Zielsetzung Synchronisation von Rechneruhren Verteilte Systeme 8-2

Einführung (2) 8.1 Anwendungen korrekte Funktion zeitbezogener lokaler und verteilter Anwendungen korrektes Ordnen von Ereignissen in verteilten Systemen Leistungsmessung in verteilten Systemen verteilte Echtzeitsysteme einschl. Synchronität mit realer Außenzeit effizientere verteilte Algorithmen durch Verringerung des Kommunikationsaufwands (vgl. [Liskov]) Verteilte Systeme 8-3

8.2 Zeitbegriff und Zeitsysteme Verschiedene Zeitbegriffe im Laufe der Geschichte Astronomische Zeit basiert auf der gleichförmigen Bewegung von Himmelskörpern und deren Beobachtung Sonnenzeit» mittlere Dauer einer Erdumdrehung» Sonnentag: Zenit-Zenit (bis 1956)» 1 Sek = 1 / (24*60*60) Sonnentag» wenig stabil (Abbremsung der Erdrotation, Schwankungen durch Massenverlagerungen) Sternzeit» mittlere Dauer der Umlaufzeit der Erde um die Sonne» 1 Sek = 1 / 31.556.925,9747 Teil des trop. Jahres 1900 (ab 1957) Verteilte Systeme 8-4

Physikalische Zeit 8.2 basiert auf periodischen physikalischen Prozessen klassische Beispiele: Kerzenuhr (Verbrennen von Wachs) Pendeluhr, Genauigkeit best: 10-7 Quarzuhr, Genauigkeit best: 10-9, typisch: 10-5 -10-6 Atomuhr Definition im SI-Einheitensystem (ab 1967): "Die Sekunde ist das 9 192 631 770fache der Periodendauer der dem Übergang zwischen den beiden Hyperfeinstrukturniveaus des Grundzustandes von Atomen des Nuklids 133 Cs entsprechenden Strahlung." Cäsium-133-Uhr, Genauigkeit best: 10-14, typisch: 10-13 ( < 1µs pro Jahr) Caesium-Fontäne, Genauigkeit < 10-15 Verteilte Systeme 8-5

Physikalisch-Technische Bundesanstalt (PTB) 8.2 in Braunschweig Betrieb mehrerer Atomuhren (CS1-CS4, CS4 CSF1) Verantwortung für die gesetzliche Zeit in D (ab 1978) Betrieb von Verteildiensten Foto: PTB Verteilte Systeme 8-6

Zeitsysteme 8.2 GMT: Greenwich Mean Time Lokale Ortszeitangaben (wahre und mittlere) üblich bis ca. 1880 Probleme für Eisenbahn-Fahrpläne Greenwich Mean Time gesetzliche Standardzeit in England ab 1880 Ab 1.06.1891: deutsche und östereichisch/ungarische Eisenbahnverwaltungen führen die Zeit des 15. Längengrads g als mitteleuropäische Eisenbahn-Zeit (M. E. Z.) ein. Deutsches Reich: gesetzliche Uhrzeit ab 1.04.1893 ist die mittlere Sonnenzeit des fünfzehnten Längengrades östlich von Greenwich Meridiankonferenz Washington 1884 definiert Greenwich als Null-Meridian und führt Zeitzonen ein GMT Sonnenzeit ab 1.1.1925 Beginn des Tags um Mitternacht (für Astronomen bis dahin mittags) Verteilte Systeme 8-7

Zeitsysteme (2) 8.2 UT: Universal Time Weltzeit abgeleitet aus Sternzeit (ab 1957) am Null-Meridian UT1: Berücksichtigung der Polschwankungen TAI: Temps Atomique International mittlere Atomzeit seit 1.1.1958 Betrieb von ca. 250 Atomuhren weltweit weltweit koordiniert durch Bureau International de l'heure (BIH) UTC: Universal Time Coordinated heutiger Zeitstandard (ab 1972) basiert auf TAI, aber Anpassungen an UT1 durch "Schaltsekunde" bei mehr als 900 ms Unterschied Abweichung: 1 Sek in 300.000 Jahren Verteilte Systeme 8-8

Zeitverteildienste 8.2 Langwellen-Radiosender z.b. in D: DCF77 (77.5 khz, Frankfurt/Mainflingen) basierend auf Atomuhr CS-2 der PTB Sekundentakt aufmodulierter voller BCD-Zeitcode (58 Bit) in jeder Minute Genauigkeit» 2*10-13 gemittelt über 100 Tage» 1-10 msec je Sek. (atmosphärische Störungen) GEOS Satellitensystem Geostationary Operational Environment Satellite Genauigkeit ca. 0.5 msec Verteilte Systeme 8-9

Zeitverteildienste (2) 8.2 GPS-Satellitensystem als Basis Global Positioning System, primär militärisch 24 Satelliten, Umlaufzeit 12 h, mind. 4 jederzeit "sichtbar" Cäsium-Uhren an Bord Synchronisation gegenüber Uhren anderer Satelliten durch Bodenstation auf +/- 5 ns genau Standortbestimmung durch Unterschiede in Signallaufzeiten (5 ns 1.5 m mil.; 1 µs 300 m zivil) künstliche Ungenauigkeiten in Krisenzeiten Differentielles GPS nutzt zusätzlich Bodenstationen mit bekannten Standorten (Geodäsie) GPS-basierte Uhr GPS-Signal als Referenz einer PLL-Schaltung hochgenaue Sekundenimpulse (pps pulse-per-second) typ. Genauigkeit: ca. 1 µs (nach ca. 1/2 h Betrieb, z.b. Meinberg) Verteilte Systeme 8-10

Zeitverteildienste (3) 8.2 Galileo-Satellitensystem der EU/ESA (bis 201x) europäisches, zu GPS kompatibles System (GPS III) bis zu 30 Satelliten» mit je 2 Atomuhren» senden Zeitsignal und Positionsdaten» globale Abdeckung Dienste» Unterscheidung in globale, regionale, lokale Ebene» kostenloser Dienst für Ortung, Navigation, Zeitsynchronisation i ti (Genauigkeit ca. 4 m horizontal, 8m vertikal)» kommerzieller Dienst (Genauigkeit 1 m, Bewegungen 0.2 m/sec) (Vermessungswesen, Netzsynchronisation, Flottenmanagement)» Safety-of-Life-Dienst, (sicherheitskritische Anwendungen in Luft- und Schifffahrt, Bahnverkehr)» Dienst "von öffentlichem Interesse", (Signal mit sehr hoher Genauigkeit, Qualität, Zuverlässigkeit und Integrität für hoheitliche h h Anwendungen) Stand:» 2004: Entwicklung bis 2006, Betrieb ab 2008 geplant» 2006: Konzessionsvergabe bis 2008, Errichtung 2009/10, Betrieb ab 2010» 2008: Betrieb ab 2013 im Auftrag der EU, Kosten ca. 3,6 Mrd. Euro Verteilte Systeme 8-11

Begriffe 8.2 Referenzzeit Approximation der wahren physikalischen Zeit Abweichung, Genauigkeit (Accuracy) absolute oder relative Differenz zu einer Referenzzeit Präzision, Auflösung (Precision) kleinste Zeitdauer zwischen zwei aufeinander folgenden anzeigbaren Zeitpunkten Stabilität (Stability) Frequenzschwankung einer Uhr Offset Drift Zeitdifferenz zwischen zwei Uhren bzw. zur Referenzzeit Frequenzdifferenz zwischen zwei Uhren bzw. zur Referenzzeit Verteilte Systeme 8-12

Veranschaulichung 8.2 Clock Time C schnelle Uhr Uhr mit guter Genauigkeit aber geringer Stabilität dc ideale Uhr = 1 dt Offset langsame Uhr, ideale Stabilität UTC t (Referenzzeit) Verteilte Systeme 8-13

8.3 Rechneruhren Hardware einer lokalen Rechensystemuhr -1 Zählerregister =0 Quarz- getrieben Uhr- Interrupt Reload-Register typisch: 20-100 mal je Sek. Verteilte Systeme 8-14

Betriebssystem-Uhren 8.3 Beispiel UNIX zwei 32-Bit (oder 64-Bit) Integer-Variablen» Anzahl Sekunden seit 1.1.1970» Anzahl µs (oder ns) in der aktuellen Sekunde typ. 100 Interrupts/s bei Interrupt werden Variablen um nominelle Anzahl µs erhöht Korrekturwert (Adjust-Wert) für Ausgleich der Drift des Quartzes Systemdienste settimeofday, adjtime 1MHz -1 Zählerregister =0 Uhr- Interrupt Sekunden Reload-Register 10005 + 10000 Mikrosekunden Adjust-Wert 5 Verteilte Systeme 8-15

Prinzip der Korrektur 8.3 Clock Time C ideale Uhr Genauigkeit ± δ/2 Zurücksetzen nicht monoton steigend! adjtime monoton steigend UTC t Verteilte Systeme 8-16

Referenzzeitquellen 8.3 DCF77-Uhr für einfache Anforderungen an Systemzeit Genauigkeit typisch: ± 2 msec GPS-Uhr bei hohen Anforderungen (z.b. Messsystem) Genauigkeit typisch: ± 250 nsec Atom-Uhr Rubidium / Caesium-Quellen Spezielle Zulassung erforderlich Montage in Rack z.t. ausschließlich für militärische Zwecke Rechnerschnittstelle Erzeugung g von Pulse-Per-Second (pps)-signalen als Interrupts Kodierte Timecode-Signale, z.b. IRIG-Standard (Inter Range Instrumentation Group) Verteilte Systeme 8-17

Genaue lokale Betriebssystem-Uhren 8.3 Verwendung einer externen Referenzzeitquelle Linux-Kern mit "Nano-Kernel-Patch Patch" Erhöhung der Auflösung der Systemuhr auf 1 ns (statt µs) Standard in neueren Linux-Kernen Nutzung der pps-signale der Referenzzeitquelle als Interrupts Korrektur der Systemuhr entsprechend Referenzzeit der Hardware-Uhr Varianz der Interrupt-Latenzzeiten beeinflusst Genauigkeit mehrere externe Zeitquellen an einem Rechner möglich zur weiteren Erhöhung der Genauigkeit Genauigkeit: typisch < 1 µs Verteilte Systeme 8-18

Beispiel: Mills' Uhren an der Uni Delaware 8.3 Austron 2200A GPS Receiver Austron 2000 LORAN-C Receiver Spectracom 8170 WWVB Reciver Hewlett Packard 5061A Cesium Beam Frequency Standard d NTP primary time server rackety Verteilte Systeme 8-19

Kommerzielle Time Server 8.3 Time Server Dedizierter LAN-Netzwerkknoten zur Zeitsynchronisation Interne oder externe Referenzzeitquelle Unterstützung für Standard-Protokolle (s.u.) (NTP, SNTP, PTP/IEEE 1588) Produkte in vielen Varianten Meinberg (D) IPCAS (D) Galleon (UK) ELPROMA (NL) Time Tools (UK) Verteilte Systeme 8-20

8.4 Synchronisationsprotokolle Konstruktion einer verteilten Zeitbasis für Rechensysteme UTC-basierte externe Referenzzeitquelle lokale Uhren in den Rechensystemen Synchronisationsprotokoll Referenzzeitquelle Rechner 0 Rechner 1 Rechner n... Uhr Uhr Uhr Synchronisationsprotokoll Verteilte Systeme 8-21

Probleme 8.4 Nachrichtenverzögerung im Netzwerk nicht deterministisch Bearbeitung der Protokollnachrichten zeitlich nicht deterministisch keine exakte Synchronisation möglich Verteilte Systeme 8-22

Algorithmus von Christian (1989) 8.4 passiver Zeitserver (als Referenzzeitquelle) periodisches Abfragen der Zeit durch Klienten mittlere Roundtriplaufzeit (incl. Verarbeitungszeit auf dem Server) messen und berücksichtigen Schwächen h "Rückwartsgehen" einer Uhr ist möglich Schwankungen in Nachrichtenlaufzeiten Client Server Roundtrip-Zeit gemessen mit lokaler Uhr des Clients t R gemessen mit t t Ablesen der Zeit t SRV Setze t LOCAL := t SRV +t R /2 t SRV Verteilte Systeme 8-23

Time Synchronisation Protocol (TSP) 8.4 Berkeley UNIX timed basiert auf ICMP/IP etabliert "mittlere Netzwerkzeit" in allen Stellen Master/Slave-Algorithmus aktiver Master: fragt aktuelle Zeiten aller Knoten ab, berechnet Mittel verteilt Differenz (Offset) an jeden Client nutzt settimeofday und adjtime in den Knoten deutliche Schwächen "Rückwartsgehen" einer Uhr ist möglich keine Kompensation von Schwankungen in Nachrichtenlaufzeiten keine Fehlerabschätzung schlechte Skalierbarkeit Variante: Master mit ext. Referenzzeitquelle verteilt aktuelle Zeit statt berechnetem Mittelwert Verteilte Systeme 8-24

Network Time Protocol (NTP) 8.4 Entwicklung primär durch D. Mills (Univ. of Delaware) getrieben http://www.ntp.org/ p Ziele hohe Genauigkeit Berücksichtigung schwankender Nachrichtenlaufzeiten Berücksichtigung von Rechnerausfällen durch Bezug zu mehreren Zeitservern (Peers) Aussortieren offensichtlich unbrauchbarer Zeitquellen (false ticker) eingeschränkte Authentifizierung, Verschlüsselung hohe Skalierbarkeit heute Internet Standard RFC 1305, 1992, frühere Version RFC 1129 > 1.000.000 Rechner, Router, usw. UNIX ntpd, xntpd (aber auch für fast alle anderen Systeme) Zeitserver der PTB: ptbtime1.ptb.de, ptbtime2.ptb.de Genauigkeit: im LAN <1-2 ms, WAN < einige i 10 ms Verteilte Systeme 8-25

NTP (2) - Arbeitsweise 8.4 Redundanz durch mehrere Quellen Erkennen guter und schlechter Zeitquellen Peer 1 Filter 1 Peer 2 Filter 2 Peer 3 Filter 3 NTP Messages Selection and Clustering Algorithms Combining Algorithm Timestamps Clock Discipline Algorithm Loop Filter P/F-Lock Loop VFO Auswahl der besten Bestimmung eines Loop Filter und Variable Werte aus einem Fenster gewichteten Mittels für Frequency Oscillator (VFO) von 8 Messwerten den Offset implementieren hybrides Phase/Frequency-Lock (P/F) Feedback für Jitter und Driftoptimierung Abbildung von Mills Verteilte Systeme 8-26

NTP (3) 8.4 Server legen Zeit fest, Clients beziehen Zeit Hierarchiebildung der Server durch "Stratum"-Level Knoten mit Referenzzeitquellen bilden Stratum 1 -Server (Genauigkeit: < 1 µs möglich) Stratum n - Server synchronisieren sich mit Stratum n-1 - Servern, usw. im Internet (Juli 2004)» 128 aktive Stratum-1 Server» 178 aktive Stratum-2 Server Typische Strukturen: 1 1 1 1 1 1 2 2 2 2 3 3 3 2 2 2 3 3 4 Wert: Stratum Level Unternehmens- Abteilungszeitserver Zeitserver (fehlertolerant) (fehlertolerant) Workstation Abbildung von Mills Verteilte Systeme 8-27

NTP (4) 8.4 dynamisch festgelegte logische Verbindungsstuktur mit Backup- Verbindungen spannende Bäume minimalen Gewichts basierend auf Server Level und Gesamtsynchronisations-verzögerung jedes Servers zu Primary Servern Beispiel Verbindungstopologie 1 2 2 3 3 3 Nachrichtenaustausch zwischen Servern zwischen 64 sec und 1024 sec (17 min) je nach Qualität der Verbindung 1 Nutzung von settimeofday und adjtime zur Durchsetzung großer bzw. kleiner 2 3 (<0.128 sec) Korrekturen. Kein Zurücksetzen der Uhr 3 3 3 (Details: vgl. Simulator im Modul "Verteilte Algorithmen") fällt aus Verteilte Systeme 8-28

Distributed Time Service (DTS) 8.4 Teil von OSF DCE, ursprünglich von Digital entwickelt Besonderheit: Etablieren eines Zeitintervalls, das UTC enthält und Ungenauigkeit minimiert adjust im Verhältnis 1:100 Intervall nicht berücksichtigt t fehlerhaft Durchschnitt der Intervalle UTC "Computed Time" (Schätzwert) Verteilte Systeme 8-29

8.5 Logische Zeitmarken Realzeit nicht immer notwendig Beispiele: Ordnen von Ereignissen (vor - nach) zeitmarkenbasiertes Concurrency Control in Datenbanken Verteilte Systeme 8-30

Lamport-Zeitstempel 8.5 Relation happens-before Notation: a b (a passiert-vor b) Ereignisse im selben Prozess sind linear geordnet Nachrichtenversand:» a sei Ereignis des Versendens einer Nachricht m» b sei Empfang der Nachricht m in einem anderen Prozess» dann gilt: a b Relation ist transitiv:» a b, b c a c Nebenläufigkeit:» falls weder a b noch b a gilt, heißen a und b nebenläufig Uhrenbedingung C(a) bezeichne die (logische) Zeit, zu der das Ereignis a stattfinde. a b C(a) < C(b) Verteilte Systeme 8-31

Lamport-Uhren 8.5 Algorithmus für logische Uhren nach Lamport (1978) Annahmen: Prozesse kommunizieren über Nachrichten (und nur über Nachrichten) miteinander jeder Prozess P hat eine logische Uhr C P jedes Ereignis e des Prozesses P erhält logischen Zeitstempel C P (e) zwei aufeinander folgende Ereignisse e i und e i+1 eines Prozesses haben nie den gleichen Zeitstempel: C P (e i ) < C P (e i+1 ) Verteilte Systeme 8-32

Lamport-Uhren (2) 8.5 Beispiel: A 0 6 12 18 24 30 36 42 48 54 m1 m4 B 0 8 16 24 32 40 48 56 64 72 m2 m3 C 0 10 20 30 40 50 60 70 80 90 60 80 100 Uhren mit unterschiedlichen Geschwindigkeiten ohne Korrektur A 0 6 12 18 24 30 36 42 48 m1 m4 B 0 8 16 24 32 40 48 61 69 m2 m3 C 0 10 20 30 40 50 60 70 80 70 77 90 76 86 100 Uhren mit unterschiedlichen Geschwindigkeiten mit Korrektur Verteilte Systeme 8-33

Lamport-Uhren (3) 8.5 Algorithmus: Berücksichtigung von Kausalität im Nachrichtenversand! Sendeereignis s einer Nachricht m in Prozess A:» Zeitmarke C A (s)» Versende Nachricht m zusammen mit aktuellem Zeitstempel des sendenden Prozesses t = C A (s) Empfangsereignis e der Nachricht m in Prozess B:» sei C B (alt) die Zeitmarke des letzten Ereignisses in B» Setze C B (e) := max {C B (alt), t } + 1 Falls zwei Ereignisse in verschiedenen Prozessen die gleiche Zeitmarke haben sollten, ordne sie anhand der Prozessordnung Algorithmus erfüllt Uhrenbedingung Umkehrung gilt nicht: C(a) < C(b) a b ist falsch! Lamport-Uhren lösen nicht Kausalitätsproblem Verteilte Systeme 8-34

Vector Clocks 8.5 Vektor-Uhren, Mattern (Uni Kaiserslautern, 1989) Vektor-Uhren lösen o.a. Kausalitätsproblem Algorithmus: nachrichtenbasierte c e Kommunikation o jeder Prozess P i besitzt Uhr VC i als Vektor von Zeitmarken lokales Ereignis in P i :» VC i [i] := VC i [i] + 1, sonst unverändert Sendeereignis in P i :» VC i [i] := VC i [i] + 1 (Erhöhe eigenen Ereigniszähler)» Versende Nachricht mit eigener Vektorzeit vt = VC i Empfangsereignis in P k :» VC k [j] := max {VC k [j], vt[j] } für alle j» VC k [k] := VC k [k] + 1 (Erhöhe eigenen Ereigniszähler) Verteilte Systeme 8-35

Vector Clocks (2) 8.5 Vergleich von Zeitmarkenvektoren S T : S[i] T[i] für alle i S < T : S T und S T S T : ( S < T ) und ( T < S ) Nebenläufigkeit Ereignisse a und b sind nebenläufig VC(a) VC(b) Kausalität a b VC(a) < VC(b) Verteilte Systeme 8-36

Vector Clocks (3) 8.5 Beispiel 1 2 0 0 0 0 3 0 0 4 5 4 4 2 2 P 1 0 1 0 0 2 2 3 2 2 2 4 2 2 2 5 6 2 2 P 2 0 0 1 0 0 2 0 0 3 2 5 4 P 3 kausal abhängige Ereignisse, z.b. (0,0,1) (5,4,2), (1,0,0) (2,6,2) nebenläufige Ereignisse, z.b. (0,0,3) (5,4,2) vgl. Simulator im Modul "Verteilte Algorithmen" Verteilte Systeme 8-37