• Skąd komputer "wie" która godzina?

#1 Skąd komputer "wie" która godzina?


przez SebastianR 26 kwietnia 2018, 20:24
Witam,

Dziś pytanie odnośnie zegara czasu rzeczywistego (chyba tak to się "zwie") :) Pytanie jak w temacie - jak to działa że komputer wie jaką mamy godzinę?

Pytanie pewnie dla wielu banalne - a dla mnie ciekawa sprawa :)

Z góry dziękuję za informację :)

Re: Skąd komputer "wie" która godzina?


przez Google Adsense [BOT] 26 kwietnia 2018, 20:24

#2 Re: Skąd komputer "wie" która godzina?


przez Lesio23 26 kwietnia 2018, 21:23
Do tego między innymi służy bateria CMOS. To ona odpowiada za datę oraz godzinę. Gdy się wyczerpie, to nawet ręczna zmiana daty i godziny nie pomaga, ponieważ ustawienia działają do następnego restartu komputera.

#3 Re: Skąd komputer "wie" która godzina?  [ROZWIĄZANY]


przez Vogelek23 26 kwietnia 2018, 22:14
SebastianR napisał(a):jak to działa że komputer wie jaką mamy godzinę?
W przypadku, gdy komputer jest wyłączony i odłączony od źródeł zasilania (bateria, ładowarka), działanie generatora RTC jest zwykle podtrzymywane przez wewnętrzną baterię RTC, dzięki której licznik czasu wewnątrz mostka PCH (lub FCH, mostka południowego bądź hybrydowego procesora) działa bez przerwy i nadal liczy czas z częstotliwością 100Hz (czyli sto okresów zegarowych na sekundę). Po podłączeniu komputera do źródła zasilania i jego włączeniu, generator RTC podaje poprawny dla bieżącego czasu stan licznika czasu do uruchamianego systemu operacyjnego (a właściwie to system operacyjny sam pobiera sobie stan tego licznika) i dzięki temu prezentowany jest aktualny czas (data i godzina). Jeśli komputer nie posiada wewnętrznej baterii RTC (znakomita większość laptopów Apple), odłączenie wszystkich źródeł zasilania spowoduje (między innymi) zresetowanie licznika czasu. Po uruchomieniu komputera licznik jest wtedy ustawiany na jakąś (zdefiniowaną przez projektanta urządzenia) wartość domyślną - tak samo jak wyświetlana przez system operacyjny data i godzina. Natychmiast po podłączeniu do jakiegokolwiek źródła zasilania, generator RTC wznawia pracę i zaczyna liczyć czas. Jeśli system operacyjny jest podłączony do sieci (Wi-Fi, LAN itd), pobierze sobie aktualny czas z internetowych serwerów czasu i ustawi licznik czasu (synchronizuje z licznikiem serwera) na bieżącą wartość. Jeśli komputer nie jest podłączony do żadnej sieci, będzie liczył czas od tej zresetowanej wartości.

Generator zegara czasu rzeczywistego (generator RTC - Real Time Clock) to w istocie oscylator, generujący przebieg sinusoidalny o częstotliwości dokładnie 32768Hz (im bardziej dokładna jest ta częstotliwość, tym bardziej dokładnie działa zegar). Ta częstotliwość jest stabilizowana kwarcem o takiej samej częstotliwości, następnie jest dzielona (zwykle kilkukrotnie) wewnątrz kontrolera (PCH, FCH, CPU itd), co w wyniku daje wzorcową częstotliwość 100Hz. Dzięki temu licznik czasu jest zwiększany o 100 co każdą sekundę (a właściwie to o 1 co każde 1/100 sekundy). Dlaczego co 1/100 sekundy a nie co 1 sekundę? Bo komputer musi być w stanie działać także jako stoper - z tego względu licznik czasu jest często poszerzany z liczby całkowitej do liczby o dokładności dwóch miejsc po przecinku. Dla przykładu, jeśli zresetowana wartość licznika czasu wynosi 0000000000 (co w przypadku uniksowego znacznika czasu oznacza 1 stycznia 1970, godz. 00:00 UTC), to gdy generator zacznie pracować, po 2 pełnych dobach (48 godzin) stan licznika będzie wynosił 0017280000 (co odpowiada dacie 20 lipca 1970, godz. 00:00 UTC). W komputerach zwykle wartość początkowa licznika jest większa, niż 0 - np. wartość licznika 1000000000 oznacza datę 9 września 2001, godz. 01:46:40 UTC. Dla wartości domyślnej 1500000000 data to 14 lipca 2017, godz. 02:40:00 UTC. Tak właśnie działa liczenie i "zapamiętywanie" czasu w komputerach :)

#4 Re: Skąd komputer "wie" która godzina?


przez SebastianR 28 kwietnia 2018, 20:23
Serdecznie dziękuje obydwu Panom @Lesio23, @Vogelek23 za odpowiedź, zwłaszcza @Vogelek23 dziękuję za rozwinięcie tematu :)

1 część posta rozumiem w 100%
2 (tę o RTC) nadal trawię, ale póki co nie będę zamęczał kolejnymi pytaniami :)

Serdecznie dziękuję za pomoc i poświęcony czas.

SebastianR

#5 Re: Skąd komputer "wie" która godzina?


