Nutraukti vs išimtis
Bet kuriame kompiuteryje, įprastai vykdant programą, gali būti įvykių, dėl kurių procesorius gali laikinai sustoti. Tokie įvykiai vadinami pertraukimais. Pertraukimus gali sukelti programinės įrangos arba aparatinės įrangos gedimai. Aparatinės įrangos pertraukimai vadinami (tiesiog) pertraukimais, o programinės įrangos pertraukimai - išimtimis. Iškėlus pertraukimą (programinę ar aparatinę įrangą), valdiklis perkeliamas į specialų paprogramę, vadinamą ISR („Interrupt Service Routine“), kuri gali valdyti nutraukimo keliamas sąlygas.
Kas yra pertraukimas?
Terminas „Nutraukti“paprastai skirtas aparatūros pertraukimams. Tai programos valdymo sutrikimai, kuriuos sukelia išoriniai aparatūros įvykiai. Čia išorinė reiškia išorinę procesoriaus dalį. Aparatinės įrangos pertraukimai paprastai gaunami iš daugybės skirtingų šaltinių, tokių kaip laikmačio lustas, periferiniai įrenginiai (klaviatūros, pelė ir kt.), I / O prievadai (nuoseklusis, lygiagretusis ir kt.), Diskų įrenginiai, CMOS laikrodis, plėtotės kortelės (garso plokštė, vaizdo įrašai kortelę ir pan.). Tai reiškia, kad aparatinės įrangos sutrikimai beveik niekada neįvyksta dėl įvykio, susijusio su vykdančiąja programa. Pvz., Įvykis, pavyzdžiui, klaviatūros klavišo paspaudimas vartotojui, arba vidinis aparatūros laikmačio laikas, gali sukelti tokio pobūdžio pertraukimą ir informuoti centrinį procesorių, kad tam tikram įrenginiui reikia skirti šiek tiek dėmesio. Tokioje situacijoje procesorius sustabdys tai, ką jis darė (t. Y. Pristabdys dabartinę programą),teikia prietaisui reikalingą paslaugą ir grįš į įprastą programą. Įvykus aparatinės įrangos pertraukimams ir procesoriui paleidus ISR, kiti aparatinės įrangos pertraukimai išjungiami (pvz., 80 × 86 mašinose). Jei jums reikia kitų aparatūros pertraukimų, kol veikia ISR, turite tai padaryti aiškiai išvalydami pertraukimo žymą (su sti instrukcija). 80 × 86 mašinose pertraukimo žymos išvalymas paveiks tik aparatūros pertraukimus.pertraukimo žymos išvalymas paveiks tik aparatūros pertraukimus.pertraukimo žymos išvalymas paveiks tik aparatūros pertraukimus.
Kas yra išimtys?
Exception is a software interrupt, which can be identified as a special handler routine. Exception can be identified as an automatically occurring trap (a Trap can be identified as a transfer of control, which is initiated by the programmer). Generally, there are no specific instructions associated with exceptions (traps are generated using a specific instruction). So, an exception occurs due to an “exceptional” condition that occurs during program execution. For example, division by zero, execution of an illegal opcode or memory related fault could cause exceptions. Whenever an exception is raised, the CPU temporarily suspends the program it was executing and starts the ISR. ISR will contain what to do with the exception. It may correct the problem or if it is not possible it may abort the program gracefully by printing a suitable error message. Although a specific instruction does not cause an exception, an exception will always be caused by an instruction. For example, the division by zero error can only occur during the execution of the division instruction.
Koks skirtumas tarp pertraukimo ir išimties?
Pertraukimai yra aparatinės įrangos, o išimtys - programinės įrangos pertraukimai. Aparatinės įrangos pertraukimai dažniausiai išjungia kitus aparatūros pertraukimus, tačiau tai netaikoma išimtims. Jei jums reikia neleisti aparatūros pertraukimų, kol nebus suteikta išimtis, turite aiškiai išvalyti pertraukimo žymą. Paprastai pertraukimo žymė kompiuteryje veikia (aparatinę), o ne išimtis. Tai reiškia, kad išvalius šią vėliavą nebus išvengta išimčių.