Katkestama vs lõksu
Mis tahes arvutis võib programmi tavapärase täitmise ajal esineda sündmusi, mis võivad põhjustada protsessori ajutise peatamise. Selliseid sündmusi nimetatakse katkestusteks. Katkestusi võivad põhjustada nii tarkvara kui ka riistvara rikked. Riistvarakatkestusi nimetatakse (lihtsalt) katkestusteks, tarkvara katkestusi nimetatakse eranditeks või lõksudeks. Erand on automaatselt genereeritud tarkvarakatkestus, samas kui lõks on programmeerija algatatud tarkvarakatkestus. Kui katkestus (tarkvara või riistvara) on tõstatatud, viiakse juhtimine spetsiaalsesse alamprogrammi nimega ISR (katkestatav teenuse rutiin), mis saab hakkama katkestuse tekitatud tingimustega..
Mis on katkestaja?
Termin katkestatakse tavaliselt riistvarakatkestuste jaoks. Need on välise riistvara sündmustest põhjustatud programmi juhtimise katkestused. Siin on protsessorist väljaspool olevad välised vahendid. Riistvaraprobleemid pärinevad tavaliselt paljudest erinevatest allikatest, näiteks taimerikiip, lisaseadmed (klaviatuurid, hiir jne), sisend- / väljundpordid (jada-, paralleelsed jne), kettadraivid, CMOS-kell, laienduskaardid (helikaart, video kaart jms). See tähendab, et riistvaraprobleeme peaaegu kunagi ei juhtu mõne käivitusprogrammiga seotud sündmuse tõttu. Näiteks võib selline sündmus nagu kasutaja klaviatuuri vajutus klaviatuuril või riistvara sisemise taimeri aegumine sellist tüüpi katkestust põhjustada ja võib keskseadmele teatada, et teatud seade vajab teatavat tähelepanu. Sellises olukorras peatab CPU kõik, mida ta tegi (st peatab praeguse programmi), pakub seadmele vajalikku teenust ja naaseb tavapärase programmi juurde. Kui riistvaraprobleemid ilmnevad ja protsessor käivitab ISR-i, keelatakse muud riistvaraprobleemid (nt 80 × 86 masinas). Kui vajate ISR-i töötamise ajal muid riistvaraprobleeme, peate seda tegema selgesõnaliselt, katkestades katkestamise lipu (koos sti juhendamine). 80 × 86 masinas mõjutab katkestuse lipu tühjendamine ainult riistvara katkestusi.
Mis on lõks?
Lõksu võib tuvastada kui juhtimise ülekandmist, mille algatab programmeerija. Terminit Trap kasutatakse vaheldumisi terminiga Erand (see on tarkvara automaatselt katkemine). Kuid mõned võivad väita, et lõks on lihtsalt eriline alamprogrammi üleskutse. Seega kuuluvad nad tarkvaraga seotud katkestuste kategooriasse. Näiteks 80 × 86 masinas saab programmeerija kasutada nuppu int käsk lõksu algatamiseks. Kuna lõks on alati tingimusteta, viiakse kontroll alati lõksuga seotud alamprogrammi. Täpne käsk, mis kutsub lõksu käitlemise rutiini, on hõlpsasti tuvastatav, kuna lõksu täpsustamiseks kasutatakse selget juhist.
Mis vahe on katkestusel ja lõksul??
Katkestused on riistvaralised katkestused, lõksud on tarkvara poolt kutsutud katkestused. Riistvaraprobleemid keelavad tavaliselt muud riistvaraprobleemid, kuid see ei kehti püüniste puhul. Kui peate keelama riistvara katkestused, kuni lõks on kätte saadud, peate katkestuse lipu selgesõnaliselt tühjendama. Ja tavaliselt mõjutab arvuti katkestamise lipp (riistvara) katkestusi, mitte püüniseid. See tähendab, et selle lipu kustutamine ei takista püüniseid. Erinevalt püünistest peaksid katkestused säilitama CPU varasema oleku.