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

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


от SebastianR 26 Апрель 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?


от Google Adsense [BOT] 26 Апрель 2018, 20:24

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


от Lesio23 26 Апрель 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?  [РЕШЕНО]


от Vogelek23 26 Апрель 2018, 22:14
SebastianR писал(а):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?


от SebastianR 28 Апрель 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?


от Vogelek23 29 Апрель 2018, 15:29
SebastianR писал(а):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?


от SebastianR 4 Май 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?


от Vogelek23 4 Май 2018, 22:45
SebastianR писал(а):Czyli oscylator "wytwarza" sygnał o częstotliwości 32768Hz, a po podziale wewnątrz PCH, FCH, CPU zostaje zawsze 100Hz czy tak?
Tak.

SebastianR писал(а):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 писал(а):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?


от SebastianR 5 Май 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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

_______________________________
Все права защищены. Вы не можете копировать любой контент и элементов этого сайта без разрешения.
Все торговые марки, продукты или услуги, опубликованные на этом сайте принадлежат их законным владельцам, защищены авторским правом и используются только в информационных целях.