Pārtraukums pret izņēmumu
Jebkurā datorā parastās programmas izpildes laikā var būt notikumi, kas var izraisīt CPU īslaicīgu apstāšanos. Šādus notikumus sauc par pārtraukumiem. Pārtraukumus var izraisīt programmatūras vai aparatūras kļūdas. Aparatūras pārtraukumus sauc (vienkārši) par pārtraukumiem, savukārt programmatūras pārtraukumus sauc par izņēmumiem. Kad pārtraukums (programmatūra vai aparatūra) ir paaugstināts, vadība tiek pārsūtīta uz īpašu apakšprogrammu, ko sauc par ISR (Interrupt Service Routine), kas var apstrādāt nosacījumus, ko rada pārtraukums.
Kas ir pārtraukums?
Jēdziens Pārtraukt parasti ir paredzēts aparatūras pārtraukumiem. Tie ir programmas vadības pārtraukumi, ko izraisa ārējie aparatūras notikumi. Šeit ārējais nozīmē ārpus CPU. Aparatūras pārtraukumi parasti nāk no daudziem dažādiem avotiem, piemēram, taimera mikroshēma, perifērijas ierīces (tastatūras, peles utt.), I/O porti (seriālie, paralēlie utt.), diskdziņi, CMOS pulkstenis, paplašināšanas kartes (skaņas karte, video). karte utt.). Tas nozīmē, ka aparatūras pārtraukumi gandrīz nekad nenotiek kāda notikuma dēļ, kas saistīts ar izpildprogrammu. Piemēram, notikums, piemēram, lietotāja tastatūras nospiešana vai iekšējais aparatūras taimera taimauts, var palielināt šāda veida pārtraukumu un informēt centrālo procesoru, ka noteiktai ierīcei ir jāpievērš uzmanība. Šādā situācijā centrālais procesors pārtrauks visu, ko tas darīja (t.i., apturēs pašreizējo programmu), nodrošinās ierīcei nepieciešamo pakalpojumu un atgriezīsies pie parastās programmas. Kad notiek aparatūras pārtraukumi un centrālais procesors sāk ISR, citi aparatūras pārtraukumi tiek atspējoti (piemēram, 80 × 86 iekārtās). Ja jums ir nepieciešami citi aparatūras pārtraukumi, kamēr darbojas ISR, jums tas ir skaidri jādara, notīrot pārtraukuma karogu (ar sti instrukciju).80 × 86 iekārtās pārtraukuma karoga dzēšana ietekmēs tikai aparatūras pārtraukumus.
Kas ir izņēmumi?
Izņēmums ir programmatūras pārtraukums, ko var identificēt kā īpašu apstrādātāja rutīnu. Izņēmumu var identificēt kā automātiski notiekošu slazdu (Slazdu var identificēt kā vadības nodošanu, ko ierosina programmētājs). Parasti nav īpašu norādījumu, kas saistīti ar izņēmumiem (slazdi tiek ģenerēti, izmantojot īpašu instrukciju). Tātad izņēmums rodas “ārkārtēja” stāvokļa dēļ, kas rodas programmas izpildes laikā. Piemēram, dalīšana ar nulli, nelegāla operētājkoda izpilde vai ar atmiņu saistīta kļūda var izraisīt izņēmumus. Ikreiz, kad tiek izvirzīts izņēmums, CPU uz laiku aptur programmu, kuru tas izpildīja, un sāk ISR. ISR būs norādīts, ko darīt ar izņēmumu. Tas var novērst problēmu vai, ja tas nav iespējams, var graciozi pārtraukt programmu, izdrukājot piemērotu kļūdas ziņojumu. Lai gan konkrēta instrukcija neizraisa izņēmumu, izņēmumu vienmēr izraisīs instrukcija. Piemēram, dalīšana ar nulli kļūdu var notikt tikai dalīšanas instrukcijas izpildes laikā.
Kāda ir atšķirība starp pārtraukumu un izņēmumu?
Pārtraukumi ir aparatūras pārtraukumi, savukārt izņēmumi ir programmatūras pārtraukumi. Aparatūras pārtraukumu rašanās parasti atspējo citus aparatūras pārtraukumus, taču tas neattiecas uz izņēmumiem. Ja jums ir jāatļauj aparatūras pārtraukumi, līdz tiek nodrošināts izņēmums, jums ir skaidri jānotīra pārtraukuma karodziņš. Un parasti pārtraukuma karodziņš datorā ietekmē (aparatūras) pārtraukumus, nevis izņēmumus. Tas nozīmē, ka šī karoga notīrīšana nenovērsīs izņēmumus.