Rozdiel medzi prerušením a pascou

Rozdiel medzi prerušením a pascou
Rozdiel medzi prerušením a pascou

Video: Rozdiel medzi prerušením a pascou

Video: Rozdiel medzi prerušením a pascou
Video: Элизабет Гилберт: Ваш неуловимый гений 2024, Júl
Anonim

Prerušenie vs pasca

V ktoromkoľvek počítači sa počas normálneho vykonávania programu môžu vyskytnúť udalosti, ktoré môžu spôsobiť dočasné zastavenie procesora. Takéto udalosti sa nazývajú prerušenia. Prerušenia môžu byť spôsobené chybami softvéru alebo hardvéru. Hardvérové prerušenia sa nazývajú (jednoducho) prerušenia, zatiaľ čo softvérové prerušenia sa nazývajú výnimky alebo pasce. Výnimka je automaticky generované softvérové prerušenie, zatiaľ čo pasca je softvérovo vyvolané prerušenie iniciované programátorom. Po vyvolaní prerušenia (softvéru alebo hardvéru) sa riadenie prenesie do špeciálneho podprogramu nazývaného ISR (Interrupt Service Rutine), ktorý dokáže zvládnuť podmienky vyvolané prerušením.

Čo je to prerušenie?

Pojem prerušenie je zvyčajne vyhradený pre hardvérové prerušenia. Sú to prerušenia riadenia programu spôsobené externými hardvérovými udalosťami. Externý tu znamená externý voči CPU. Hardvérové prerušenia zvyčajne pochádzajú z mnohých rôznych zdrojov, ako sú čip časovača, periférne zariadenia (klávesnice, myš atď.), I/O porty (sériové, paralelné atď.), diskové jednotky, hodiny CMOS, rozširujúce karty (zvuková karta, video). karta atď.). To znamená, že hardvérové prerušenia sa takmer nikdy nevyskytujú v dôsledku nejakej udalosti súvisiacej s vykonávaným programom. Napríklad udalosť, ako je stlačenie klávesu na klávesnici používateľom, alebo časový limit interného hardvérového časovača môže vyvolať tento druh prerušenia a môže informovať CPU, že určité zariadenie potrebuje určitú pozornosť. V takejto situácii CPU zastaví čokoľvek, čo robil (t.j. pozastaví aktuálny program), poskytne službu požadovanú zariadením a vráti sa späť k normálnemu programu. Keď dôjde k hardvérovým prerušeniam a CPU spustí ISR, ostatné hardvérové prerušenia sa deaktivujú (napr.g. v strojoch 80×86). Ak potrebujete, aby sa počas spustenia ISR vyskytli ďalšie hardvérové prerušenia, musíte to urobiť explicitne zrušením príznaku prerušenia (s inštrukciou sti). Na počítačoch s rozlíšením 80×86 ovplyvní vymazanie príznaku prerušenia iba hardvérové prerušenia.

Čo je pasca?

Trap možno identifikovať ako prenos kontroly, ktorý iniciuje programátor. Pojem pasca sa používa zameniteľne s pojmom výnimka (čo je automaticky sa vyskytujúce softvérové prerušenie). Niektorí však môžu namietať, že pasca je jednoducho špeciálne volanie podprogramu. Spadajú teda do kategórie softvérovo vyvolaných prerušení. Napríklad na strojoch 80×86 môže programátor použiť inštrukciu int na spustenie pasce. Pretože pasca je vždy bezpodmienečná, riadenie sa vždy prenesie do podprogramu spojeného s pascou. Presná inštrukcia, ktorá vyvoláva rutinu na manipuláciu s pascou, je ľahko identifikovateľná, pretože na špecifikáciu pasce sa používa explicitná inštrukcia.

Aký je rozdiel medzi Interrupt a Trap?

Prerušenia sú hardvérové prerušenia, zatiaľ čo pasce sú softvérovo vyvolané prerušenia. Výskyt hardvérových prerušení zvyčajne zakáže iné hardvérové prerušenia, ale to neplatí pre pasce. Ak potrebujete zakázať hardvérové prerušenia, kým nebude obsluhovaná pasca, musíte explicitne vymazať príznak prerušenia. A zvyčajne príznak prerušenia na počítači ovplyvňuje (hardvérové) prerušenia na rozdiel od pascí. To znamená, že vymazanie tohto príznaku nezabráni pasci. Na rozdiel od pascí by prerušenia mali zachovať predchádzajúci stav CPU.

Odporúča: