Re: самомодифициpyющийся код?

From
Vladimir Ivanov ()
To
Yury Haron
Date
2002-10-09T12:22:07Z
Area
SU.WINDOWS.NT.PROG
From: "Vladimir Ivanov" <vivanov@tmsoft-ltd.kiev.ua>

Hi Yuri!
>Не всё так здоpово. Посколькy нить yже пpеpвали, то логика возвpата на
u-level
> бyдет иметь место _до_ всяческого шедyления. А там APC'шки считаются
> пpиоpитетней "обычного" кода независимо от его квантов.
Если я правильно понял, в нашем случае, поток может прерваться из-за вновь
поставленной в очередь APC, причем поставленное из ядра системы в результате
обработки прерывания (таймер, завершение ввода-вывода) ?
Вызов QueueUserAPC из user-level в потоке, работающем на другом процессоре -
не приведёт к прерыванию потока ?

Потом ксли ты говоришь, что APC'шки обрабатываются вне зависимости от
квантов, они что не вытесняются ?
А если APC-шка отрабатывает 10 минут - 100%CPU в IDLE-потоке - она не даст
шанса запуститься потоку с TIME_CRITICAL ? Что-то здесь не чисто.

До твоего сообщения, я был уверен, что APC - это всего лишь способ
выполнения кода в потоке, инициируемый до старта потока и некоторыми
функциями ожидания (WaitFor...Ex) до момента возврата из них, но уже на
user-level и с соблюдением всей логики шедулинга. А прерывание потока может
и происходит при вызове QueueUserAPC, но здесь отбирается оставшаяcя часть
кванта у потока, который вызвал QueueUserAPC, путём генерирования
программного прерывания.
И мне до сих пор кажется это вполне логичным. И даже более простым с точки
зрения реализации.

Кстати, что посоветуешь почитать по этому поводу ?

С уважением,
Владимир Иванов.




--- ifmail v.2.15dev5
 * Origin: A poorly-installed InterNetNews site (2:5020/400)