Wie verfolgen Computer die Zeit?

69

Wie können Computer die richtige Uhrzeit und das richtige Datum jedes Mal anzeigen?

Immer wenn ich den Computer schließe (herunterfahre), stoppen alle Verbindungen und Prozesse. Wie kommt es, dass beim erneuten Öffnen des Computers die genaue Uhrzeit angezeigt wird? Fährt der Computer beim Herunterfahren nicht vollständig herunter? Laufen noch Prozesse darin? Aber wie zeigt mein Laptop dann die richtige Uhrzeit an, wenn ich den Akku herausnehme (und damit alle Prozesse gewaltsam stoppe) und ihn nach ein paar Tagen erneut starte?

Tatan
quelle
3
Ist diese Frage wirklich ein Thema für diese Site? Es scheint mir angemessener für Super User zu sein.
Ilmari Karonen
3
@IlmariKaronen Dies scheint als Frage zu "Computerarchitektur" zu gelten, wenn ich den Begriff richtig verstehe.
PyRulez

Antworten:

96

Computer haben eine "Echtzeituhr" - ein spezielles Hardware-Gerät (z. B. mit einem Quarzkristall) auf der Hauptplatine, das die Uhrzeit aufrechterhält. Es wird immer mit Strom versorgt, auch wenn Sie den Computer ausschalten. Das Motherboard verfügt außerdem über einen kleinen Akku, mit dem das Uhrengerät auch dann mit Strom versorgt wird, wenn Sie den Computer vom Stromnetz trennen. Der Akku hält nicht ewig, aber er hält mindestens einige Wochen. Dies hilft dem Computer, die Zeit zu verfolgen, auch wenn Ihr Computer ausgeschaltet ist. Die Echtzeituhr benötigt nicht viel Strom, verschwendet also keine Energie. Wenn Sie die Uhrbatterie herausnehmen, die Hauptbatterie entfernen und das Netzkabel abziehen, verliert der Computer den Überblick über die Uhrzeit und fordert Sie auf, Uhrzeit und Datum einzugeben, wenn Sie den Computer neu starten.

Um mehr zu erfahren, sehen Echtzeituhr und CMOS - Batterie und Warum hat mein Motherboard eine Batterie haben .

Wenn Sie Ihren Computer mit einer Internetverbindung verbinden, sucht das Betriebssystem auf vielen Computern einen Zeitserver im Netzwerk und fragt den Zeitserver nach der aktuellen Uhrzeit ab. Das Betriebssystem kann dies verwenden, um die lokale Uhr Ihres Computers sehr genau einzustellen. Dies verwendet das Network Time Protocol , auch NTP genannt.

DW
quelle
1
Kann ein Betriebssystem die BIOS-Zeit einstellen? Was ich meine ist, wenn ich die Hardware-Uhr zwangsweise zurücksetze, dann boote und eine Verbindung zu NTP herstelle oder die Uhr selbst stelle, erkennt das BIOS dies?
Katze
1
Ja. Durch Ändern der Systemzeit des Betriebssystems wird die Echtzeituhr (BIOS-Zeit) eingestellt. Intern zählt die Uhr nur die Anzahl der Sekunden (oder Millisekunden) seit der Epoche (normalerweise am 1. Januar 1970 um 00:00 Uhr), was bedeutet, dass sie nicht viel Arbeit leistet und jahrelang mit einer Knopfbatterie betrieben werden kann. Übergeordnete Funktionen im Betriebssystem übernehmen die Konvertierung dieser Zählung in ein Datum / eine Uhrzeit für die Anzeige.
Chris Nava
Der Quarz ist kein spezielles Hardware-Gerät, das die Zeit verfolgt (obwohl es sich um eine Komponente handelt).
user253751
1
@tatan nein, das Telefon wird die ganze Zeit von seinem Akku mit Strom versorgt. Meistens ist es das Gleiche, als ob Sie Ihren PC einschalten könnten, indem Sie seinen Netzschalter drücken, wenn der PC heruntergefahren sein soll (aber nicht von der Steckdose getrennt).
Ruslan
1
Ich würde den letzten Absatz umformulieren und Computer auf Betriebssysteme umstellen. Jeder PC, der eine Verbindung zum Internet herstellt, funktioniert möglicherweise nicht und umgekehrt - dies ist Aufgabe des Betriebssystems, nicht der PCs (dies setzt Hardware voraus).
MatthewRock
13

Wenn Sie den Akku vom Motherboard entfernen, kann der Computer die Uhrzeit nicht anzeigen.

