Ano ang Mga Tungkulin sa Ipinagpaliban na Pamamaraan?

Talaan ng mga Nilalaman:

Anonim

Ang isang ipinagpaliban na tawag sa pamamaraan (DPC) ay isang makagambala sa paghawak ng mekanismo sa operating system ng Microsoft Windows kung saan maaaring i-reference ng mga driver kapag tumatakbo ang ilang mga proseso. Pinahihintulutan ng DPC ang isang gawain na maisasaaktibo, ngunit hindi isinasagawa, mula sa isang mataas na priyoridad na paghinto sa antas ng paghiling (IRQL). Pinapahintulutan nito ang isang drayber na iproseso ang mabilisang serbisyo sa pag-abala ng mataas na antas (ISR) nang mabilis habang pinipigilan ang pagpapatupad ng mga IRQL na mas mababang antas ng code. Ang mga driver ay gumagamit ng mga DPC upang mag-iskedyul ng mga operasyon ng input / output (I / O). Ang mga driver ay software na ginagamit ng Windows upang makipag-ugnayan sa mga aparatong hardware.

Mga paglilipat

Ang driver ng aparato ng kernel mode ay conventionally pangasiwaan ang paglipat ng isang audio o video stream ng data mula sa o sa isang panlabas na aparato. Ang pagpoproseso ng data ng mga driver ng aparato ay nakakaabala. Ang panlabas na hardware ay karaniwang bumubuo ng mga interrupts upang hilingin ang driver ng aparato na ilipat ang susunod na batch ng data. Ang isang driver ng aparato ay hindi maaaring maproseso ang data agad sa makatakip na gawain nito; kaya kailangan ng operating system na mag-trigger ng isang routine callback, na kung saan ay ang DPC. Ang kernel mode, o system mode, at ang mode ng user ay ang mga mode ng pagpapatakbo ng iyong central processing unit. Kinokontrol ng kernel ang lahat ng mga aktibidad sa pagpoproseso ng system.

Pag-iiskedyul

Ang konsepto ng isang ipinagpaliban na tawag sa pamamaraan ay umiiral sa kernel mode lamang. Ang operating system ay nagpapanatili sa mga DPC na naka-iskedyul ng mga driver ng aparato sa isang queue. Kung kailangan ng proseso ng iyong system ang mga interrupts, susuriin ng kernel ang queue ng DPC at isagawa ang unang DPC kung walang mga interrupts at walang tumatakbo na proseso ng DPC. Ang DPC ay ang pinakamataas na priyoridad na thread sa system, habang ang proseso ng queue ng queue ay nangyayari bago magpili ang dispatcher ng isang thread at magtatalaga sa CPU. Ang mga DPC ay may tatlong antas ng priyoridad: mababa, katamtaman at mataas.

Mga Proseso

Ang bawat DPC ay naka-link sa isang tinukoy na sistema ng DPC object. Kapag ang isang driver ay nagrerehistro ng isang routine DPCForslr, ang system ay nagsisimula ng tinukoy na DPC object. Kung higit sa isang DPC ang kinakailangan, ang isang driver ay lumilikha ng karagdagang mga bagay na DPC na kilala bilang CustomDPC na gawain. Ang routine ng DPCForlsr ay may hawak na maraming proseso; nakumpleto nito ang operasyon ng I / O na inilarawan sa pamamagitan ng packet ng request / output request (IRP), deques sa susunod na IRP, nagtatakda ng input / output status sa natanggap na IRP at ang proseso upang makumpleto ang kahilingan.

Mga gawain

Karaniwan, ang isang driver ng aparato na may isang makatakip na gawain ng gawain ay may hindi bababa sa isang DPCForIsr o CustomDPC na gawain upang makumpleto ang pagproseso ng mga operasyon na nakababagas sa I / O. Ayon sa Open Systems Resources, Inc., ang pangunahing dahilan ng driver ay may isang solong routine ng DPCForlsr, isang hanay ng mga gawain ng CustomDPC o kapwa ay depende sa likas na katangian ng kanyang pinagbabatayan na aparato at ang hanay ng mga kahilingan ng I / O na dapat itong suportahan. Ang ISR ng isang driver ay kailangang tumawag sa IoRequestDPC para sa mga pag-abala na hinihimok ng I / O gamit ang DPCForlsr na gawain. Sa kabaligtaran, para sa mga overlapping na operasyon, nakagagambala sa mga operasyon ng I / O gamit ang mga gawain ng CustomDPC, kinakailangang tawagan ng ISR ang KeInsertQueueDPC.