Pertraukti prieš išimtį
Bet kuriame kompiuteryje, normaliai vykdant programą, gali įvykti įvykių, kurie gali laikinai sustabdyti centrinį procesorių. Tokie įvykiai vadinami pertraukimais. Trukdžius gali sukelti programinės įrangos arba aparatinės įrangos gedimai. Techninės įrangos trikdžiai vadinami (paprasčiausiai) pertraukimais, o programinės įrangos trikdžiai - išimtimis. Iškėlus pertraukimą (programinę ar techninę įrangą), valdymas perkeliamas į specialią paprogramę, vadinamą ISR (pertraukiamų paslaugų rutiną), kuri gali valdyti tas sąlygas, kurias sukelia pertraukimas.
Kas trukdo?
Terminas „nutraukti“ paprastai skirtas aparatinės įrangos pertraukimams. Tai yra programos valdymo pertraukimai, kuriuos sukelia išoriniai aparatūros įvykiai. Čia išorinės priemonės, nepriklausančios procesoriui. Techninės įrangos trikdžiai dažniausiai gaunami iš daugelio skirtingų šaltinių, tokių kaip laikmačio lustas, periferiniai įrenginiai (klaviatūros, pelė ir kt.), Įvesties / išvesties prievadai (nuoseklieji, lygiagrečiai ir tt), diskų įrenginiai, CMOS laikrodis, išplėtimo kortelės (garso plokštė, vaizdo įrašas kortelė ir kt.). Tai reiškia, kad aparatinės įrangos trikdžiai beveik niekada neįvyksta dėl įvykio, susijusio su vykdomąja programa. Pvz., Įvykis, pavyzdžiui, vartotojo klaviatūros paspaudimas arba vidinės aparatinės įrangos laikmačio laikas, gali sukelti tokį trikdymą ir gali pranešti centriniam procesoriui, kad tam tikram įrenginiui reikia skirti šiek tiek dėmesio. Tokioje situacijoje kaip centrinis procesorius sustabdys tai, ką jis kada nors darė (t. Y. Pristabdo dabartinę programą), teiks įrenginiui reikalingas paslaugas ir grįš į įprastą programą. Kai nutrūksta aparatinė įranga ir CPU pradeda ISR, kiti aparatūros trikdžiai išjungiami (pvz., 80 × 86 mašinose). Jei jums reikia kitų aparatinės įrangos trikdžių, kai veikia ISR, turite tai padaryti aiškiai pašalindami pertraukimo vėliavą (su sti instrukcija). 80 × 86 mašinose pašalinus pertraukimo žymą, tai turės įtakos tik aparatinės įrangos trikdžiams.
Kas yra išimtys?
Išimtis yra programinės įrangos pertraukimas, kuris gali būti identifikuojamas kaip speciali tvarkytojo kasdienybė. Išimtį galima identifikuoti kaip automatiškai atsirandantį spąstus (spąstus galima identifikuoti kaip valdymo perdavimą, kurį inicijuoja programuotojas). Paprastai nėra jokių specialių instrukcijų, susijusių su išimtimis (spąstai kuriami naudojant konkrečią nurodymą). Taigi išimtis atsiranda dėl „išskirtinės“ būklės, kuri atsiranda vykdant programą. Pavyzdžiui, padalijimas iš nulio, neteisėto opdoko vykdymas arba su atmintimi susijusi gedimas gali sukelti išimčių. Kiekvieną kartą iškėlus išimtį, centrinis procesorius laikinai sustabdo vykdomą programą ir pradeda ISR. ISR bus nurodyta, ką daryti su išimtimi. Tai gali ištaisyti problemą arba, jei neįmanoma, grakščiai nutraukti programą atspausdindama tinkamą klaidos pranešimą. Nors konkreti instrukcija nesudaro išimties, išimtį visada sukels instrukcija. Pavyzdžiui, padalijimas pagal nulį gali įvykti tik vykdant padalijimo nurodymą.
Kuo skiriasi pertraukimas nuo išimties??
Trukdžiai yra aparatinės įrangos pertraukimai, o išimtys - programinės įrangos trikdžiai. Aparatinės įrangos pertraukimai dažniausiai išjungia kitus aparatūros pertraukimus, tačiau tai netaikoma išimtims. Jei jums reikia uždrausti aparatūros pertraukimus, kol nebus pateikta išimtis, turite aiškiai išvalyti pertraukimo vėliavą. Paprastai pertraukimo vėliava kompiuteryje daro įtaką (aparatinės įrangos) pertraukimams, o ne išimtims. Tai reiškia, kad išvalius šią vėliavą nebus išvengta išimčių.