3

Почему мне нужно синхронизировать время на моем компьютере?

Мои наручные часы дают ошибку не более полсекунды в год без использования NTP-сервера. Зачем мне синхронизировать компьютер с другими компьютерами?

Почему не достаточно установить правильное время один раз?

3 ответа3

7

Часы операционной системы Windows запускаются с тем же значением, что и часы реального времени, когда вы перезагружаете компьютер, но с тех пор они обновляются полностью независимо от RTC через периодические прерывания часов. Таким образом, с течением времени (т.е. во время работы системы) часы операционной системы Windows могут синхронизироваться с фактическими аппаратными часами RTC (т.е. с фактическим временем "настенных часов").

Это происходит потому, что во время работы системы некоторые функции программного обеспечения и операционной системы иногда вынуждены отключать все прерывания, в результате чего операционная система иногда пропускает прерывание часов. Большинство программ, которые отключают все прерывания (включая операционную систему Windows), не держат прерывания отключенными очень долго (обычно это происходит ОЧЕНЬ короткое время - обычно всего несколько микросекунд (не более миллионных долей секунды)), но поскольку они действительно время от времени отключают все прерывания, тики часов, к сожалению, периодически теряются, и со временем они складываются, в результате чего часы операционной системы Windows иногда значительно отличаются от фактического времени "настенных часов" (иногда на несколько минут или больше, в зависимости от загрузки системы и разнообразия и типа программ, запущенных в течение рассматриваемого периода времени).

Ниже описаны другие виды часов, не относящиеся к времени суток, но могут быть полезными.

Больше чтения:

Это руководство предназначено как основное объяснение тактов на самом минималистичном ядре любого цифрового устройства. Это ни в коем случае не исчерпывающее руководство, но, надеюсь, это скорее введение в людей, которые действительно озадачены работой компьютеров.

Мир компьютеров является бинарным. Независимо от того, насколько сложны микросхема или архитектура, цифровые компоненты полагаются на 1 и 0, включения и выключения. Но если компьютер представляет собой просто серию коммутаторов, как он может выполнять ежедневные задачи, которые мы считаем само собой разумеющимся? Он имеет дело со сложной и разнообразной реализацией двухпозиционного переключателя, транзистора.

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

В идеальном мире переключатели (например, транзисторы) будут работать за нулевое время. Другими словами, они мгновенно переходят от 0 к 1 или от 1 до 0. С современной технологией это невозможно, и это создает проблему при построении сложных цифровых систем. В зависимости от сложности логической функции количество транзисторов варьируется. Это приводит к проблеме интеграции многих логических функций, работающих бок о бок.

Давайте рассмотрим пример добавления двух чисел и сохранения результата в памяти. Функция сложения потребует гораздо больше транзисторов, чем простая функция хранения. Поскольку в функции сложения больше транзисторов, для прохождения сигнала через сумматор требуется больше времени, чем для прохождения через логику хранения. Это вызывает нестабильность в системе. Поскольку функция хранения завершится раньше, чем сумматор, она может сохранить неверное значение.

Подумайте о двух людях, идущих. Вы помещаете одного человека на прямой путь 1 км, а другого - на волнистый путь 2 км и говорите им пересечь финишную линию одновременно. Второму человеку требуется намного больше времени, чтобы пройти их путь, поэтому ясно, что первый человек должен ждать, чтобы пересечь черту. Вот где приходит идея тактирования.

Цифровые системы используют часы как механизм "останови и жди", чтобы все функции внутри чипа работали на одной странице. Тактовый импульс должен быть достаточно длинным, чтобы все операции могли достичь стабильного состояния. Таким образом, операции "пересекают финишную черту одновременно". Теперь дело не в том, что часы заставляют все "ждать", а в том, что микросхемы и функции работают только во время определенных фаз тактового импульса следующим образом. По большей части они работают во время:

  • передний фронт (момент, когда часы идут от 0 до 1)
  • спадающий фронт (от 1 до 0)
  • Привет правда: работает, пока часы 1
  • Low true: работает до тех пор, пока часы равны 0

Разгон использует эту стабильность. Увеличивая время, вы уменьшаете время ожидания, доступное для стабилизации функций. Если вы используете пример с сумматором и хранилищем и слишком сильно увеличиваете время, вы в конечном итоге сохраняете данные на полпути в процессе сложения (как если бы не было вообще часов), так что это может быть совершенно неверно. Это вызывает нестабильность, которая присуща чрезмерному разгону.

Снаружи функция цифрового устройства вызывает недоумение (мультиплексирование для тех из вас, кто знает цифровые системы :-P). Тем не менее, когда вы разбиваете это на суть того, что происходит, с 1 и 0, это не совсем трудно понять. Я надеюсь, что это помогло кому-то получить общее представление о том, что происходит в компьютере, мобильном телефоне, камере или любом количестве устройств на рынке сегодня.

4
  • Так что вам никогда не придется его устанавливать.
  • Таким образом, все узлы в сети одинаковы с высокой точностью. Некоторым приложениям это необходимо, например, даты файлов в общих файловых системах, если вы пытаетесь определить, в каком порядке происходили события.
4

Я понимаю, что это в основном вопрос цены / прибыльности. Позвольте мне объяснить: все хронометраж в компьютерах происходит через генераторы, электронные схемы, которые генерируют сигнал с определенной частотой (обычно в диапазоне от нескольких кГц до нескольких МГц). Тем не менее, ни один осциллятор не является на 100% точным, внешние воздействия, такие как напряжение питания, температура, излучение, электромагнитные воздействия и т.д., Влияют на генерируемую частоту. Все они могут быть более или менее скомпенсированы (как показывают довольно точные цифровые наручные часы), но это требует дополнительных усилий. Кроме того, для обеспечения высокой точности потребуется калибровка каждой материнской платы в отдельности (возможно, даже в течение более длительного периода времени).

Поскольку точное распределение времени не является приоритетным в обычных компьютерах, системные платы компьютера не слишком оптимизированы для этой цели и, следовательно, точности внутренних часов (будь то «часы реального времени», которые хранят время, пока компьютер выключен). или время выполнения, предоставляемое процессором) ограничено.

Производители материнских плат не имеют стимулов для добавления дополнительных схем или калибровки генераторов, чтобы сделать часы более точными: для обычного использования достаточно точности часов (наравне с дешевыми наручными часами, 2-3 секунды в месяц). Для лучшей точности, легко синхронизировать с сервером времени NTP через Интернет. Для людей, которым нужна очень высокая точность или которые хотят выступать в качестве сервера NTP, существует специальное оборудование (пример), которое получает время от атомных часов через DCF77 или GPS (да, у спутников GPS есть атомные часы внутри).

В конечном счете, сделать компьютерные часы очень точными слишком дорого, чтобы встроить их в каждый компьютер, особенно с учетом существующих дешевых решений, таких как серверы времени NTP. Например, Windows автоматически синхронизирует время с сервером времени Microsoft.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .