Часы операционной системы 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, это не совсем трудно понять. Я надеюсь, что это помогло кому-то получить общее представление о том, что происходит в компьютере, мобильном телефоне, камере или любом количестве устройств на рынке сегодня.