2013 m. sausio 10 d., ketvirtadienis

8.8. Prioritetinis pertraukčių aptarnavimas



Pertraukties reikalavimą gali atsiųsti įvesties / išvesties valdiklis, tam tikrais, išimtinais atvejais - pats mikroprocesorius.
Ne visos pertrauktys yra vienodai svarbios.
Pertraukčių aptarnavimo sistema gali būti vieno arba  daugelio lygių.
Vieno lygio pertraukčių sistemose kitos pertraukties aptarnavimas galimas tik užbaigus ankstesnįjį.
Dagelio lygių sistemose aukštesnį prioritetą turinčios pertrauktys gali pertraukti žemesnį prioritetą turinčių pertraukčių aptarnavimą. Grįžimas prie ankstesniųjų pertraukiančiųjų programų vykdomas priešinga tvarka (first in – last out).
pertrauk3
8.6 pav. Daugelio lygių pertraukčių aptarnavimas
Svarbesnės pertrauktys turi aukštesnį prioritetą. Taigi, egzistuoja tam tikra pertraukčių hierarchija.
Vieno lygio pertraukčių sistemose apdorojant vieną pertrauktį kitos yra draudžiamos. Pertraukčių draustis reiškia tai, kad procesorius neatsakys į pertraukties užklausos signalą. Jeigu šiuo laiko momentu pertrauktis atsiranda, ji užlaikoma ir išsaugoma, kol procesorius galės ją patikrinti (tuomet pertraukties draustis bus atšaukta).
Atlikus pertraukties apdorojimo procedūrą, prieš sugrįžtant į vartotojo programą, pertraukties draustis atšaukiama, ir procesorius tikrina, ar nebuvo atsiradusios kokios nors kitos pertrauktys
Šio principo trūkumas tai, kad nėra numatyti santykiniai užklausų prioritetai arba laiko atžvilgiu kritiški atvejai. Pavyzdžiui, kai komunikacijos linijoje atsiranda duomenų, juos reikia priimti kuo greičiau, kad liktų laisva vieta kitiems išoriniams duomenims. Šiuo atveju, jeigu pirmasis duomenų paketas nebus apdorotas prieš atsirandant kitam, pastarasis gali būti prarastas.
Daugelio lygių pertraukčių sistemose pertrauktims priskiriami tam tikri prioritetai. Šiuo atveju atsiradus aukštesnio prioriteto pertraukčiai žemesnio prioriteto pertrauktis bus pristabdyta.

Komentarų nėra:

Rašyti komentarą

Tinklaraščio archyvas

Etiketės