DPC

DPC

DPC (англ. Deferred procedure call — отложенный вызов процедуры) — специфический механизм вызова процедур в архитектуре Windows.

Содержание

Суть DPC

При возникновении прерывания, управление передаётся обработчику прерывания. Существует ряд факторов, ограничивающих возможности кода обработчика прерывания:

  • Общей практикой является требование минимизации времени работы обработчика прерывания. Поэтому необходимо воздержаться от выполнения ресурсоёмких и долгих действий непосредственно внутри обработчика прерывания.
  • В Windows код обработчика прерывания выполняется на высоком IRQL, что сильно ограничивает набор доступных обработчику ядерных функций: многие функции требуют гораздо более низкого IRQL для своего вызова.

Решением этой проблемы является подход, при котором непосредственно в обработчике выполняются лишь самые критические операции, а остальные действия откладываются до тех пор, пока не появится относительно свободное процессорное время, а IRQL не опустится до допустимого значения (DISPATCH_LEVEL). Тогда эти действия будут выполнены в рамках вызова отложенной (её выполнение было отложено до этого момента) процедуры.

В отличие от обычного вызова процедуры, при котором, фактически, управление сразу же передаётся коду вызываемой процедуры, при DPC-вызове передача управления вызываемой процедуре не происходит — вместо этого адрес вызываемой процедуры и параметры помещаются в специальную очередь[1], называемую DPC Queue. Когда наступает «благоприятное» время, отложенная процедура вызывается по-настоящему.

Таким образом, обработчик прерывания выполняет только самые необходимые действия и осуществляет отложенный вызов процедуры, которая выполнит все остальные действия, нужные в рамках обработки прерывания, но не требующие повышенной срочности.

Управление DPC

  • Для того, чтобы осуществлять отложенные вызовы, необходимо сперва создать объект DPC при помощи ядреной функции KeInitializeDpc.
  • Созданному объекту DPC можно изменить приоритет при помощи функци KeSetImportanceDpc, а также переназначить логический процессор, в очередь которого будет помещён отложенный вызов, с помощью KeSetTargetProcessorDpc.
  • Постановка DPC в очередь осуществляется вызовом ядерной функции KeInsertQueueDpc.
  • Помещённый в очередь DPC можно убрать из очереди вызовом функции KeRemoveQueueDpc.

Поскольку механизм DPC используется главным образом в рамках обработки запросов ввода/вывода, существуют специальные функции-обёртки с префиксом Io для управления отложенными вызовами. В частности, обработчики прерываний, согласно документации, должны использовать именно эти функции.

Примечания

  1. В многопроцессорных системах каждый процессор имеет свою отдельную очередь отложенных вызовов. Так что каждый отложенный вызов ассоциирован с определённым процессором.

См. также

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Полезное


Смотреть что такое "DPC" в других словарях:

  • DPC — may refer to: In military: Defence Planning Committee, (NATO) Defence Police College, a tri service establishment for training the Service Police of the British Armed Forces, see Defence College of Policing and Guarding Disruptive Pattern… …   Wikipedia

  • DPC — sigla Decreto del Presidente del Consiglio …   Dizionario italiano

  • DPC — Die Abkürzung DPC steht für Defence Planning Committee, Verteidigungsplanungsausschuß der NATO Deferred Procedure Call Differential Phase Contrast, (Imaging), ein Phasenkontrast Röntgenverfahren Digital Playout Center GmbH Diese Seite ist eine …   Deutsch Wikipedia

  • DPC — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom.   Sigles d’une seule lettre   Sigles de deux lettres > Sigles de trois lettres   Sigles de quatre lettres …   Wikipédia en Français

  • DPC amoblados — (Сантьяго,Чили) Категория отеля: Адрес: San Francisco 265, Сантьяго центр города, 8 …   Каталог отелей

  • DPC — Defense Planning Committee (NATO) …   Military dictionary

  • DPC — Defense Plant Corporation. * * * …   Universalium

  • DPC — Deferred Procedure Call (Computing » Drivers) Domestic Policy Council (Academic & Science » Ocean Science) **** Dirty Paper Coding (Computing) **** Digital Pitch Control (Governmental » NASA) * Development Planning Council (Governmental » State & …   Abbreviations dictionary

  • DPC — delayed primary closure; deoxyribonucleic acid [DNA] probe chromatography; deoxyribonucleic acid [DNA] protein crosslinks; desaturated phosphatidylcholine; diethylpyrocarbonate; direct patient care; discharge planning coordinator; distal palmar… …   Medical dictionary

  • dpc — days post coitum …   Medical dictionary


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»