Razlika med prekinitvijo in izjemo

Prekinitev vs Izjema

Med običajnim izvajanjem programa se lahko v katerem koli računalniku zgodijo dogodki, ki lahko povzročijo, da se CPU začasno ustavi. Taki dogodki se imenujejo prekinitve. Prekinitve lahko povzročijo napake programske ali strojne opreme. Prekinitve strojne opreme se imenujejo (preprosto) Prekinitve, medtem ko programske prekinitve imenujemo Izjeme. Ko je prekinjena prekinitev (programska ali strojna oprema), se kontrola prenese v posebno podprogram ISR (Interrupt Service Routine), ki lahko obravnava pogoje, ki jih povzroči prekinitev.

Kaj je prekinitev?

Izraz Prekinitev je običajno rezerviran za strojne prekinitve. So prekinitve nadzora programa, ki jih povzročijo zunanji dogodki strojne opreme. Tukaj zunanja pomeni zunanji CPU. Prekinitve strojne opreme običajno prihajajo iz različnih virov, kot so časovnik čip, obrobne naprave (tipkovnice, miška itd.), V / I vrata (serijska, vzporedna itd.), Diskovni pogoni, ure CMOS, razširitvene kartice (zvočna kartica, video kartice itd.). To pomeni, da strojne prekinitve skoraj nikoli ne nastanejo zaradi nekega dogodka, povezanega z izvajalnim programom. Na primer, dogodek, kot je pritisk tipke na tipkovnici s strani uporabnika ali interni časovni potek notranjega strojne opreme, lahko povzroči tovrstno prekinitev in lahko obvesti CPU, da določena naprava potrebuje nekaj pozornosti. V takšnih razmerah bo CPU ustavil vse, kar je delal (tj. Zaustavil trenutni program), zagotovil storitev, ki jo zahteva naprava, in se vrne v običajni program. Ko pride do prekinitev strojne opreme in CPU zažene ISR, so druge prekinitve strojne opreme onemogočene (npr. Pri 80 × 86 strojih). Če med izvajanjem ISR potrebujete druge prekinitve strojne opreme, morate to izrecno storiti tako, da počistite zastavico za prekinitev (z navodili sti). Pri 80 × 86 strojih bo brisanje zastave prekinitve vplivalo samo na strojne prekinitve.

Kaj so izjeme?

Izjema je prekinitev programske opreme, ki jo je mogoče prepoznati kot posebno rutino obdelave. Izjema je lahko prepoznana kot samodejna pasti (Trap je mogoče prepoznati kot prenos nadzora, ki ga sproži programer). Na splošno ni posebnih navodil, povezanih z izjemami (pasti se generirajo z uporabo določenega navodila). Torej pride do izjeme zaradi "izjemnega" stanja, ki se pojavi med izvajanjem programa. Na primer, delitev na nič, izvedba nezakonitega okna ali napake, povezane s spominom, lahko povzročijo izjeme. Kadar koli se pojavi izjema, CPU začasno ustavi program, ki ga je izvajal, in zažene ISR. ISR bo vseboval, kaj storiti z izjemo. Težavo lahko odpravi ali pa ni mogoče, program lahko prekine s tiskanjem ustreznega sporočila o napaki. Čeprav določeno navodilo ne povzroči izjeme, bo od njega vedno nastala izjema. Na primer, napaka delitve z ničlo se lahko zgodi samo med izvajanjem navodila za delitev.

Kakšna je razlika med prekinitvijo in izjemo?

Prekinitve so strojne prekinitve, izjeme pa programske prekinitve. Pojavi prekinitev strojne opreme običajno onemogočijo druge strojne prekinitve, vendar to ne velja za izjeme. Če morate onemogočiti strojne prekinitve, dokler se ne vroči izjema, morate izrecno počistiti zastavico za prekinitev. Običajno zastavica prekinitve v računalniku vpliva na (strojne) prekinitve v nasprotju z izjemami. To pomeni, da brisanje te zastave ne bo preprečilo izjem.