DPC

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 6. maaliskuuta 2016 tarkistetusta versiosta . tarkastukset vaativat 11 muokkausta .

DPC ( eng.  Deferred procedúra kutsu  - viivästetty prosessikutsu ) - erityinen mekanismi proseduurien kutsumiseksi Windows - arkkitehtuurissa .

DPC:n olemus

Kun keskeytys tapahtuu, ohjaus siirtyy keskeytyskäsittelijälle . On olemassa useita tekijöitä, jotka rajoittavat keskeytyskäsittelijän koodin ominaisuuksia:

Ratkaisu tähän ongelmaan on lähestymistapa, jossa vain kriittisimmät toiminnot suoritetaan suoraan käsittelijässä ja muita toimintoja lykätään, kunnes suhteellisen vapaata prosessoriaikaa ilmaantuu ja IRQL laskee kelvolliseen arvoon ( DISPATCH_LEVEL). Sitten nämä toimet suoritetaan osana kutsua lykättyyn (sen suoritusta lykättiin tähän hetkeen asti) -menettelyä.

Toisin kuin normaalissa proseduurikutsussa, jossa itse asiassa ohjaus siirtyy välittömästi kutsutun proseduurin koodiin, DPC-kutsulla ohjausta ei siirretä kutsutulle proseduurille - sen sijaan sijoitetaan kutsutun proseduurin osoite ja parametrit. erityisessä jonossa [1] nimeltä DPC Queue . Kun "sopiva" aika koittaa, lykättyä menettelyä kutsutaan todelliseksi.

Siten keskeytyskäsittelijä suorittaa vain tarpeellisimmat toiminnot ja tekee viivästetyn proseduurikutsun, joka suorittaa kaikki muut toiminnot, joita tarvitaan osana keskeytyksen käsittelyä, mutta jotka eivät vaadi lisättyä kiireellisyyttä.

DPC-hallinta

Koska DPC-mekanismia käytetään ensisijaisesti I/O-pyyntöjen käsittelyn puitteissa, on olemassa erityisiä prefiksoituja kääretoimintoja Iolykättyjen puhelujen hallintaan. Erityisesti keskeytyskäsittelijöiden tulee dokumentaation mukaan käyttää näitä toimintoja.

Muistiinpanot

  1. Moniprosessorijärjestelmissä jokaisella prosessorilla on oma odottava puhelujono. Joten jokainen odottava puhelu liittyy tiettyyn prosessoriin.

Katso myös

Kirjallisuus