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)