Prekinitev proti pasti
V katerem koli računalniku lahko med običajnim izvajanjem programa pride do dogodkov, ki lahko povzročijo začasno zaustavitev CPE. Takšni dogodki se imenujejo prekinitve. Prekinitve lahko povzročijo napake programske ali strojne opreme. Strojne prekinitve imenujemo (preprosto) prekinitve, programske prekinitve pa izjeme ali pasti. Izjema je samodejno ustvarjena programska prekinitev, medtem ko je past programsko sprožena prekinitev, ki jo sproži programer. Ko se sproži prekinitev (programska ali strojna oprema), se nadzor prenese na poseben podprogram, imenovan ISR (Interrupt Service Routine), ki lahko obravnava pogoje, ki jih sproži prekinitev.
Kaj je prekinitev?
Izraz prekinitev je običajno rezerviran za strojne prekinitve. So prekinitve krmiljenja programa, ki jih povzročijo dogodki zunanje strojne opreme. Tukaj zunanji pomeni zunaj CPE. Prekinitve strojne opreme običajno prihajajo iz številnih različnih virov, kot so časovnik, periferne naprave (tipkovnice, miške itd.), V/I vrata (zaporedna, vzporedna itd.), diskovni pogoni, ura CMOS, razširitvene kartice (zvočna kartica, video kartico itd.). To pomeni, da do prekinitev strojne opreme skoraj nikoli ne pride zaradi nekega dogodka, povezanega z izvajajočim se programom. Na primer, dogodek, kot je pritisk tipke na tipkovnici s strani uporabnika, ali iztekanje notranjega časovnika strojne opreme lahko sproži tovrstno prekinitev in lahko obvesti CPE, da določena naprava potrebuje nekaj pozornosti. V takšni situaciji bo CPE ustavil vse, kar je počel (tj. začasno ustavil trenutni program), zagotovil storitev, ki jo zahteva naprava, in se vrnil k običajnemu programu. Ko pride do prekinitev strojne opreme in CPE zažene ISR, so druge prekinitve strojne opreme onemogočene (npr.g. v strojih 80×86). Če želite, da se med izvajanjem ISR pojavijo druge prekinitve strojne opreme, morate to storiti izrecno tako, da počistite zastavico prekinitve (z navodilom sti). V napravah 80×86 bo brisanje zastavice za prekinitev vplivalo samo na prekinitve strojne opreme.
Kaj je past?
Past lahko identificiramo kot prenos nadzora, ki ga sproži programer. Izraz Trap se uporablja izmenično z izrazom Exception (ki je samodejno izvedena programska prekinitev). Toda nekateri morda trdijo, da je past preprosto poseben klic podprograma. Torej spadajo v kategorijo prekinitev, ki jih sproži programska oprema. Na primer, v strojih 80 × 86 lahko programer uporabi ukaz int za sprožitev pasti. Ker je past vedno brezpogojna, bo nadzor vedno prenesen na podprogram, povezan s pastjo. Natančno navodilo, ki prikliče rutino za ravnanje s pastjo, je enostavno prepoznati, ker se za določanje pasti uporablja eksplicitno navodilo.
Kakšna je razlika med prekinitvijo in pastjo?
Prekinitve so prekinitve strojne opreme, medtem ko so pasti prekinitve, ki jih sproži programska oprema. Pojav prekinitev strojne opreme običajno onemogoči druge prekinitve strojne opreme, vendar to ne velja za pasti. Če morate onemogočiti prekinitve strojne opreme, dokler ni postrežena past, morate izrecno počistiti zastavico prekinitve. In običajno prekinitvena zastavica na računalniku vpliva na (strojne) prekinitve v nasprotju s pastmi. To pomeni, da brisanje te zastavice ne bo preprečilo pasti. Za razliko od pasti morajo prekinitve ohraniti prejšnje stanje CPE.