Как проверить точность часов компьютера

Как синхронизировать время на компьютере с интернетом?.

Хотя компьютер и является точной машиной, часы в нем (как и любые другие) могут отставать или спешить. Для предотвращения подобных казусов необходима синхронизация времени с помощью службы времени Windows.

По заданному графику ОС сверяет часы с сервером, указанным в настройках. Если значения не равны, системой выполняется корректировка показателей. Изначально в конфигурации уже задано несколько адресов.

Как синхронизировать время на компьютере

Для одноразовой синхронизации нужно проделать следующие действия. Кликнуть левой кнопкой по часам Windows.

Кнопка «Изменение настроек даты и времени» откроет окно настройки. Далее требуется перейти во вкладку «Время по интернету». В ней будет отображен адрес сервера, который указан в настройках, и последняя дата синхронизации.

Нажав на «Изменить параметры», можно будет обновить время.

Автоматизация функции

Чтобы синхронизировать время компьютера с интернетом автоматически, достаточно в последнем окне поставить галочку в единственной клеточке. Если подключиться к северу невозможно или при обновлении времени происходит погрешность, то можно выбрать один из дополнительных серверов, благо ОС предоставляет на выбор целых 5, либо найти адрес в интернете и вписать его в строку «сервер».

Будьте внимательны, последний выбранный сервер останется в настройках по умолчанию, с ним операционная система и будет автоматически синхронизировать время на компьютере с интернетом.

Средства командной строки

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

Чтобы синхронизировать время на компьютере с интернетом при помощи командной строки, откройте меню «Пуск» и выберите «Выполнить» либо просто нажмите Win+R на клавиатуре. В строке окна, которое запустится, напишите cmd, а после нажмите Enter. Так вы войдете в командную строку, следующая команда выполнит обновление времени на локальном компьютере с сервером, установленным по умолчанию:

  • w32tm /resync.

Для настройки сервера, который будет использовать система, чтобы синхронизировать время на локальном компьютере с интернетом, выполните команды:

  • w32tm /config /manualpeerlist:[сервер для синхронизации] /syncfromflags:manual /reliable:yes (эта команда устанавливает сервер, время которого будет использоваться для обновлений);
  • w32tm /config /update (сообщение службе времени о том, что настройки изменились);
  • net stop w32time && net start w32time (перезапуск службы).

Командная строка — это слишком сложно?

Windows — это ОС, функциональность которой может быть расширена дополнительными приложениями. Если при настройке обновления времени вы испытываете сложности, то можно использовать самый просто вариант — скачать программу, которая сделает множество шагов сама и потребует минимального вмешательства. Тем более что такие программы позволяют синхронизировать время с большей точностью, чем стандартные средства системы. Часто они могут учитывать задержки при получении и отправке пакетов и получать адреса серверов из списков в интернете.

Недокументированные настройки

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

Для запуска реестра в строке окна «Выполнить» введите regedit и нажмите Enter. Перейдите в ветку HKEYLM, в ней необходимо развернуть каталог SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient. Найдите параметр SpecialPollInterval. В нем уже будет записано значение 604800. Именно за такое количество секунд проходит одна неделя. Если изменить эту цифру на 3600, время синхронизации будет равно одному часу.

Не рекомендуется вводить в эту графу значения меньше часа и больше суток. Малые значения заметно увеличат интернет-трафик. К тому же если пытаться синхронизировать время каждые несколько секунд, сервер заблокирует ваш IP. При больших значениях не удастся добиться максимальной точности системных часов. После внесения изменений введите символы net stop w32time && net start w32time в командную строку.

Локальная сеть

Если дома или в офисе установлено несколько компьютеров, подключенных по локальной сети, можно использовать один как сервер точного времени. Синхронизация с временем ПК, входящего в локальную сеть, производится так же, как и с серверами в интернете. Но сначала придется запустить сервер NTP на компьютере, время которого будут использовать остальные участники сети.

Для этого откройте реестр и отредактируйте раздел HKLM\System\CurrentControlSet\services\W32Time\TimeProviders\NtpServer. В нем ключу Enabled нужно присвоить значение 1, затем перезапустить службу Windows time из командной строки, напечатав net stop w32time, а после выполнения — net start w32time.

Помните, что теперь ПК эксплуатируется другими пользователями сети в качестве ориентира, не забывайте проверять его работоспособность время от времени. Включен ли сервер, можно проверить командой w32tm /query /configuration. Значение Enabled, равное 1, показывает, что с сервером всё в порядке.

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

Как проверить точность часов компьютера.

Здравствуйте.
Вопрос такого плана: какова предельная точность таймера, работающего на винде ?
Вопрос может не точный/не понятный .
Суть — на шарпе я добился точности счёта в 100 мкс. Хочу выше. Какой предел ? Как добиваться ?

Это зависит от того как эту точность мерить.

В системе есть несколько таймеров.
RDTSC
RTC
PM-Timer (ACPI-timer)
PIT

Дискретность, то с какой частотой отдаёт счётчик таймер.

PIT(i8254) — PROGRAMMABLE INTERVAL TIMER, программируемый интервальный таймер
В таймере есть три канала, которые можно запрограммировать на разные режимы. Такой таймер может выдавать импульс или генерировать прерывания с частотой p/M
где M константа от 1 до 65536. p= 1,19318 МГц – стандартная =f/12 – реальная частота

Значение после сброса для M=65536 пропусков, отсюда
F= р/65536 =18,2065074 Гц

PM TIMER(ACPI TIMER)
PM-Power Manadger
Устройство контроля энергии энергосберегающего контроля питания и аварийного отключения имеет два встроенных счетчик для обеспечения своих нужд по обработки прерываний. Счетчик этот специфический и не имеет строгого адреса он не позволяет вызывать прерывания IRQ но служит таймером высокой частоты. Этот таймер вызывает SMI прерывания. Которые в свою очередь обрабатывается БИОС’ом в специальном режиме процессора SMM. SMI имеет наивысший приоритет среди прерываний. Для реализации ОС реального времени нет ничего страшнее SMI. Он сбивает обработку других таймеров. Но его можно отключить.

APIC TIMER
APIC расширенный контролер прерываний он снабжен таймером с большой частотой. Частота зависит от частоты процессора. Частота делится на константу 2,4,8,16,32,64,128.

HPET — High Precision Event Timers
Частота у HPET больше чем у PIT(i8254). Позволяет подменить каналы старого таймера PIT(i8254). частота стандартная 14,31818 и может быть выше константа считывается.

RTC — Real Time Clock, часы реального времени.
Компьютер снабжен часами и батарейкой. На старых компьютерах такого не было. И каждый день начинался с чистого листа. Оператор включал электронную вычислительную машину и вводил дату и время. С появлением RTC все стало проще. Теперь компьютер умный он научился сам узнавать время.
RTC подключен к генератору с частотой 32.768 КГц. Но сам генерирует прерывания с частотой в зависимости от делителя от 2Гц до 8КГц через степень двойки.
——————————————————

RDTSC — частота порядка 2٫4 ГГц
Частота в большинстве компьютеров постоянна, не меняется во время работы.
Дискретность 4-16 тактов процессора. Что равносильно 1-7 нс.

RTC
Опорная частота 32.768 КГц
Дискретность по умолчанию 1024 Гц. Что равносильно 0,9765625 мс.

PM-Timer (ACPI-timer)
Опорная частота 3,579545 МГц.
Дискретность по умолчанию 3,579545 МГц. Что равносильно 279 нс.

PIT
Опорная частота 1,1918 МГц.
Дискретность от 1/1193180 до 65536/1193180. В зависимости от ОС и её настроек.
65536/1193180 = 54٫92 мс (или 18٫2 Гц).
18076/1193180 = 15٫149432 мс (или 66٫009 Гц).
1193/1193180 = 0٫9984 мс (или 1000 Гц).

Теперь про ошибки PPM это сколько раз кварцевый резонатор ошибётся на 1 милион раз. В ЭВМ типично стоит 2 резонатора.

Один питает RTC другой питает всё остальное.
Тот который стоит в RTC имеет точность 100-150 ppm
Тот который питает PIT и всё остальное имеет порядка 30-50 ppm.

Чем больше температура тем больше ошибок делает кварцевый резонатор.

Точность. Что определяет точность? Точность определяет число значащих цифр в числе и чем их больше, тем точнее число. Точнее таймер
0,5/1431818=0,000000349=0,35*10^-6 это значит, что ошибка будет проявляться через 1 миллионов итераций
0,5/14318=0,35*10^-4 при такой точности ошибка будет заметна при 10 тыс. итераций
0,5/32768=0,15*10^-4 аналогично.

Цифры цифрами, но что они значат в реалии? В стуках 60*60*24=86 400 секунд
Это цифра превышает 10 тыс. Это значит что ошибка в сутках для RTC
,будет составлять 0,15*10^-4*86400=1.32 c.

Тут было выбрано абсолютная ошибка 0,5 из расчета того, что таймер генерирует с заданной частотой. На самом деле это не совсем так погрешность любого кварцевого генератора составляет 30-50 миллионных, для более точных на порядок.
И того имеем погрешность
30*10^-6*86400=2.6 с
50*10^-6*86400=4.32 с
Практика показывает, что оно так и есть ошибка порядка 3,5-4,5 с
Ошибка носит систематический характер.

За неделю набегает полминуты 4*7=28 с.
Почему мы не видим эту ошибку? Всё очень просто каждый день раз в 4 часа виндоус обращается к серверу времени и проводит синхронизацию ваших часов. Сервер времени подключён к системе единого времени(СЕВ)

Все часы в мире ежедневно подстраиваются от часов с атомным стандартом частоты. Эти специальные часы имеют ошибку 10^-14. Для наглядности 1 ppm это 10^-6

Функции FileTime(), DateTime() — как правило привязаны к RTC. Имеют точность 1 секунда.
GetTickCount() — привязан к PIT. Всегда имеет усредненную точность 15٫16 мс (там периодическая последовательность dT = 15 15 15 15 15 16 мс). Тут под словом всегда имеется в виду что в ходе моих экспериментов расхождений не выявлено.

Для игр стоит использовать мультимедийный таймер функции timeGetTime(), timeKillEvent(), и timeSetEvent(). Он уже будет гарантированно работать с точностью 15,16 мс. И при настройке системы 1 мс.

timeBeginPeriod(1); // Устанавливаем время срабатывания мультимедийного таймера в 1мс
Этот параметр влияет на все программы в ОС. Так что не удивляйтесь если другая программа сделала это раньше вас.

Функции
QueryPerformanceFrequency(Freq);
QueryPerformanceCounter(Coun1);

Эти функции привязываются к самому быстрому таймеру по версии ОС и не зависят от частоты процессора. Встречал разные варианты, всё чаще последний вариант.
PIT, ACPI-Timer, APIC-Timer (для краткости аналог RDTSC).

ассемблерная команда
asm
RDTSC
end;

На разных ядрах счётчики RDTSC несинхронны. Поэтому если ОС решит перекинуть вас с ядра на ядро то разница RDTSC()-LastTime может оказаться отрицательной.
Я уже писал о дискретности в 2 нс. Так вот при включении виртуализации значения этого счётчика можно перепрограммировать как захочет гипервизор. Обычно виртуальные машины перехватывают обращение к этому таймеру и его дискретность доходит снижается до 1-10 мкс.

Программа проверки точности часов.

Автор m4202596, 12 ноя 2017, 19:31:47 в Ремонт и реставрация

Рекомендуемые сообщения

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Уже есть аккаунт? Войти в систему.

Последние посетители 0 пользователей онлайн

Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Активность
  • Главная
  • Форум любителей часов CHASY.RU
  • Ремонт и реставрация
  • Программа проверки точности часов

Форум любителей часов © 2016–2018 Powered by Invision Community

Возможно у Вас есть свои мнения на тему «Как проверить точность часов компьютера»? Напишите об этом в комментариях.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Adblock
detector