Каждый раз после выключения время уходит вперед
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.217.140] |
|
|
Правила раздела Hardware:
Каждый раз после выключения время уходит вперед
|
|
|
|
|
Каждый раз после выключения компьютера и последующего включения через более 1 часа время на компьютере уходит вперед минут от 8 до 30 из-за чего это может быть?
Windows 7 64 |
|
Сообщ.
#2
,
|
|
|
|
Посмотри в биосе, оно там уходит, или только в винде? Какая мамка?
|
|
Сообщ.
#3
,
|
|
|
|
Не выключая компьютер с момента первого поста время отстало на 1 минуту.
Материнская плата: ABIT IP35 Pro(Intel P35-ICH9R) Добавлено Цитата ^D^ima @ Посмотри в биосе, оно там уходит, или только в винде? Пока только в Windows время не правильно, в биосе надо будет проверить. |
|
Сообщ.
#4
,
|
|
|
|
Батарейку замени
|
|
Сообщ.
#5
,
|
|
|
|
Цитата Besha @ Батарейку замени Это не вариант, так как время при включенном компьютере уходит или отстает. Обычно когда батарейка садится время сбивается на дату по умолчанию. |
|
Сообщ.
#6
,
|
|
|
|
DMX_XC
не факт, на дефолт сбрасывается, когда батарейке совсем каюк, а когда она подсевшая то начинается вот такое с временем Цитата DMX_XC @ Пока только в Windows время не правильно, в биосе надо будет проверить. в биосе будет такоеже или от куда по твоему венда берет время? |
|
Сообщ.
#7
,
|
|
|
|
Цитата в биосе будет такоеже или от куда по твоему венда берет время? Винда не только читать, но и устанавливать время умеет. Поэтому имеет смысл убедиться в том, что проблема железячная. Цитата на дефолт сбрасывается, когда батарейке совсем каюк, а когда она подсевшая то начинается вот такое с временем Поддерживаю. Всяческие глюки могут быть. |
|
Сообщ.
#8
,
|
|
|
|
Не уверен, что винда всегда пишет изменяемое время в BIOS. Лучше зайти и убедиться.
|
|
Сообщ.
#9
,
|
|
|
|
Что-то я совсем запутался, как эта винда работает.
Насколько я понял после гугления, RTC работает сам по себе, а таймер винды(он же "часы реального времени" винды) сам по себе, увеличивая счётчик миллисекунд по прерыванию то ли от таймера ACPI, то ли ещё от какого-то. Периодически винда синхронизирует(может синхронизировать) свои "часы" с RTC. Есть у меня ноутбук, часы на нём отстают, сильно остают. Из GetSystemTimeAdjustment получаю значения 156250,165250,true. Читаю справку: Цитата BOOL WINAPI GetSystemTimeAdjustment( _Out_ PDWORD lpTimeAdjustment, _Out_ PDWORD lpTimeIncrement, _Out_ PBOOL lpTimeAdjustmentDisabled ); Parameters lpTimeAdjustment [out] A pointer to a variable that the function sets to the number of lpTimeIncrement100-nanosecond units added to the time-of-day clock for every period of time which actually passes as counted by the system. This value only has meaning if lpTimeAdjustmentDisabled is FALSE. lpTimeIncrement [out] A pointer to a variable that the function sets to the interval in 100-nanosecond units at which the system will add lpTimeAdjustment to the time-of-day clock. This value only has meaning if lpTimeAdjustmentDisabled is FALSE. lpTimeAdjustmentDisabled [out] A pointer to a variable that the function sets to indicate whether periodic time adjustment is in effect. A value of TRUE indicates that periodic time adjustment is disabled, and the system time-of-day clock advances at the normal rate. In this mode, the system may adjust the time of day using its own internal time synchronization mechanisms. These internal time synchronization mechanisms may cause the time-of-day clock to change during the normal course of the system operation, which can include noticeable jumps in time as deemed necessary by the system. A value of FALSE indicates that periodic time adjustment is being used to adjust the time-of-day clock. For each lpTimeIncrement period of time that actually passes, lpTimeAdjustment will be added to the time of day. If the lpTimeAdjustment value is smaller than lpTimeIncrement, the system time-of-day clock will advance at a rate slower than normal. If the lpTimeAdjustment value is larger than lpTimeIncrement, the time-of-day clock will advance at a rate faster than normal. If lpTimeAdjustment equals lpTimeIncrement, the time-of-day clock will advance at its normal speed. The lpTimeAdjustment value can be set by calling SetSystemTimeAdjustment. The lpTimeIncrement value is fixed by the system upon start, and does not change during system operation. In this mode, the system will not interfere with the time adjustment scheme, and will not attempt to synchronize time of day on its own via other techniques. Первый параметр - сколько 100 нс интервалов винда(ХР) прибавляет к своим "часам" на каждый тик системного таймера( по умолчанию, 15,625 мс) Второй параметр - интервал тикания системного таймера(аналогично, по умолчанию 15,625мс). Причём оба параметра имеют имеют смысл только в том случае, если третий параметр false(запоминаю). Третий параметр: если true, таймер работает с нормальной(?) скоростью, корректировка времени отключена, используется интервал по умолчанию 15,625 мс, а для синхронизации времени винда использует какие-то свои тайные механизы. В результате работы этих механизмов, "время" винды порой может изменяться скачкообразно, видимо, во время выполнения синхронизации показаний "часов" винды с чем-то ещё(RTC? сервер NTP, что-то ещё?); если false, то на каждый тик таймера (с интервалом как бы 15,625 мс) винда прибавит к своим "часам" lpTimeAdjustment, вместо стандартного интервала 15,625мс. Т.е., можно регулировать "ход" системного таймера винды(он же "часы реального времени") при помощи теперь уже setsystemtimeadjustment, куда передаются только два параметра lpTimeAdjustment и этот самый lpTimeAdjustmentDisabled, который может быть true и false. lpTimeIncrement не меняется, он всегда равен 156250 в XP. Так вот. Из консоли запускаю w32tm.exe и оцениваю дельту времени с ntp сервером; дельта постоянно увеличиватся, на глаз де-то на 2.5-5 мс/с. Выполняю синхронизацию "часов" средствами винды, снова GetSystemTimeAdjustment с результатом 156270(могут быть и другие значения),156250(логично), flase(!?). Ага, теперь винда не использует свои суровые механизмы синхронизации, и прибавляет не 15,625 мс, а 15,627 мс на каждый тик? Почему? Почему не используются суровые тайные механизмы винды? Винда после разговора с NTP сервером посчитала, что таймер компа, куда её установили, или локальный источник синхронизации(?) ненадёжен? Часы как отставали так и отстают. . Подбираю lpTimeAdjustment, и наконец, вызов setsystemtimeadjustment с параметрами 157250, false даёт нужный результат. В течении часа дельта остаётся примерно постоянной(систему ничем не нагружаю). Ага, а что будет, если вызвать setsystemtimeadjustment с lpTimeAdjustmentDisabled, установленным в true? По идее, система должна вернуться к интервалам по умолчанию, и снова перевести свои "часы" в "режим отставания". На самом деле, ничего такого не происходит, "часы" продолжают тикать относительно точно, хотя GetSystemTimeAdjustment возращает как и должен 157250,156250,true. Вот такая странная история. Осталось ещё проверить ход часов в БИОСе, без загрузки системы, и надеяться, что БИОС достаёт время из RTC, а то мало ли. Меня начали терзать смутные сомнения, какое "время" возвращает GetSystemTime? Запустил мультимедийный таймер с периодом 1000 мс. На каждый тик(получается раз в секунду) вызываю getsystemtime и считаю, сколько времени прошло с момента предыдущего вызова. Если не использовать корректировку "часов", то интервал, полученный из getsystemtime точно соответствуют интервалу "1000 мс". Т.е., часы и мультимедийный таймер тикают одинаково. Если откорректировать ход "часов" винды при помощи setsystemtimeadjustment, появляются расхождения между интервалами мультимедийного таймера и временем, вычисленным из значений, возращаемых GetSystemTime. В общем, не понимаю я, как эта винда работает. Добавлено Цитата Ага, а что будет, если вызвать setsystemtimeadjustment с lpTimeAdjustmentDisabled, установленным в true? По идее, система должна вернуться к интервалам по умолчанию, и снова перевести свои "часы" в "режим отставания". На самом деле, ничего такого не происходит, "часы" продолжают тикать относительно точно, хотя GetSystemTimeAdjustment возращает как и должен 157250,156250,true. Ой, оказывается спустя какое-то время(через час? ), винда то ли вспоминает про lpTimeAdjustmentDisabled=true, переданный ей в setsystemtimeadjustment, то ли по каким-то иным мотивам, но снова задействует свои тайные механизмы и восстанавливает lpTimeAdjustment = 156250, . |
|
Сообщ.
#10
,
|
|
|
|
RTC за время сеанса используется только один раз - при загрузке системы время из него считывается и устанавливается системное время. После этого системные часы и RTC идут совершенно независимо.
Консольная команда TIME вроде бы устанавливает время и в системых часах и в RTC. Вроде бы аналогично действует ручная перестановка времени в настройках времени. При корректировке времени по NTP RTC точно не корректируется. Цитата Prince @ А больше ему неоткуда время доставать. Именно RTC он и показывает (в реальном времени). надеяться, что БИОС достаёт время из RTC, а то мало ли. |
|
Сообщ.
#11
,
|
|
|
|
Цитата При корректировке времени по NTP RTC точно не корректируется. Во всяком случае, если синхронзацию выполнять "вручную", то корректируется. Не понимаю пока причин и смысла НЕ корректировать RTC по NTP, если такая возможность есть. Цитата RTC за время сеанса используется только один раз - при загрузке системы время из него считывается и устанавливается системное время. После этого системные часы и RTC идут совершенно независимо. Тогда каков механизм синхронизации системных часов? Цитата In this mode, the system may adjust the time of day using its own internal time synchronization mechanisms. These internal time synchronization mechanisms may cause the time-of-day clock to change during the normal course of the system operation, which can include noticeable jumps in time as deemed necessary by the system. Что это за внутренние механизмы синхронизации? |
|
Сообщ.
#12
,
|
|
|
|
Строго говоря системные часы должны работать даже при отсутствии часов реального времени. В этом случае система при загрузке должна спросить текущие дату/время у того, кто производит загрузку. Так было в мэйнфреймах, и в первых PC. Потом появились энергонезависимая память для хранения настроек BIOS, а вскоре эту память объединили с часами. Ход часов не регулировался, хотя можно было уже после загрузки DOS программно корректировать время. Я по крайней мере когда-то давно писал такую программу. Она проверяла, сколько (по аппаратным часам) прошло времени с предыдущего запуска, спрашивала время, и вычисляла на сколько надо корректировать ход часов. Сейчас часы по ощущениям стали поточнее, вдобавок появилась возможность подстройки часов по сети.
Системные часы реализованы как программный счётчик прерываний. Сколько-то раз в секунду происходит прерывание и по каждому такому прерыванию программа системных часов увеличивает на некоторое значение системное время. Раз в 2, вроде, часа (настраивается), система пытается связаться с сервером "точного" времени, определяет, на сколько отличается время и на сколько произошел уход часов, и в соответствии с этим уходом корректирует константу приращения, чтобы к следующей проверке часы показывали точное время. Это позволяет сохранить непрерывность хода времени в системе. Если показания часов отличаются более чем на 2 (может и больше) секунды, то программа не пытается сохранить непрерывность, а просто переустанавливает часы, считая, что произошёл какой-то сбой. Коррекцию константы она при этом может производить или не производить в зависимости от величины расхождения. |
|
Сообщ.
#13
,
|
|
|
|
Врубить синхронизацию через инет? Может кварц на материнке помят иль кондёр сдох иль еше чего, по ходу проблема железячная.
|
|
Сообщ.
#14
,
|
|
|
|
И вот как заставить часы в виндовс тикать правильно? Часы в БИОС тикают точно. Часы в винде на 20 секунд за час отстают.
|
|
Сообщ.
#15
,
|
|
|
|
Цитата DMX_XC @ Каждый раз после выключения компьютера и последующего включения через более 1 часа время на компьютере уходит вперед минут от 8 до 30 из-за чего это может быть? Windows 7 64 Такая же фигня. Периодически время на компе скачком меняется на 1 час. Ровно на 1 час. Назад. Система Win Xp. Что бы это могло быть? |
|
Сообщ.
#16
,
|
|
|
|
Такое может быть, если неправильно выставлен часовой пояс, и включена синхронизация времени по сети.
|
|
Сообщ.
#17
,
|
|
|
|
Или, при правильно выставленном поясе, не обновлено описание российских часовых поясов после отказа от зимнего времени.
|
|
Сообщ.
#18
,
|
|
|
|
Поменял батарейку но время все равно уходит или отстает порой бывает за пол часа 2 часа +/- от реального времени. Часовой пояс Новосибирск.
|
|
Сообщ.
#19
,
|
|
|
|
Цитата уходит или отстает порой бывает за пол часа 2 часа +/- от реального времени Время уходит постепенно или скачет? Время уходит вперед или отстаёт? А в БИОС время как себя ведёт? До замены батарейки, после? |
|
Сообщ.
#20
,
|
|
|
|
Цитата Prince @ Время уходит постепенно или скачет? Время уходит вперед или отстаёт? А в БИОС время как себя ведёт? До замены батарейки, после? Время постепенно уходит вперед или назад разными интервалами. Утром включил компьютер время в BIOS отображалось правильно в Windows тоже шло правильно. Еще пару раз проверю утром как ведет себя время в BIOS. |