Thema: .: Atomuhr :.

Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#38

Re: .: Atomuhr :.

  Alt 4. Jul 2006, 16:07
Interessantes Thema !

1.) müssen wir uns fragen was wir mit dieser Atomzeit genauerer machen wollen als es schon ist. Man kann davon ausgehen das auf heutigen Rechnern die Zeit durch das BIOS "gemessen" wird. Das ist dann ein RTC Chip der mit ca. 1.6MHz getaktet wird. Dieser Quartz hat eine Ungenauigkeit von +-10ppm. Das ergäbe hoch gerechnet eine Ungenauigkeit von +-1 Sekunde innerhalb von 44.4 Stunden. Wollen wir es 100'tel Sekunden genau also dann 26.6 Minuten. Daraus ergibt sich die minimal notwenige Synchromisationszeit von ca. 30 Minuten. Du solltest also alle 30 Minuten die Systemzeit synchronisieren, ein kürzeres Interval wäre nicht mehr meßbar noch hätte es einen Sinn.

2.) wie synchronisieren wir die Systemzeit so das wir sie exakt zum richtigen Zeitpunkt nachjustieren ? Das geht nur wenn du den Zeitfehler der Systemzeit ausrechnen kannst. Das muß dann folgende Fehlerquellen ausgleichen:
a.) Antwortzeiten im Netzwerk, ergo du musst diesen Fehler absolut messen können
b.) Gangungenauigkeiten des Quarzes der RTC
c.) eventl. Laufzeitdifferenzen der beteiligten BIOS und Betriebsystem Software

Das bedeutet: du musst ab dem Moment der Synchronisation mit dem Zeitserver die Zeit mit Hilfe der Systemuhr stoppen und diesen Wert als Differenz zur empfangenen Serverzeit so hochrechnen das du den exakten Zeitpunkt wann und mit welchem Zeitoffset du die Systemzeit aktualisierst.

Bleibt noch ein gravierendes Problem: nämlich die Genauigkeit der zeitlichen Ausführungspriorität deines Codes der die Systemzeit ändert. Sprich ein Task wir von OS nur mit Zeitscheiben an Prozessorzeit ausgeführt, und das OS kann mittendrinnen in deiner Aktuialiserung der Systemzeit deinen Task schlafen legen. Du kannst das mit höheren Prioritäten versuchen zu verhindern, aber real verlassen kannst du dich nur darauf das due einen zeitlichen Fehler von +-20 Millisekunden hast. Sogesehen auf 100'tel Sekunden genau zu synchroniseren ist meiner Meinung nach schon hart an der Grenze des Machbaren.

Gruß Hagen
  Mit Zitat antworten Zitat