Berkeley-Algorithmus
Ablauf
Anders als bei anderen Algorithmen ist der Zeitserver bzw. Zeitdienst (dessen Zeit regelmäßig durch den Administrator eingestellt wird) im Berkeley-Algorithmus nicht passiv. D. h. der Zeitdaemon und nicht der Client kümmert sich um die Verteilung der richtigen Systemzeit:
- Der Zeitserver fragt in regelmäßigen Abständen die lokale Zeit von allen teilnehmenden Clients ab.
- Die Zeit der abgefragten Maschinen wird dabei analog zum Algorithmus von Cristian berechnet.
- Anschließend errechnet der Zeitserver unter Ausschluss von starken Abweichungen die interne Zeit des verteilten Systems als arithmetisches Mittel aller Zeitstempel. Die Uhrzeit des Zeitservers wird ebenfalls in die Berechnung mit einbezogen.
- Der Zeitserver teilt nun den Clients die jeweilige zeitliche Differenz mit, um welche die lokalen Uhrzeiten umgestellt werden müssen:
- geht die Uhr des Clients vor (z. B. Clientzeit 1:20, Serverzeit 1:00), dann verlangsamt der Client seine Uhr so lange, bis Server- und Client-Zeit wieder übereinstimmen
- geht die Uhr des Clients nach (z. B. Clientzeit 1:00, Serverzeit 1:20), dann beschleunigt der Client seine Uhr entsprechend.
Der Versand der Differenz erspart dabei die erneute Abschätzung der Laufzeiten auf den jeweiligen Clients.