Skirtumas tarp pertraukimo ir išimties

Skirtumas tarp pertraukimo ir išimties
Skirtumas tarp pertraukimo ir išimties

Video: Skirtumas tarp pertraukimo ir išimties

Video: Skirtumas tarp pertraukimo ir išimties
Video: Тепловизор - купольная двухспектральная IP-камера 2024, Liepa
Anonim

Pertraukimas prieš išimtis

Bet kuriame kompiuteryje, normaliai vykdant programą, gali būti įvykių, dėl kurių CPU gali laikinai sustoti. Tokie įvykiai vadinami pertraukimais. Pertraukimus gali sukelti programinės arba aparatinės įrangos gedimai. Aparatinės įrangos pertraukimai vadinami (paprasčiausiai) pertraukimais, o programinės įrangos pertraukimai vadinami išimtimis. Pakėlus pertraukimą (programinę ar aparatinę įrangą), valdymas perkeliamas į specialią paprogramę, vadinamą ISR (pertraukimo tarnybos rutina), kuri gali tvarkyti sąlygas, kurias sukelia pertraukimas.

Kas yra pertraukimas?

Terminas „Pertraukimas“paprastai yra skirtas aparatinės įrangos pertraukimams. Tai yra programos valdymo pertraukimai, kuriuos sukelia išoriniai aparatūros įvykiai. Čia išorinis reiškia išorinį procesorių. Aparatinės įrangos pertraukimai paprastai gaunami iš daugelio skirtingų š altinių, tokių kaip laikmačio lustas, išoriniai įrenginiai (klaviatūros, pelė ir kt.), I/O prievadai (nuoseklieji, lygiagrečiai ir kt.), diskų įrenginiai, CMOS laikrodis, išplėtimo plokštės (garso plokštė, vaizdo įrašas). kortelė ir kt). Tai reiškia, kad aparatinės įrangos pertraukimai beveik niekada neįvyksta dėl kažkokio įvykio, susijusio su vykdomąja programa. Pavyzdžiui, toks įvykis kaip vartotojo klaviatūros paspaudimas arba vidinis aparatinės įrangos laikmačio laikas gali padidinti tokio pobūdžio pertraukimą ir informuoti centrinį procesorių, kad tam tikram įrenginiui reikia skirti tam tikrą dėmesį. Esant tokiai situacijai, centrinis procesorius sustabdo tai, ką darė (t. y. pristabdo esamą programą), suteiks įrenginiui reikalingą paslaugą ir grįš į įprastą programą. Kai įvyksta aparatinės įrangos pertraukimai ir CPU paleidžia ISR, kiti aparatinės įrangos pertraukimai išjungiami (pvz., 80 × 86 įrenginiuose). Jei jums reikia kitų aparatinės įrangos pertraukimų, kai veikia ISR, turite tai padaryti aiškiai išvalydami pertraukimo vėliavėlę (su sti instrukcija).80 × 86 įrenginiuose pertraukimo vėliavėlės išvalymas turės įtakos tik aparatinės įrangos pertraukimams.

Kas yra išimtys?

Išimtis yra programinės įrangos pertraukimas, kurį galima identifikuoti kaip specialią tvarkyklės tvarką. Išimtis gali būti identifikuojama kaip automatiškai atsirandantys spąstai (Spąstai gali būti identifikuojami kaip valdymo perdavimas, kurį inicijuoja programuotojas). Paprastai nėra jokių konkrečių instrukcijų, susijusių su išimtimis (spąstai generuojami naudojant konkrečią instrukciją). Taigi, išimtis atsiranda dėl „išskirtinės“sąlygos, atsirandančios programos vykdymo metu. Pavyzdžiui, padalijimas iš nulio, neteisėto operacijos kodo vykdymas arba su atmintimi susijęs gedimas gali sukelti išimtis. Kai tik iškeliama išimtis, CPU laikinai sustabdo vykdomą programą ir paleidžia ISR. ISR bus nurodyta, ką daryti su išimtimi. Tai gali ištaisyti problemą arba, jei tai neįmanoma, ji gali gražiai nutraukti programą išspausdindama tinkamą klaidos pranešimą. Nors konkretus nurodymas nesukelia išimčių, išimtį visada sukels nurodymas. Pavyzdžiui, dalybos iš nulio klaida gali įvykti tik vykdant padalijimo komandą.

Kuo skiriasi pertraukimas ir išimtis?

Pertraukimai yra aparatinės įrangos pertraukimai, o išimtys yra programinės įrangos pertraukimai. Atsiradus aparatinės įrangos pertraukimams, paprastai išjungiami kiti aparatinės įrangos pertraukimai, tačiau tai netinka išimtims. Jei reikia neleisti aparatinės įrangos pertraukimų, kol nebus pateikta išimtis, turite aiškiai išvalyti pertraukimo vėliavėlę. Ir paprastai pertraukimo vėliavėlė kompiuteryje turi įtakos (aparatinės įrangos) pertraukimams, o ne išimtims. Tai reiškia, kad šios vėliavėlės išvalymas neapsaugos nuo išimčių.

Rekomenduojamas: