Zeit in der Informatik

Uhren, Zeitstempel und Synchronisation

Computerzeit kennenlernen

Computer benötigen genaue Zeitangaben für Protokollierung, Planung, Sicherheitszertifikate, Datenbanktransaktionen und unzählige weitere Operationen. Das Verständnis, wie Systeme Zeit messen, speichern und synchronisieren, ist für Entwickler, Administratoren und alle, die zeitbezogene Probleme beheben, unerlässlich.

Wie Computer die Zeit halten

Hardware-Uhren

  • RTC (Echtzeituhr): Batteriegepufferter Chip, der die Zeit bei ausgeschaltetem Gerät behält
  • Quarzoszillator: Quarzkristall mit stabiler Frequenz (typischerweise 32.768 kHz)
  • Drift: Hardware-Uhren weichen pro Monat um Sekunden bis Minuten ab

Systemuhr

  • Vom Betriebssystem verwaltete Software-Uhr
  • Wird beim Booten von der RTC initialisiert
  • Über Netzwerkprotokolle (NTP) synchronisiert
  • Kann häufiger als die RTC angepasst werden

Network Time Protocol (NTP)

NTP synchronisiert Computeruhren über ein Netzwerk und erreicht Millisekundengenauigkeit über das Internet sowie Sub-Millisekunden in LANs.

Stratum-Stufen

StratumQuelleGenauigkeit
0Atomuhr, GPS-EmpfängerNanosekunden
1Direkt mit Stratum 0 verbundenMikrosekunden
2Synchronisiert mit Stratum 1Millisekunden
3–15Jede Stufe synchronisiert mit der darüberVerschlechtert sich leicht

Wie NTP funktioniert

  1. Client sendet Anfrage mit Zeitstempel
  2. Server antwortet mit seinen Zeitstempeln
  3. Client berechnet Netzwerkverzögerung und Offset
  4. Uhr wird schrittweise angepasst (Slewing), um Sprünge zu vermeiden

Zeitspeicherformate

FormatBeispielAnwendungsfall
Unix-Zeitstempel (s)1705329000Datenbanken, APIs
Unix-Zeitstempel (ms)1705329000000JavaScript, Java
ISO 86012024-01-15T14:30:00ZJSON, APIs, Protokolle
RFC 2822Mon, 15 Jan 2024 14:30:00 +0000E-Mail-Header
SQL DATETIME2024-01-15 14:30:00Datenbanken
SQL TIMESTAMP2024-01-15 14:30:00Automatisch aktualisierende Felder

Herausforderungen verteilter Systeme

Uhrenversatz (Clock Skew)

Verschiedene Maschinen haben leicht unterschiedliche Zeiten, was folgende Probleme verursacht:

  • Ereignisse in falscher Reihenfolge in Protokollen
  • Race Conditions bei verteilten Transaktionen
  • Fehler bei der Zertifikatsvalidierung

Lösungen

  • NTP/PTP: Uhren synchron halten
  • Logische Uhren: Vektoruhren, Lamport-Zeitstempel
  • Konsens-Protokolle: Raft, Paxos zur Ereignisordnung
  • TrueTime (Google): GPS-synchronisiert mit begrenzter Unsicherheit

Häufige Zeitprobleme

Das Jahr-2000-Problem (1999–2000)

Zweistellige Jahreszahlen konnten das Jahr 2000 nicht darstellen. Die Behebung kostete weltweit Milliarden.

Das Jahr-2038-Problem

32-Bit-Unix-Zeitstempel laufen am 19. Januar 2038 über. Die Migration auf 64-Bit ist im Gange.

Schaltsekunden-Fehler

Einige Systeme stürzen ab, wenn Uhren 23:59:60 anzeigen. Schaltsekunden werden bis 2035 abgeschafft.

Sommerzeitübergangs-Fehler

Geplante Aufgaben können während der Sommerzeitumstellung doppelt ausgeführt werden oder ausfallen.

Bewährte Praktiken

  • Intern UTC verwenden: In UTC speichern und verarbeiten; zur Anzeige umrechnen
  • ISO 8601 verwenden: Eindeutiges, sortierbares Format
  • Zeitzoneninformation einschließen: 2024-01-15T14:30:00+05:30, nicht nur „14:30“
  • Über NTP synchronisieren: Alle Server innerhalb von Millisekunden halten
  • Grenzfälle testen: Sommerzeitübergänge, Schaltjahre, Jahresgrenzen
  • 64-Bit-Zeitstempel verwenden: Das 2038-Problem vermeiden

Fazit

Computerzeit umfasst Hardware-Uhren, Betriebssystem-Synchronisation und Netzwerkprotokolle, die zusammenarbeiten. NTP hält Uhren netzwerkweit genau. Speichern Sie Zeiten in UTC mit Zeitzoneninformation; verwenden Sie das ISO-8601-Format für den Datenaustausch. Beachten Sie Grenzfälle wie Sommerzeitübergänge, Schaltsekunden und das 2038-Problem. In verteilten Systemen ist die Uhrensynchronisation grundlegend für die Korrektheit.

Verwandte Artikel

Zeit in der Informatik: Uhren, Zeitstempel und Synchronisation | YounitConverter