Dies ist auch bei Mobiltelefonen der Fall. Wenn Sie ein Telefon entladen lassen und es dann länger als ein paar Wochen nicht aufladen, wird auch die Uhrzeit "vergessen", da der kleine Zusatzakku vollständig entladen ist und die Echtzeituhr nicht eingeschaltet ist.

Sie könnten versuchen, ein altes Mobiltelefon einzuschalten, wenn Sie eines haben, und selbst überprüfen, ob es die Zeit vergessen hat.

So sieht der Akku aus. https://yandex.com/images/touch/search?text=mobo%20battery&source=tabbar

Ich musste ein paar Mal einen kaufen, als meine weniger als einen Tag dauerte. Ich musste die Uhr jedes Mal einstellen, wenn ich den PC einschaltete.

yoyo_fun
quelle
3
Viele Betriebssysteme verwenden jetzt NTP (Network Time Protocol) und können dieses Protokoll verwenden, um sich beim Start automatisch zurückzusetzen, sodass sie die eingebaute Uhr nicht benötigen.
James Snell
3
@JamesSnell Dadurch werden jedoch die Zeitstempel in den Protokolldateien sowie alle Dateien, die während des Startvorgangs vor dem Start von NTP geändert wurden, durcheinander gebracht.
Kasperd
@kasperd - Zeitstempel sind nicht mehr so ​​wichtig wie früher, da viele Systeme andere Metadaten verwenden (Versionierung). Sehen Sie sich Boot-Protokolle von Systemen an, denen eine RTC fehlt, wie Router oder das Himbeer-Pi, und sie protokollieren, wann die Uhrzeit aktualisiert wurde (und was zu tun ist). Dies ist in nicht verbundenen Systemen möglicherweise wichtiger, wird jedoch mit der Zeit immer weniger wichtig.
James Snell
1
@JamesSnell Ich habe mehrere Single-Board-Computer, auf denen ein Standard-x86-Betriebssystem ausgeführt werden kann, denen jedoch eine batteriegepufferte Echtzeituhr fehlt. Am Ende ließ ich sie einen absolut minimalen Netzwerkstack von einer Ramdisk ausführen, um "ntpdate" auszuführen, bevor irgendein Plattenzugriff stattfinden würde.
Kasperd
@JamesSnell Ja, aber Laptops und Tablets stellen nach dem Start eine Verbindung zum WLAN her (zumindest die meisten von ihnen tun dies) und haben keine Ethernet-Verbindung, sodass der Akku in fast allen Computern noch verwendet wird. Auch Desktop-Computer haben nicht immer Internet. Einige Leute schließen ihren Router nachts oder nutzen das Internet nicht immer, wenn sie Spiele spielen oder einen Film ansehen möchten und schalten den Router nicht ein. Nicht jeder möchte ständig mit dem Internet verbunden sein.
yoyo_fun
2

Wenn Sie Windows starten, erhält es direkten Zugriff auf den Speicher der Echtzeituhr (Real Time Clock, RTC) und verwendet Datums- und Zeitwerte, um das Datum und die Uhrzeit des Computers festzulegen. Timer-Interrupts behalten die Computerzeit bei, wenn Windows ausgeführt wird. Ein Time Daemon in Windows wird ungefähr einmal pro Stunde nach dem Start von Windows ausgeführt. Der Time Daemon vergleicht die Uhrzeit in Windows mit der Uhrzeit in der Echtzeituhr. Wenn die beiden Zeiten mehr als eine Minute voneinander entfernt sind, ändert Windows die Uhrzeit und das Datum entsprechend der Echtzeituhr. Sie können das Zeitintervall für die Ausführung des Time Daemon nicht ändern.

Wenn Sie einen Zeitsynchronisierungsdienst verwenden, z. B. das im Windows NT 4.0 Resource Kit enthaltene Tool TimeServ.exe, aktualisiert das Tool die Uhrzeit in Windows und die RTC des Computers. Wenn der Windows-Zeitdienst auf einem Windows 2000-basierten Computer ausgeführt wird, kann der Time Daemon in Windows nicht einmal pro Stunde nach dem Start von Windows ausgeführt werden.

Weitere Informationen finden Sie unter folgendem Link: http://msdn2.microsoft.com/en-us/library/ms724936.aspxhttp://msdn2.microsoft.com/en-us/library/ms724942.aspx

Budhathoki Bijaya
quelle
Interessant. Wie ermittelt Windows die aktuelle genaue Zeit (in Mikrosekunden), um auf einen Aufruf eines Programms zu reagieren (z. B. time.time () in Python), und wie oft und wie wird der aktuelle Wert für die Zeit aktualisiert?
Jacanterbury