Prekinitev vs past
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 ali pasti. Izjema je samodejno ustvarjena programska prekinitev, medtem ko je Trap programsko preklicana prekinitev, ki jo sproži programer. 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 vse, 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 je past?
Pasti je mogoče prepoznati kot prenos nadzora, ki ga sproži programer. Izraz Trap se uporablja izmenično z izrazom Exception (ki je samodejna programska prekinitev). Toda nekateri lahko trdijo, da je past preprosto poseben podprogram. Tako spadajo v kategorijo programsko preklicanih prekinitev. Na primer, v strojih 80 × 86 lahko programer z navodilom int sproži past. Ker je past vedno brezpogojna, se bo nadzor vedno prenesel v 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 izrecno navodilo.
Kakšna je razlika med Interrupt in Trap?
Prekinitve so strojne prekinitve, medtem ko so pasti programsko preklicane prekinitve. Pojave strojnih prekinitev običajno onemogočijo druge strojne prekinitve, vendar to ne velja za pasti. Če morate onemogočiti prekinitve strojne opreme, dokler se ne ujame past, morate izrecno počistiti zastavico prekinitve. In ponavadi zastavica prekinitve v računalniku vpliva na (strojne) prekinitve, namesto na pasti. To pomeni, da čiščenje te zastave ne bo preprečilo pasti. Za razliko od pasti morajo prekinitve ohraniti prejšnje stanje CPU.