Erinevus Katkestuse Ja Lõksu Vahel

Erinevus Katkestuse Ja Lõksu Vahel
Erinevus Katkestuse Ja Lõksu Vahel

Video: Erinevus Katkestuse Ja Lõksu Vahel

Video: Erinevus Katkestuse Ja Lõksu Vahel
Video: НОЧЬ на МОГИЛЕ ВЕДЬМЫ † Самое страшное КЛАДБИЩЕ † Записали ГОЛОС ВЕДЬМЫ † ЭГФ, THE WITCH'S GRAVE 2024, November
Anonim

Katkestus vs lõks

Igas arvutis võib programmi tavapärase käivitamise ajal olla sündmusi, mis võivad põhjustada protsessori ajutise seiskamise. Selliseid sündmusi nimetatakse katkestusteks. Katkestused võivad olla põhjustatud kas tarkvarast või riistvarast. Riistvarakatkestusi nimetatakse (lihtsalt) katkestusteks, tarkvara katkestusi aga eranditeks või lõksudeks. Erand on automaatselt genereeritud tarkvara katkestus, samas kui lõks on tarkvara poolt käivitatud katkestus, mille on algatanud programmeerija. Kui katkestus (tarkvara või riistvara) on tõstetud, viiakse juhtseade spetsiaalsesse alamprogrammi nimega ISR (Interrupt Service Routine), mis saab hakkama katkestusega tekitatud tingimustega.

Mis on katkestus?

Termin Katkestus on tavaliselt reserveeritud riistvarakatkestustele. Need on välise riistvarasündmuse põhjustatud programmi juhtimise katkestused. Siin tähendab väline protsessori välist. Riistvarakatkestused pärinevad tavaliselt paljudest erinevatest allikatest, näiteks taimerikiibist, lisaseadmetest (klaviatuurid, hiir jne), sisend- / väljundportidest (jada-, paralleelsed jne), kettaseadmetest, CMOS-kellast, laienduskaartidest (helikaart, video) kaart jne). See tähendab, et riistvara katkestusi ei esine peaaegu kunagi mõne käivitava programmiga seotud sündmuse tõttu. Näiteks võib selline sündmus nagu kasutaja klahvivajutus klaviatuuril või sisemise riistvaralise taimeri ajastus aeglustada sellist katkestust ja teavitada protsessorit, et teatud seade vajab teatud tähelepanu. Sellises olukorras peatab protsessor kõik, mida ta tegi (st peatab praeguse programmi),pakub seadmele vajalikku teenust ja naaseb tavapärase programmi juurde. Kui riistvarakatkestused ilmnevad ja protsessor käivitab ISR-i, keelatakse muud riistvarakatkestused (nt 80 × 86 masinates). Kui teil on vaja muid riistvarakatkestusi ISR-i töötamise ajal, peate seda tegema selgesõnaliselt, tühjendades katkestuse lipu (sti juhendiga). 80 × 86 masinates mõjutab katkestuse lipu tühjendamine ainult riistvara katkestusi.katkestuse lipu kustutamine mõjutab ainult riistvara katkestusi.katkestuse lipu kustutamine mõjutab ainult riistvara katkestusi.

Mis on lõks?

Lõksu saab tuvastada juhtimise ülekandena, mille algatab programmeerija. Terminit Trap kasutatakse asendusmärgiga erand (mis on automaatselt toimuv tarkvara katkestus). Kuid mõned võivad väita, et lõks on lihtsalt eriline alamprogrammkõne. Seega kuuluvad nad tarkvaraliste katkestuste kategooriasse. Näiteks 80 × 86 masinates saab programmeerija int-käsu abil lõksu algatada. Kuna lõks on alati tingimusteta, viiakse kontroll alati lõksuga seotud alamprogrammi. Täpne käsk, mis kutsub üles lõksu käitlemise rutiini, on hõlpsasti tuvastatav, kuna lõksu täpsustamiseks kasutatakse selgesõnalist käsku.

Mis vahe on katkestusel ja lõksul?

Katkestused on riistvaralised katkestused, samas kui lõksud on tarkvara poolt kutsutud katkestused. Riistvarakatkestused keelavad tavaliselt muud riistvarakatkestused, kuid see ei kehti lõksude kohta. Kui peate riistvara katkestused keelama, kuni lõks kätte saadetakse, peate katkestuse lipu selgesõnaliselt kustutama. Ja tavaliselt mõjutab arvuti katkestuse lipp (riistvara) katkestusi, mitte püüniseid. See tähendab, et selle lipu kustutamine ei takista püüniseid. Erinevalt lõksudest peaksid katkestused säilitama protsessori eelmise oleku.

Soovitatav: