Rozdíl Mezi Přerušením A Výjimkou

Rozdíl Mezi Přerušením A Výjimkou
Rozdíl Mezi Přerušením A Výjimkou

Video: Rozdíl Mezi Přerušením A Výjimkou

Video: Rozdíl Mezi Přerušením A Výjimkou
Video: Jaký je rozdíl mezi očkováními na covid? – Vědátorovinka 2024, Listopad
Anonim

Přerušení vs Výjimka

V jakémkoli počítači by během jeho normálního provádění programu mohly nastat události, které mohou způsobit dočasné zastavení CPU. Události, jako je tento, se nazývají přerušení. Přerušení může být způsobeno chybou softwaru nebo hardwaru. Hardwarová přerušení se nazývají (jednoduše) Přerušení, zatímco softwarová přerušení se nazývají Výjimky. Jakmile je vyvoláno přerušení (software nebo hardware), je řízení přeneseno do speciálního podprogramu zvaného ISR (Interrupt Service Routine), který zvládne podmínky vyvolané přerušením.

Co je to přerušení?

Termín Interrupt je obvykle vyhrazen pro hardwarová přerušení. Jsou to přerušení řízení programu způsobená událostmi externího hardwaru. Zde externí znamená mimo CPU. Hardwarová přerušení obvykle pocházejí z mnoha různých zdrojů, jako je časovač, periferní zařízení (klávesnice, myš atd.), I / O porty (sériové, paralelní atd.), Diskové jednotky, hodiny CMOS, rozšiřující karty (zvuková karta, video karta atd.). To znamená, že k hardwarovým přerušením téměř nikdy nedojde kvůli nějaké události související s provádějícím programem. Například událost jako stisknutí klávesy na klávesnici uživatelem nebo vypršení časového limitu interního hardwarového časovače může zvýšit tento druh přerušení a může informovat CPU, že určité zařízení vyžaduje určitou pozornost. V takové situaci CPU zastaví to, co kdy dělalo (tj. Pozastaví aktuální program),poskytuje službu požadovanou zařízením a vrátí se k normálnímu programu. Když dojde k hardwarovým přerušením a CPU spustí ISR, další hardwarová přerušení jsou deaktivována (např. U strojů 80 × 86). Pokud potřebujete další hardwarová přerušení, když běží ISR, musíte to udělat explicitně vymazáním příznaku přerušení (s instrukcí sti). U strojů 80 × 86 bude mít příznak přerušení vliv pouze na hardwarová přerušení.vymazání příznaku přerušení ovlivní pouze hardwarová přerušení.vymazání příznaku přerušení ovlivní pouze hardwarová přerušení.

Co jsou výjimky?

Výjimkou je softwarové přerušení, které lze identifikovat jako speciální rutinu obsluhy. Výjimku lze identifikovat jako automaticky se vyskytující past (Trap lze identifikovat jako přenos kontroly, který je iniciován programátorem). Obecně neexistují žádné specifické instrukce spojené s výjimkami (pasti jsou generovány pomocí konkrétní instrukce). Dojde tedy k výjimce v důsledku „výjimečné“podmínky, která nastane během provádění programu. Například dělení nulou, provedení neplatného operačního kódu nebo porucha související s pamětí mohou způsobit výjimky. Kdykoli je vyvolána výjimka, CPU dočasně pozastaví program, který spouštěl, a spustí ISR. ISR bude obsahovat, co dělat s výjimkou. Může to problém vyřešit, nebo pokud to není možné, může to program elegantně přerušit vytištěním vhodné chybové zprávy. Ačkoli konkrétní instrukce nezpůsobí výjimku, výjimka bude vždy způsobena instrukcí. Například chyba dělení nulou může nastat pouze během provádění instrukce dělení.

Jaký je rozdíl mezi přerušením a výjimkou?

Přerušení jsou hardwarová přerušení, zatímco výjimkou jsou softwarová přerušení. Výskyty hardwarových přerušení obvykle zakazují další hardwarová přerušení, ale to neplatí pro výjimky. Pokud potřebujete zakázat hardwarová přerušení, dokud nebude doručena výjimka, musíte explicitně vymazat příznak přerušení. A obvykle příznak přerušení v počítači ovlivňuje (hardwarová) přerušení na rozdíl od výjimek. To znamená, že vymazání tohoto příznaku nezabrání výjimkám.

Doporučená: