Nutraukti vs spąstus
Bet kuriame kompiuteryje, įprastai vykdant programą, gali būti įvykių, dėl kurių procesorius gali laikinai sustoti. Tokie įvykiai kaip šie 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 arba spąstais. Išimtis yra automatiškai sugeneruotas programinės įrangos pertraukimas, o „Spąstai“yra programinės įrangos sukeltas pertraukimas, kurį inicijuoja programuotojas. 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 viską, ką 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 spąstai?
Spąstus galima identifikuoti kaip valdymo perdavimą, kurį inicijuoja programuotojas. Terminas „Spąstai“vartojamas pakaitomis su terminu „Išimtis“(tai yra automatiškai atsirandantis programinės įrangos pertraukimas). Tačiau kai kurie gali teigti, kad spąstai yra tiesiog specialus paprogramės skambutis. Taigi jie priskiriami programinės įrangos iškeltų pertraukimų kategorijai. Pvz., 80 × 86 mašinose programuotojas gali naudoti int komandą spąstams inicijuoti. Kadangi spąstai visada yra besąlygiški, valdymas visada bus perduotas su spąstais susijusiam paprogramiui. Tiksli instrukcija, reikalaujanti spąstų tvarkymo rutinos, yra lengvai identifikuojama, nes spąstams nurodyti naudojama aiški instrukcija.
Kuo skiriasi pertraukimas nuo spąstų?
Pertraukimai yra aparatinės įrangos pertraukimai, o gaudyklės yra programinės įrangos pertrūkiai. Aparatinės įrangos pertraukimai dažniausiai išjungia kitus aparatūros pertraukimus, tačiau tai nėra tiesa spąstams. Jei jums reikia neleisti aparatūros pertraukimų, kol nebus įteikti spąstai, turite aiškiai išvalyti pertraukimo žymą. Dažniausiai pertraukimo vėliava kompiuteryje veikia (aparatinę), o ne spąstus. Tai reiškia, kad išvalius šią vėliavą nebus užkirstas kelias spąstams. Skirtingai nuo spąstų, pertraukimai turėtų išsaugoti ankstesnę procesoriaus būseną.