przez Vogelek23 29 kwietnia 2018, 15:29
SebastianR napisał(a):2 (tę o RTC) nadal trawię, ale póki co nie będę zamęczał kolejnymi pytaniami :)
Pytaj śmiało - ten dział jest właśnie po to, żebyś "zamęczał" pytaniami, na które (jeszcze) nie znasz odpowiedzi i rozwiewał wszelkie wątpliwości.

#6 Re: Skąd komputer "wie" która godzina?


przez SebastianR 4 maja 2018, 20:09
Dziękuję bardzo :) No to pytam dalej:

(generator RTC - Real Time Clock) to w istocie oscylator, generujący przebieg sinusoidalny o częstotliwości dokładnie 32768Hz (im bardziej dokładna jest ta częstotliwość, tym bardziej dokładnie działa zegar). Ta częstotliwość jest stabilizowana kwarcem o takiej samej częstotliwości, następnie jest dzielona (zwykle kilkukrotnie) wewnątrz kontrolera (PCH, FCH, CPU itd), co w wyniku daje wzorcową częstotliwość 100Hz


Czyli oscylator "wytwarza" sygnał o częstotliwości 32768Hz, a po podziale wewnątrz PCH, FCH, CPU zostaje zawsze 100Hz czy tak?

Czy PCH, FCH to pojęcia te same pojęcia co z działu SZKOLENIA (pytanie stricte kontrolne żeby to sobie usystematyzować)? : :?

I teraz to co dla mnie na chwilę obecną jest czarną magią:

Dla przykładu, jeśli zresetowana wartość licznika czasu wynosi 0000000000 (co w przypadku uniksowego znacznika czasu oznacza 1 stycznia 1970, godz. 00:00 UTC)


Skąd z licznika 0000000000 bierze się ta data?

Z góry przepraszam, jeżeli pytanie wyda się absurdalne, ale tu wymiękam ;)

#7 Re: Skąd komputer "wie" która godzina?


przez Vogelek23 4 maja 2018, 22:45
SebastianR napisał(a):Czyli oscylator "wytwarza" sygnał o częstotliwości 32768Hz, a po podziale wewnątrz PCH, FCH, CPU zostaje zawsze 100Hz czy tak?
Tak.

SebastianR napisał(a):Czy PCH, FCH to pojęcia te same pojęcia co z działu SZKOLENIA (pytanie stricte kontrolne żeby to sobie usystematyzować)?
Tak. W platformach sprzed 2009 roku generator RTC jest wbudowany w most południowy (SB), w nowszych są to właśnie PCH/FCH, a w płytach "jednoukładowych" - hybrydowe CPU.

SebastianR napisał(a):Skąd z licznika 0000000000 bierze się ta data?
Czas uniksowy (ang. "Unix time") to standard prezentacji czasu od chwili, gdy rozpoczęła się epoka Unixa (t.zw. czas 0, czyli dokładnie 1 stycznia 1970 roku, godz. 00:00:00 UTC). W istocie ta 16-bitowa liczba - tzw. timestamp, czyli znacznik czasu - to ilość sekund, jaka upłynęła od "czasu 0". Standard ten został stworzony przez trzech programistów w 1969 roku i przyjęty oraz wykorzystywany przez większość urządzeń elektronicznych i języków programowania, które posiadają funkcję mierzenia/prezentacji aktualnego czasu. Pośrednim celem takiej prezentacji czasu było to, że mieści się ona w liczbie 32-bitowej (4-bajtowej), zaś na przykład czas w bardziej nam znanym formacie (np. 01/01/1970, 00:00:00) zajmuje 20 bajtów, a więc 5-krotnie więcej.

Obecnie system ten zostaje sukcesywnie wypierany przez jego 64-bitowy (8-bajtowy) odpowiednik, bo 32-bitowa liczba może osiągnąć maksymalną wartość 2147483647 (czyli 2[super]31[/super]-1 sekund) , co odpowiada dacie 19 stycznia 2038, godz. 03:14:07 UTC - po której liczniki czasu uniksowego zachowają się nieprzewidywalnie (albo zostaną zresetowane i czas będzie liczony od 0, czyli od 1 stycznia 1970 roku, albo przyjmą wartość ujemną i zaczną liczyć od tyłu, czyli od 13 grudnia 1901 roku). Nazywa się to "problemem 2038 roku". 64-bitowy odpowiednik czasu uniksowego potrafi natomiast "pomieścić" czas niemal 300 miliardów lat (dla porównania, wiek naszej planety Ziemi szacuje się na ok. 4,5 miliarda lat).

#8 Re: Skąd komputer "wie" która godzina?


przez SebastianR 5 maja 2018, 12:25
@Vogelek23 Bardzo dziękuję, teraz już kumam o co chodzi :)

Z uwagi na to iż:

19 stycznia 2038, godz. 03:14:07 UTC - po której liczniki czasu uniksowego zachowają się nieprzewidywalnie...


Można wywnioskować, że z uwagi na to iż mamy rok 2018 "UNIX-owym" licznikom czasu..... kończy się czas :lol:

Po raz kolejny WIELKIE DZIĘKI za poświęcony czas!

Pozdrawiam!

SebastianR

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości

_______________________________
Wszelkie prawa zastrzeżone. Zabrania się kopiowania jakichkolwiek treści i elementów witryny bez zezwolenia.
Wszelkie opublikowane na tej stronie znaki handlowe, nazwy marek, produktów czy usług należą do ich prawnych właścicieli i zostały użyte wyłącznie w celach informacyjnych.