Pārtraukt vs izņēmums
Jebkurā datorā normālas programmas izpildes laikā var būt notikumi, kas var izraisīt CPU īslaicīgu apturēšanu. Šādus notikumus sauc par pārtraukumiem. Traucējumus var izraisīt programmatūras vai aparatūras traucējumi. Aparatūras pārtraukumus sauc par (vienkārši) 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ārvietota uz īpašu apakšprogrammu, ko sauc par ISR (Interrupt Service Routine) un kas var izturēties pret pārtraukuma radītajiem apstākļiem..
Kas ir pārtraukums?
Termins Pārtraukt parasti tiek rezervēts aparatūras pārtraukumiem. Tie ir programmas vadības pārtraukumi, ko izraisa ārēji aparatūras notikumi. Šeit CPU ārēji līdzekļi. Aparatūras pārtraukumi parasti nāk no daudziem dažādiem avotiem, piemēram, taimera mikroshēmas, perifērijas ierīcēm (tastatūras, pele utt.), I / O portiem (sērijas, paralēli utt.), Disku diskdziņiem, CMOS pulkstenim, paplašināšanas kartēm (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 izpildošo programmu. Piemēram, tāds notikums kā lietotāja taustiņu nospiešana uz tastatūras vai iekšējā aparatūras taimera taimauts var izraisīt šāda veida pārtraukumus un var informēt centrālo procesoru, ka noteiktai ierīcei jāpievērš uzmanība. Šādā situācijā CPU pārtrauks visu, ko kādreiz darīja (t.i., aptur pašreizējo programmu), nodrošina ierīces prasītos pakalpojumus un atgriezīsies pie parastās programmas. Ja notiek aparatūras pārtraukumi un centrālais procesors sāk ISR, citi aparatūras pārtraukumi tiek atspējoti (piemēram, 80 × 86 mašīnās). Ja ISR darbības laikā nepieciešami citi aparatūras pārtraukumi, tas jādara skaidri, notīrot pārtraukuma karogu (ar sti norādījumu). 80 × 86 mašīnās pārtraukšanas karoga notīrīš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, kuru 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, nelikumīga opkoda izpilde vai ar atmiņu saistīta kļūda varētu izraisīt izņēmumus. Ikreiz, kad tiek izvirzīts izņēmums, centrālais procesors uz laiku aptur programmu, kuru tā izpildīja, un sāk ISR. ISR saturēs to, ko darīt ar izņēmumu. Tas var novērst problēmu vai, ja tas nav iespējams, tas graciozi var pārtraukt programmu, izdrukājot piemērotu kļūdas ziņojumu. Lai arī konkrēta instrukcija neizraisa izņēmumu, izņēmumu vienmēr rada instrukcija. Piemēram, dalīšana ar nulli kļūda var notikt tikai dalīšanas instrukcijas izpildes laikā.
Kāda ir atšķirība starp pārtraukšanu un izņēmumu?
Pārtraukumi ir aparatūras pārtraukumi, savukārt izņēmumi ir programmatūras pārtraukumi. Aparatūras pārtraukumu gadījumi parasti atspējo citus aparatūras pārtraukumus, taču tas neattiecas uz izņēmumiem. Ja jums ir jāatsakās no aparatūras pārtraukumiem, līdz tiek izsniegts izņēmums, jums skaidri jānoņem pārtraukuma karodziņš. Parasti pārtraukšanas karodziņš datorā ietekmē (aparatūras) pārtraukumus, nevis izņēmumus. Tas nozīmē, ka šī karoga notīrīšana nenovērsīs izņēmumus.