Як комп'ютери відстежують час?


68

Як комп’ютери здатні щоразу визначати правильний час та дату?

Щоразу, коли я закриваю комп'ютер (вимикаю його), всі з'єднання та процеси всередині зупиняються. Як це відбувається, коли я знову відкриваю комп'ютер, він вказує точний правильний час? Чи комп'ютер не вимикається повністю, коли я його вимикаю? Чи все ще в ньому працюють якісь процеси? Але тоді як мій ноутбук підкаже правильний час, коли я виймаю акумулятор (і таким чином насильно зупиняю всі процеси) і запускаю його знову через кілька днів?


3
Це питання справді тематичне для цього сайту? Мені це здається більш підходящим для Super User .
Ільмарі Каронен

3
@IlmariKaronen Це, здається, вважається питанням про "архітектуру комп'ютера", якщо я правильно розумію цей термін.
PyRulez

Відповіді:


96

Комп'ютери мають "годинник в режимі реального часу" - спеціальний апаратний пристрій (наприклад, містить кристал кварцу) на материнській платі, який підтримує час. Він завжди живиться, навіть коли ви вимикаєте комп'ютер. Крім того, на материнській платі є невеликий акумулятор, який використовується для живлення годинникового пристрою навіть при відключенні комп'ютера від живлення. Акумулятор не працює вічно, але він прослужить принаймні кілька тижнів. Це допомагає комп'ютеру відслідковувати час, навіть коли комп'ютер вимкнено. Годиннику в режимі реального часу не потрібно багато енергії, тому він не витрачає енергію. Якщо ви виймете акумулятор годинника на додаток до вилучення основного акумулятора та відключення кабелю живлення, комп'ютер втратить час та попросить вас ввести час і дату при перезапуску комп'ютера.

Щоб дізнатися більше, перегляньте статтю в режимі реального часу та акумулятор CMOS та Чому у моєї материнської плати є акумулятор .

Крім того, на багатьох комп’ютерах під час підключення комп'ютера до підключення до Інтернету ОС буде шукати сервер часу в мережі та запитувати сервер часу на поточний час. ОС може використовувати це, щоб дуже точно встановити місцевий годинник вашого комп'ютера. Для цього використовується мережевий протокол часу , який також називається NTP.


1
Чи може ОС встановити час BIOS? Що я маю на увазі, якщо я насильно скидаю апаратний годинник, після цього завантажуюся та підключаюся до NTP або встановлюю годинник сам, чи визнає BIOS це?
кіт

1
Так. Зміна системного часу ОС встановлює годинник у режимі реального часу, також час BIOS. Внутрішній годинник просто підраховує кількість секунд (або мілісекунд) з часів епохи (як правило, 1 січня 1970 00:00), тому він не робить великої роботи і може живитись батареєю розміру монети роками. Функції вищого рівня в ОС виконують роботу по перетворенню рахунку в дату / час для відображення.
Кріс Нава

Кварцовий кристал - це не спеціальний апаратний пристрій, який відстежує час (хоча це один компонент).
користувач253751

1
@tatan ні, телефон весь цей час живиться від акумулятора. Це в основному те саме, що ви можете увімкнути ПК, натиснувши його кнопку живлення, коли ПК, як передбачається, було вимкнено (але не відключено від розетки).
Руслан

1
Я б перефразував останній абзац, змінивши комп’ютери на ОС. Будь-який ПК, який підключається до Інтернету, може не робити, і навпаки - це завдання ОС, а не ПК (маючи на увазі апаратне забезпечення).
MatthewRock

13

Якщо ви виймете акумулятор на материнській платі, комп'ютер не міг би визначити час.

Це також стосується мобільних телефонів. Якщо ви дозволите телефон розряджатися, а потім не заряджати його довше декількох тижнів, це також «забуде час», тому що невеликий допоміжний акумулятор повністю розряджений і нічого не живить на годиннику в режимі реального часу.

Ви можете спробувати живити старий мобільний телефон, якщо у вас є, і перевірити його, щоб побачити, що він "забув час".

Ось так виглядає акумулятор. https://yandex.com/images/touch/search?text=mobo%20battery&source=tabbar

Мені довелося придбати один раз, коли мій почав пробувати менше, ніж за день. Мені довелося налаштувати годинник щоразу, коли я включав ПК.


3
Зараз багато операційних систем використовують NTP (Network Time Protocol) і можуть використовувати його для автоматичного скидання під час запуску, тому їм фактично не потрібен вбудований годинник.
Джеймс Снелл

3
@JamesSnell Це, однак, зіпсує часові позначки в логінах, а також будь-який файл, змінений під час завантаження перед запуском NTP.
kasperd

@kasperd - часові позначки насправді не такі важливі, як раніше, оскільки багато систем використовують інші метадані (версії). Подивіться на журнали завантаження із систем, у яких відсутні маршрутизатори, як маршрутизатори або малинові пі, і вони реєструються, коли час оновлювався (і що робити). Це може бути важливішим у відключених системах, але це стає менш важливим з часом.
Джеймс Снелл

1
@JamesSnell У мене є декілька одноплатних комп'ютерів, здатних працювати зі стандартною операційною системою x86, але у них відсутні RTC з підтримкою акумулятора. Врешті-решт я змусив їх запустити абсолютний мінімальний стек мережі зсередини ramdisk для того, щоб запустити `ntpdate 'перед тим, як матиметься доступ до будь-якого диска.
kasperd

@JamesSnell Так, але ноутбуки та планшети підключаються до Wi-Fi після завантаження (принаймні більшість з них це робить), і вони не мають підключення до Ethernet, тому акумулятор все ще використовується майже на всіх комп’ютерах. Також настільні комп’ютери також не мають Інтернету постійно. Деякі люди закривають маршрутизатори вночі або просто не користуються Інтернетом весь час, якщо хочуть грати в ігри або дивитися фільм і не включати роутер. Не всі хочуть постійно підключатися до Інтернету.
yoyo_fun

2

Коли ви запускаєте Windows, він отримує прямий доступ до пам'яті годинника в режимі реального часу (RTC) і використовує його значення дати та часу для встановлення дати та часу на комп'ютері. Таймер перериває підтримку комп'ютерного часу під час роботи Windows. Демон часу в Windows працює приблизно раз на годину після запуску Windows. Демон часу порівнює порівняння часу в Windows з часом роботи в RTC. Якщо два рази відстають більше однієї хвилини, Windows змінює час і дату, щоб вони відповідали RTC. Ви не можете змінити інтервал часу для запуску Демон-часу.

Якщо ви використовуєте службу синхронізації часу, наприклад інструмент TimeServ.exe, що входить до комплекту ресурсів Windows NT 4.0, інструмент оновлює час у Windows та RTC комп'ютера. Якщо служба часу Windows працює на комп'ютері під керуванням Windows 2000, Демон часу в Windows не може працювати приблизно один раз щогодини після запуску Windows.

Для отримання більш детальної інформації перейдіть за цим посиланням: http://msdn2.microsoft.com/en-us/library/ms724936.aspxhttp://msdn2.microsoft.com/en-us/library/ms724942.aspx


Цікаво. Тож як Windows визначає поточний точний час (до мікросекунд) для відповіді на виклик програми (наприклад, time.time () у python), і як часто та як оновляє її поточне значення для часу?
jacanterbury
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.