Кейінге қалдырылған процедура - Deferred Procedure Call - Wikipedia

A Кейінге қалдырылған процедура (DPC) Бұл Microsoft Windows басымдықты міндеттерді орындауға мүмкіндік беретін операциялық жүйенің механизмі (мысалы үзу өңдеушісі ) кейінірек орындау үшін қажет, бірақ басымдылығы төмен тапсырмаларды кейінге қалдыру. Бұл құрылғылардың драйверлеріне және басқа да деңгейдегі іс-шаралардың тұтынушыларына оларды өңдеудің басымдықты бөлігін жылдам орындауға және маңызды емес қосымша өңдеуді неғұрлым төмен басымдылыққа жоспарлауға мүмкіндік береді.

DPC-ді құратын және инициализациялайтын DPC объектілері жүзеге асырады ядро қашан а құрылғы драйвері немесе басқа ядро ​​режимінің бағдарламасы DPC сұраныстарын шығарады. DPC сұраныстары DPC соңына қосылады кезек. Әр процессордың жеке DPC кезегі бар. КДК үш басымдылық деңгейіне ие: төмен, орташа және жоғары. Әдепкі бойынша, барлық ДПК орташа басымдыққа орнатылған. Windows an-қа түскенде IRQL ол диспетчердің / DPC деңгейінің кез-келген DPC кезегін күтіп, кезек күткенге дейін немесе кез-келген IRQL жоғарырақ үзіліске дейін орындайды.

Мысалы, сағат үзілісі пайда болған кезде, сағат үзілісі өңдеушісі жалпы ағынның есептегішін көбейтіп, сол жіптің орындалуының жалпы уақытын есептейді және оның азаюын азайтады. кванттық 1-ге дейін қалған уақыт. Есептегіш нөлге түскенде, контексттік ауыстыруды орындау үшін сол процессор мен диспетчерде орындалатын келесі ағынды таңдау үшін ағын жоспарлағышын шақыру керек. Сағаттың үзілісі IRQL-де едәуір жоғары деңгейде болғандықтан, процессордың IRQL төмендеген кезде бұл аса маңызды емес міндет болып табылатын бұл ағынды диспетчерлеуді жөн көрген жөн. Сонымен, сағаттық үзіліс өңдеушісі DPC нысанын сұрайды және оны DPC кезегінің соңына қосады, ол процессордың IRQL DPC / Dispatch деңгейіне түскенде диспетчерлеуді өңдейді.

Үзілістерді қолданатын ағынды аудио немесе бейнемен жұмыс істеген кезде, DPC әр буфердегі аудионы ағып жатқанда өңдеу үшін қолданылады. Егер басқа DPC (нашар жазылған драйверден) ұзақ уақыт алса және басқа үзіліс деректердің жаңа буферін тудырса, біріншісі өңделуі мүмкін, а түсу нәтижелер.[1]

Әдебиеттер тізімі

Жалпы
  • Арт Бейкер және Джерри Лозано. (2000). Windows 2000 құрылғы драйверінің кітабы: бағдарламашыларға арналған нұсқаулық, екінші шығарылым,. Prentice Hall. ISBN  978-0-13-020431-8.
  • Microsoft DPC анықтамасы
Ерекше
  1. ^ Уте Эберхардт (27 маусым 2012). «DPC кешігуін тексеру». Thesycon.de. Алынған 14 қазан 2017.