Прерывания DPC или диспетчиризация

Тема в разделе "WASM.WIN32", создана пользователем EvilsInterrupt, 24 апр 2006.

  1. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Из Руссиновича:

    "Когда дальнейшее выполнение потока невозможно, например из-за его завершения или перехода в ждущее состояние, ядро напрямую обращается к диспетчеру, чтобы вызвать немедленное переключение контекста. Однако иногда ядро обнаруживает, что перераспределение процессорного времени (rescheduling) должно произойти при

    выполнении глубоко вложенных команд. В этой ситуации идеальный выход — запросить диспетчеризацию, но саму операцию отложить до выполнения ядром текущих действий. Такую задержку удобно организовать с помощью программного прерывания DPC (deferred procedure call)."



    Мне интересно как ядро: "произойти при выполнении глубоко вложенных команд" это определяет?
     
  2. ubil

    ubil New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2004
    Сообщения:
    203
    Адрес:
    ODESSA:)
    Если я не ошибаюсь, то ядро само не прерывает твой поток когда тот обрабатывает прерывание, у него сильно высокий IRQL, так вот если нужно произвести какие-то сильно долгие операции в таком потоке, то чтобы не тормозить ядро, можно вызвать DPC рутину, которая будет работать с меньшим IRQL, что позволит ядру прерывать ее выполнение(и тем самым исключить возможность "зависаний", даже кратковременных). Слова "иногда обнаруживает", наверное как раз и означает, что в коде обработки прерывания стоит вызов IoRequestDpc(или аналогичной).
     
  3. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    ubil

    Видать и ты, как и Four-F склоняешься к "хорошему" переводу Оригинала. :)
     
  4. bers

    bers New Member

    Публикаций:
    0
    Регистрация:
    16 сен 2005
    Сообщения:
    139
    Адрес:
    Russia
    Не знаю какой перевод у Inside Windows 2000, но на себе испытал уродство перевода Inside Windows Server 2003, XP, 2000
     
  5. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    <font color="gray][ EvilsInterrupt</font><!--color--><font color="gray]: Видать и ты, как и Four-F склоняешься к "хорошему" переводу Оригинала. :) ]</font><!--color-->



    Я бы пааапрааасил!



    Я всего-то и сказал насчет одной единственной фразы, что возможно она неточно переведена, причём, сказал не видя оригинала. Насчёт точности перевода всей книги не скажу, но сам материал излагается очень грамотно и не на туалетной бумаге, между прочим.
     
  6. SI_16

    SI_16 New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    10
    зато я скажу - у книги Inside Windows 2000 перевод очень плохой
     
  7. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Four-F

    :))) Сорри, ну никак не хотел тебя обидеть, имел свойство быть ситуативно наглым, что выразился не правильно. Приношу тебе, мои скромные извининения!!!



    All

    Книга толковая, но иногда приходится одно и тоже место, понескольку раз читать. Для меня эталоном является Э.Таненбаум "Современные Операционные системы" 2 изд. Блин, в нем хоть не сразу, но иногда он находит такие слова, которые наиболее точно определяют то или иное понятие!
     
  8. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Inside Windows 2000 в некотором смысле писана изоповым языком. Берите исходники w2k и nt4 и сразу все станет понятно.