Time Synchronisation Flashcards
Wie funktioniert das Zählen von Zeit in Computern?
Es gibt eine oszilierenden Quard im Computer mit einem Zähler und einem holding Register. Wenn der Zähler null ist wird ein Interupt ausgelöst und der Zähler wird mit dem Wert aus dem holding Register geladen. Jeder Interupt ist ein Clock tick. Jeder clock tick zählt die gespeicherte Zeit um 1 nach oben.
Was ist das Problem mit Zeitsynchronisaion von mehreren CPUs die alle ihre eigene Zeit benutzen?
Die Quarze oszilieren nicht mit der genau gleichen frequenz
Was bedeutet UTC
Uniersal Coordinated Time. Das ist die offizielle globale Zeit.
Welche Algorithmen gibt es um die Zeit von Computern zu synchronisieren?
- Cristian’s Algorithmus
- Berkeley Algorithmus
- NTP
- PTP
Wofür ist die Synchronisation von Uhren erforderlich?
- damit zwei (oder mehr) Prozesse sich auf die Reihnfolge von Ergebnissen einigen können
- Damit der Zugang zu einer Ressource zeitlich aufgeteilt werden kann.
Kann man Uhren in verteilten Systemen exakt synchronisieren?
Nein
Wie funktioniert Cristian’s Algorithmus?
- Ein Server ist mit einem UTC Service verbunden.
- Jede Maschine im System fragt Periodisch den Server nach der Seit
- Der Server sendet die Zeit and die Maschine
Welche zwei Probleme gibt es bei Christian’ Algorithmus?
- Problem 1: Die gesendete Zeit ist kleiner als die bisherige Zeit. Problem da die Zeit niemals rückwärts laufen kann. Mann muss dafür sorgen das die Zeit auf der Maschine langsammer läuft und die Zeit über einen Zeitraum anpassen
- Problem 2: Das Senden der Nachricht und die verarbeitung der Anfrage braucht Zeit. Diese muss Einberechnet werden: value in reply message + (T1 - T0) /2.
verbesserte Approximation: (t1-t0-I)/2
Wie funktioniert der Berkeley Algorithmus?
- Time Server fragt jede Maschine periodisch nach ihrere Zeit
- Daraus wird die durchschnittliche Zeit berechnet.
- Sagt den Maschienen wie sie ihre Zeit anpassen müssen
Was ist das Network Time Protocol?
- System, welches Computeruhren über das Internet synchronisiert
- ermöglicht eine weltweite Genauigkeit von 1-50 ms zur UTC
- Internet standard protocol: Application Layer mit UDP (port 123)
Wie ist NTP aufgebaut?
- NTP nutzt eine hierarische Serverstruktur
- eine Ebene ist ein Stratum welches seine Zeit mit dem Stratum darüber synchronisiert
- Stratum 0: referenz Uhr, z.B. atomic clock
- Stratum 1: Computer direkt verbunden mit Stratum 0 ohne Netzwerk!
- Stratum 2: synchronisiert über stratum 1 Server
- Stratum 3: NTP Server mit welchen sich Nutzer synchronisieren
Wie funktioniert die Synchronisaton über NTP
- NTP Client fragt regelmäßig einen oder mehr NTP Server und tauscht mehrere Daten aus.
- Zur Synchronisation muss der Client den Time offset und die RTT berechnen.
Was schickt der Time-Daemon an die Systeme?
Seine eigene Zeit oder eine Aufforderung die eigene Zeit zum Server zu senden
Wie lautet die Antwort der Systeme auf den Time-Deamon
Je nach Implementierung was geschickt wurde der Offset zur Zeit oder die eigene Zeit
Was macht der Time Deamon nach erhalten der Zeiten
Er berechnet den arithmetische Mittel und gibt dann den Offset der Zeiten der Systeme an diese zurück.
Kann man davon ausgehen, dass die RTT symmetrisch ist in allgemeinen und in bezug auf den Chritian’s Algorithmus
Im allgemeinen Nein, aber Christians Algorithmus nimmt es trotzdem an.
Wie viele Zeitstempel verwendet NTP
4 Zeitstempel
Warum fällt der Offset bei NTP zwischen den Uhren von Client und Server nicht ins Gewicht?
Da nur die Abstände zwischen jeweils lokalen Zeitpunkten der selben Uhr gemessen werden ist der Offset der hren zu einander irrelevant
Welcher Server wird NTP verwendet
Client Kommuniziert mit mehreren NTP server und berechnet über die letzten 8 Nachrichten die Dispersion: max RRT - min RRT. Der Server mit der niedrigsten Dispersion wird genommen
Wofür benutzt man Logische Uhre
Oft ist nur wichtig in welcher Reihnfolge Prozesse auftreten und nicht die genaue Uhrzeit.
Definition von “happens-before” ->
- a -> b wenn a vor b passiert
- a || b wenn a und b nicht in verbindung stehen
Wie funktioniert der Lamport Clock Algorithmus
- Befor ein Event b ausgeführt wird, C_i <- C_i + 1
- Sende die Lokale Zeit in einer Nachricht m
- Wenn P_j nachricht erhält neues C ist 1 + max {C_j, C(m)}
Stimmt es das a->b impliziert C(a) < C(b) für Lamport Clocks gilt?
Ja
Stimmt es, das C(a) < C(b) impliziert a -> b gilt?
Nein