Berkeley-Algorithmus

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Der Berkeley-Algorithmus dient der Synchronisation von physikalischen Uhren in verteilten Systemen. Er erfordert eine zentrale Komponente, den sogenannten Zeitdaemon bzw. Zeitserver.

Ablauf[Bearbeiten]

Im Gegensatz zu anderen Algorithmen ist der Zeitserver bzw. Zeitdämon (dessen Zeit regelmäßig durch den Administrator eingestellt wird) im Berkeley-Algorithmus nicht passiv. Das bedeutet, dass sich der Zeitdaemon und nicht der Client um die Verteilung der richtigen Systemzeit kümmert.

  1. Der Zeitserver fragt in regelmäßigen Abständen die lokale Zeit von allen teilnehmenden Clienten ab.
  2. Die Zeit der abgefragten Maschinen wird dabei analog zum Algorithmus von Cristian berechnet.
  3. Anschließend errechnet der Zeitserver unter Ausschluss von starken Abweichlern die interne Zeit des verteilten Systems als arithmetisches Mittel aller Zeitstempel (Die Uhrzeit des Zeitservers wird ebenfalls in die Berechnung mit einbezogen!).
  4. Der Zeitserver teilt nun den Clienten die jeweilige zeitliche Differenz mit, um welche die lokalen Uhrzeiten umgestellt werden müssen. Geht die Uhr des Clients vor (z.B. Client Zeit 1:20, Serverzeit 1:00), dann verlangsamt dieser seine Uhr solange bis Server- und Client-Zeit wieder übereinstimmen. Geht die Uhr des Clients nach (z.B. Client Zeit 1:00, Serverzeit 1:20), dann beschleunigt dieser seine Uhr solange bis Server- und Client-Zeit wieder übereinstimmen. Der Versand der Differenz erspart dabei die erneute Abschätzung der Laufzeiten auf den jeweiligen Clients.

Siehe auch[Bearbeiten]