Kompiuterių pertraukčių posistemė skirta vykdomai programai sustabdyti ir pereiti prie kitos, svarbesnės toje situacijoje programos vykdymo. Ta programa, vadinama pertraukties aptarnavimo (pertraukiančioji, pertraukimo) programa. Šios programos pobūdis priklauso nuo pertraukties signalo, siunčiamo mikroprocesoriui, atsiradimo priežasties. Vėliau, įvykdžius pertraukties aptarnavimo programą, jei tai įmanoma, sustabdytos programos vykdymas tęsiamas.
Pertrauktis galima būtų palyginti su telefono skambučiu. Žmogus pakelia telefono ragelį tik tuo atveju, jeigu išgirsta iškvietos signalą. Visai nėra prasmės pakelti ragelį, jeigu nebuvo iškvietos signalo, tikintis, kad, galbūt, kas nors tuo metu atsitiktinai paskambins.
Suskambus telefonui, studentas gali nutraukti knygos skaitymą ir atlikti tokius veiksmus: įsiminti skaitomo puslapio numerį, pakelti ragelį, išklausyti klausimą, atsakyti į klausimą, padėti ragelį ir grįžti prie knygos skaitymo (nuo tos vietos, kur jis buvo nutrauktas). Šiame gyvenimiškame pavyzdyje nesunku pastebėti tokias analogijas: “studentas – mikroprocesorius”, “knygos skaitymas – vykdoma programa”, “telefono skambutis – pertrūkio signalas” ir “ pertrūkio aptarnavimo programa – studento reakcijų į telefono skambutį seka “.
Dažniausiai pertrūkio signalų atsiradimo laikas išanksto yra nežinomas ir vykdomojoje programoje neplanuojamas. Tai nepriklausomas ir netikėtas įvykis, galintis atsirasti vykdant bet kurį programos žingsnį. Svarbu, kad aptarnavus pertraukties šaltinį būtų sugrįžta i į tą programos vietą, ties kurias ji pertraukta ir pratęsti jos darbą ( jei nėra priežasčių neleidžiančių to padaryti).
Pertraukčių valdoma įvestis – išvestis yra vienas iš būdų sumažinti procesoriaus prastovas dėl įvesties –išvesties procedūrų atlikimo.
Vykdant duomenų apdorojimą, procesoriui gana dažnai tenka įvesti ir išvesti duomenis iš išorinių įrenginių. Kadangi jų sparta yra šimtus ir tūkstančius kartų mažesnė, nei paties procesoriaus darbo sparta, programiniu būdu vykdant įvestį-išvestį (Input-output) susidaro didelės procesoriaus prastovos. Kiekviename procesoriaus darbo cikle turi būti patikrinamas įrenginio pasirengimas keistis nauja duomenų porcija ir, jei to nėra, procesorius laukia, kol toks signalas (apie pasirengimą) bus išduotas kuriame tai kitame cikle.
Pertrauktys leidžia išoriniams įrenginiams pasirengti siųsti ir priimti duomenis. Jos įgalioja išorinių įrenginių valdiklius priversti mikroprocesorių sustabdyti vykdomą veiklą ir pradėti pertraukties, kurios reikalauja išoriniai įrenginiai, aptarnavimą.
Procesoriaus požiūriu operacija veikia taip. Jis siunčia skaitymo komanda READ, o po to pasitraukia nuo operacijos vykdymo ir gali atlikti kitą darbą ( pvz., kitą programą). Kiekviename naujai vykdomame cikle jis vis tikrina, ar nėra pertraukties reikalavimo (gal įrenginys jau pasiruošęs perduoti duomenų porciją), jei taip, programos darbas pertraukiamas ir procesorius priima duomenis. Taip baitas po baito besikartojančių pertraukčių dėka perduodamas visas duomenų masyvas.
Programa gali būti nutraukiama ir kitais atvejais, kai prireikia vykdyti skubesnę užduotį. Atlikus pastarąją užduotį, vėl sugrįžtama prie ankstesnės programos vykdymo. Tam procesoriuje turi būti atstatyta ta nutrauktojo proceso būsena, ties kuria programa buvo laikinai sustabdyta.
Komentarų nėra:
Rašyti komentarą