2 ms delay
- From
- Genadi Zawidowski (2:5020/175.2)
- To
- Gennady Mayko
- Date
- 2002-10-24T15:24:54Z
- Area
- SU.WINDOWS.NT.PROG
From: "Genadi Zawidowski" <dolphin@infopro.spb.su>
Thu Oct 24 2002 14:17, Gennady Mayko wrote to Genadi Zawidowski:
GZ>>>> Кто знает, как сделать (в драйвере, естественно, w2k/xp)
GZ>>>> выдержку двухмилисекундных интервалов так, чтобы
GZ>>>> загрузка процессора не была на все сто процентов?
GM>>> Посмотри функцию KeDelayExecutionThread, может она поможет. Если нет,
GM>>> поищи в google groups фразу "better timer performance than
GM>>> KeSetTimerEx".
GZ>> Так пока он крутит калиброваную задержку, сто процентов загрузки проца и
GZ>> имеем.
GZ>> Если бы однократно задержаться - то ничего. А надо часто. И много.
GM> Судя по документации, KeDelayExecutionThread приостанавливает выполнение
GM> thread'a, так что он уже не занимает процессоры.
Я оговорился ранее - у KeDelayExecutionThread дискретность
соответствует тикам таймера.
KeStall??? - она точна, но занимает процессор.
GM> А предлагаемый в треде метод, насколько я понимаю, использует другой
GM> подход - там запускается "профилирование" (profiling) участка кода с
GM> частотой 1000 * 100e-9 и перехватывается процедура обработки самого
GM> profiler'a. Результаты профилирования его не интересуют; зато, получив
GM> управление каждый "тик" profilier'a, можно делать "побочные" полезные
GM> вещи. Поэтому и в этом методе процессор не занимается на время ожидания.
Откуда идут прерывания в IBM PC архитектуре для такого?
Генка - mgs2001 at pochtamt dot ru
--- ifmail v.2.15dev5
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)