Расчёт времени в современных компьютерных системах работает следующим образом: 1
- Когда компьютер выключен, время отсчитывает специальное устройство — часы реального времени (RTC), которое питается от батареи. 1
- При запуске компьютера операционная система забирает время из RTC и начинает отслеживать время самостоятельно, используя таймер процессора. 1
- Время от времени операционная система получает точное время через интернет — для этого используется протокол сетевого времени (NTP). 1 Этот протокол даже учитывает время передачи данных между источником и компьютером и компенсирует его. 1
- Чтобы узнать, как долго включён компьютер, системе достаточно умножить размер периода между тиками (срабатывания таймера) на количество этих тиков. 1 Чтобы узнать текущее время, нужно просто добавить прошедшее время к времени на момент старта системы. 1
Также в качестве источника времени может использоваться тактовый генератор процессора. 3 Текущий номер такта сохраняется в регистре TSC (timestamp counter), и с его помощью можно как узнавать время от начала работы, так и замерять интервалы времени с помощью двух чтений. 3