Prekinitev vs Trap
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 ali Pasti. Izjema je samodejno ustvarjena prekinitev programske opreme, medtem ko je Trap prekinitev programske opreme, ki jo sproži programer. 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 sti navodilo). Pri 80 × 86 strojih bo brisanje zastave prekinitve vplivalo samo na strojne prekinitve.
Kaj je past?
Trap je mogoče prepoznati kot prenos nadzora, ki ga sproži programer. Izraz Trap se uporablja zamenljivo z izrazom Izjema (ki se samodejno pojavlja prekinitev programske opreme). Toda nekateri lahko trdijo, da je past preprosto poseben klic podprograma. Tako sodijo v kategorijo prekinitev, ki jih prikliče programska oprema. Na primer, v 80 × 86 strojih programer lahko uporablja int navodila za sprožitev pasti. Ker je past vedno brezpogojna, bo kontrola vedno prenesena v podprogram, povezan s pastmi. Natančno navodilo, ki prikliče rutino za ravnanje s pastjo, je enostavno določiti, ker se za določanje pasti uporabi izrecno navodilo.
Kakšna je razlika med Interrupt in Trap?
Prekinitve so strojne prekinitve, pasti pa prekinitve, ki jih prikliče programska oprema. Pojavi prekinitev strojne opreme običajno onemogočijo druge strojne prekinitve, vendar to ne velja za pasti. Če morate onemogočiti strojne prekinitve, dokler se ne vloži past, morate izrecno počistiti zastavico za prekinitev. Ponavadi zastava prekinitve v računalniku vpliva na (strojno) prekinitve v nasprotju s pasti. To pomeni, da čiščenje te zastave ne bo preprečilo pasti. Za razliko od pasti bi morale prekinitve ohraniti prejšnje stanje CPU-ja.