Prekinitev vs izjema
V katerem koli računalniku med običajnim izvajanjem programa lahko pride do dogodkov, zaradi katerih se lahko CPU začasno ustavi. Takšni dogodki se imenujejo prekinitve. Prekinitve lahko povzročijo napake programske ali strojne opreme. Prekinitve strojne opreme se imenujejo (preprosto) prekinitve, programske prekinitve pa izjeme. Ko se prekinitev (programska ali strojna oprema) dvigne, se nadzor prenese v posebno podprogram, imenovan 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 zaradi zunanjih dogodkov strojne opreme. Tu zunanje pomeni zunanje CPE. Prekinitve strojne opreme običajno prihajajo iz številnih različnih virov, kot so časovni čip, zunanje naprave (tipkovnice, miška itd.), V / I vrata (serijska, vzporedna itd.), Diskovni pogoni, ura CMOS, razširitvene kartice (zvočna kartica, video kartico itd.). To pomeni, da zaradi nekaterih dogodkov, povezanih z izvršilnim programom, skoraj nikoli ne pride do prekinitev strojne opreme. Na primer dogodek, kot je pritisk tipke na tipkovnici s strani uporabnika, ali časovna omejitev internega časovnika strojne opreme lahko povzroči tovrstno prekinitev in lahko obvesti CPU, da določena naprava potrebuje nekaj pozornosti. V takšni situaciji bo CPU ustavil tisto, kar je počel (tj. Zaustavil trenutni program),zagotavlja 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 strojne prekinitve onemogočene (npr. Pri strojih 80 × 86). Če potrebujete druge prekinitve strojne opreme med izvajanjem ISR, morate to storiti izrecno tako, da počistite zastavico prekinitve (z navodilom sti). V strojih 80 × 86 bo čiščenje zastavice prekinitve vplivalo samo na prekinitve strojne opreme.brisanje zastavice prekinitve bo vplivalo samo na prekinitve strojne opreme.brisanje zastavice prekinitve bo vplivalo samo na prekinitve strojne opreme.
Kaj so izjeme?
Izjema je programska prekinitev, ki jo lahko prepoznamo kot posebno rutino za obdelavo. Izjemo lahko označimo kot samodejno pojavljajočo se past (past lahko prepoznamo kot prenos nadzora, ki ga sproži programer). Na splošno ni posebnih navodil, povezanih z izjemami (pasti se ustvarijo z določenimi navodili). Torej pride do izjeme zaradi "izjemnega" stanja, ki se pojavi med izvajanjem programa. Na primer, delitev z ničlo, izvajanje nezakonite kode optike ali napake, povezane s pomnilnikom, lahko povzročijo izjeme. Kadarkoli pride do izjeme, 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, če ni mogoče, lahko program elegantno prekine s tiskanjem ustreznega sporočila o napaki. Čeprav določeno navodilo ne povzroča izjeme, bo izjemo vedno povzročilo navodilo. Na primer, napaka pri deljenju z ničlo se lahko pojavi samo med izvajanjem navodila za delitev.
Kakšna je razlika med prekinitvami in izjemami?
Prekinitve so strojne prekinitve, izjeme pa programske. Pojave strojnih prekinitev običajno onemogočijo druge strojne prekinitve, vendar to ne velja za izjeme. Če morate onemogočiti prekinitve strojne opreme, dokler se ne uporabi izjema, morate izrecno počistiti zastavico prekinitve. In ponavadi zastavica prekinitve v računalniku vpliva na (strojne) prekinitve v nasprotju z izjemami. To pomeni, da čiščenje te zastave ne bo preprečilo izjem.