Rozdíl Mezi Interrupt A Trap

Rozdíl Mezi Interrupt A Trap
Rozdíl Mezi Interrupt A Trap

Video: Rozdíl Mezi Interrupt A Trap

Video: Rozdíl Mezi Interrupt A Trap
Video: Interrupt and traps 2024, Duben
Anonim

Přerušení vs Trap

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 jsou tyto, 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 nebo Trapy. Výjimka je automaticky generované softwarové přerušení, zatímco Trap je softwarově vyvolané přerušení iniciované programátorem. 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 se CPU zastaví, co dělá (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 je to past?

Trap lze identifikovat jako přenos kontroly, který je iniciován programátorem. Termín Trap se používá zaměnitelně s termínem Exception (což je automaticky se vyskytující softwarové přerušení). Někteří však mohou namítnout, že past je jednoduše speciální volání podprogramu. Takže spadají do kategorie softwarově vyvolaných přerušení. Například na strojích o rozměrech 80 × 86 může programátor pomocí instrukce int zahájit past. Protože past je vždy bezpodmínečná, ovládací prvek bude vždy přenesen do podprogramu spojeného s pastí. Přesná instrukce, která vyvolá rutinu pro manipulaci s depeší, je snadno identifikovatelná, protože k určení depeše se používá explicitní instrukce.

Jaký je rozdíl mezi Interrupt a Trap?

Přerušení jsou hardwarová přerušení, zatímco pasti jsou softwarově vyvolaná přerušení. Výskyty hardwarových přerušení obvykle zakazují další hardwarová přerušení, ale u pastí to neplatí. Pokud potřebujete zakázat hardwarová přerušení, dokud nebude doručena past, musíte explicitně vymazat příznak přerušení. Příznak přerušení v počítači obvykle ovlivňuje (hardwarová) přerušení na rozdíl od pastí. To znamená, že vymazání tohoto příznaku nezabrání pasti. Na rozdíl od pastí by přerušení měla zachovat předchozí stav CPU.

Doporučená: