Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > MS Windows > Отстают часы в WinXP но дело не в батарейке |
Автор: Delphist 15.5.2008, 09:06 |
Есть новый бук Acer 7720Gamer, на нем стоит две системы Vista Home Premimum (была уже установлена при покупке бука) и вторая система Windows XP Service Pack 2. Прикол такой, что в XP отстают часы,за час может набигать несколько минут. Я сначало подумал что батарейка на мат. плате (правда взяли сомнения бук то новый), в связи с этим делаю эксперимент, захожу в настройки cmos и оставляю бук на несколько часов, часы не на секунду не отстали, эксперемент для надежности решил провести в Viste и тоже часы не сбились ни на секунду. Начал разбираться, что может тормозить часы в XP, но так и не понял. А на днях такой прикол увидел, часы в трэе отставали минут на 10, а потом на моих глазах (я случайно глянул на часики в нижнем правом углу) сами подвелись до правильного времени, и еще один прикол, если два раза кликнуть по часам в трее, то появлятся стандартное окно в котором на рисованы часы со стрелкой, так вот эта стрелка как-то странно перемещается т.е. идут секунды 1, 2, 3, потом происходит заметное тарможение, и далее стрелка продолжает двигаться как ни в чем не бывало. Подскажите, пожалуйста, с чем это может быть связано, сканировал антивирусом Symantec'ом с последними базами, но вирусов он не нашел. |
Автор: Elfebet 15.5.2008, 09:12 |
ctfmon.exe висит в процессе дисп. задач? ой сорри этот екзешник наверное для языка который в трее, а может и для часов.... непомню ![]() |
Автор: Akina 15.5.2008, 11:09 | ||
Меняем диспетчер задач на ProcessExplorer и смотрим, у кого сверх меры растет CPU Time... явно в каком-то модуле (обычно драйвере устройства) не отдается вовремя управление, и тики теряются. Как правило это драйвер дискового адаптера либо сетевой карты. Можно попробовать проще - заменить драйвер дискового адаптера на стандартный и отключить сетевуху - пропадет отставание или нет? Аппаратный таймер в CMOS тоже отстает? Или в ХР время отстало, а при перезагрузке оно опять прыгает в верное значение?
Полагаю, в это время бук был подключен к Инету, и служба времени отсинхрилась с внешним источником. |
Автор: Olegan 15.5.2008, 11:42 | ||
Delphist, отруби синхронизацию, а за одно еще и "Службу времени Windows". |
Автор: Delphist 15.5.2008, 12:39 | ||||
давно уже вырубил Добавлено через 14 секунд
Не был Добавлено через 1 минуту и 6 секунд Когда как, когда да, а когда и при перезагрузке ПК выстанаыливается время в XP. |
Автор: Delphist 15.5.2008, 13:21 |
Скажите, пожалуйста, а как вообще устроена работа таймера в системе XP? Призагрузке XP время берется из CMOS, а затем запускается некий собственный таймер WinXP (тогда какая функция возвращает значение этого таймера GetTickCount?) или на всем протяжении работы XP время берется из CMOS? |
Автор: Olegan 16.5.2008, 08:53 |
Синхронизируется с CMOS, но не постоянно вроде... |
Автор: Delphist 16.5.2008, 11:04 |
Если не постоянно значит у ХР должен быть свой таймер, тогда какая функция возвращает его значения? |
Автор: Akina 16.5.2008, 11:16 | ||
Да, тут ничто не изменилось со времен ДОСа. Как программно считались аппаратные прерывания от таймера, так и считаются. Пропуск прерывания - отставание часов. А пропуски возникют только в том случае, когда модуль не отдавал управление из критической секции так долго, что за это время произошло 2 прерывания. Что до Microtimer - вот он использует чисто аппаратный таймер. |
Автор: Delphist 16.5.2008, 12:08 | ||
А как вычислить этот хитрый модуль, который подолгу удерживает управление. |
Автор: Akina 16.5.2008, 13:52 | ||
Вот это делал?
|
Автор: Akella 18.5.2008, 22:06 |
по настроению ![]() |