Хоча відповідь Джоеля правильна, насправді це трохи складніше.
Перше, що потрібно враховувати (і я збираюся зосередитись лише на ПК тут) - це те, що в комп'ютері є кілька годин, і кожен має своє власне використання.
Найпопулярніший і найпростіший для розуміння - годинник у режимі реального часу . Це в основному чіп, який має простий годинник всередині. Зазвичай вони мають той же тип кварцових кристалів, що і стандартні годинники, і зазвичай мають батарею для зберігання часу, коли комп'ютер вимкнений. Проблема з ними полягає в тому, що вони не дуже точні, як видно з посилань Syntech. Кристал 32,768 кГц занадто повільний для будь-якого зберігання часу в сучасних системах, процесори яких знаходяться в мегагерц і гігагерц.
Тут ми переходимо до наступного пункту: Є внутрішні годинники, які використовуються для точних вимірювань часу та відліку часу.
Простий годинник - програмований інтервальний таймер . Що потрібно зробити, це почекати певну кількість часу, а потім надіслати переривання в процесор. Коли процесор отримає переривання, він зупинить все, що робить, і схильний до завдання, яке породило переривання. Таким чином CPU не повинен постійно перевіряти, чи щось робиться. Натомість він може зосередитись на інших робочих місцях і змусити ПДФО сказати, коли робота виконана. ПІТ використовує тактовий джерело 1,193182 МГц і тому набагато більш точний, ніж простий RTC.
Наступна цікава система вимірювання - лічильник часу . Ідея цього полягає в тому, що ми можемо отримати набагато точніші вимірювання часу за допомогою тактового джерела процесора, використовуючи різні системні таймери. У ПІТ є тактова частота 1,193182 МГц, але навіть найдавніші процесори x86 мали набагато більшу тактову частоту. Отже, у нас з'явиться таймер, який оновлюється після кожного встановленого кількості процесорних циклів. У той час процесори мали дуже стабільні тактові годинники, і використання TSC було гарним способом зробити точні вимірювання часу. Однак використання ТСК спричиняє ряд проблем. Різні процесори мають різну кількість галочок і вимірюють час з різною швидкістю. Пізніше, по мірі розвитку технологій, ми отримали сучасні процесори, які можуть змінювати свою частоту. Це основна проблема, тому що годинник процесора вже не постійний, і ми не можемо використовувати його для вимірювання часу.
І тому зараз у нас є точні таймери подій . HPET використовує тактову частоту 10 МГц і тому є більш точним, ніж PIT. З іншого боку, його годинникове джерело не залежить від годин процесора, і його можна використовувати для вимірювання часу, навіть якщо зміни годинника процесора. На відміну від PIT, який працює як зворотний відлік, HPET вимірює час з моменту увімкнення комп'ютера та порівнює поточний час із часом, коли потрібні дії.
Є й інші джерела часу для комп’ютерів, які, на мою думку, потрібно згадати. Деякі комп'ютери підключені до атомних годин і можуть використовувати їх для точного вимірювання часу.
Менш дорогим варіантом і набагато частішим є використання зовнішнього джерела часу для калібрування внутрішніх джерел часу комп’ютера. Наприклад, GPS-приймачі можуть використовуватися для забезпечення високої точності вимірювань часу, оскільки GPS-супутники мають свої внутрішні атомні годинники.
Іншим варіантом, який є менш поширеним, ніж GPS-приймач, є використання спеціального радіоприймача, який декодує інформацію про час, наприклад, з радіостанцій, таких як DCF77. Такі станції часу мають власні джерела часу з високою точністю і передають свій вихід по радіо. Оскільки радіохвилі подорожують зі швидкістю світла, затримка часто незначна.