Přerušení vs Trap
V kterémkoli počítači může během normálního provádění programu dojít k událostem, které mohou způsobit dočasné zastavení CPU. Události jako jsou tyto se nazývají přerušení. Přerušení mohou být způsobeny poruchami 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 přerušení (software nebo hardware) vyvoláno, je ovládací prvek přenesen do speciálního podprogramu nazvaného ISR (Interrupt Service Routine), který dokáže zpracovat podmínky, které jsou přerušení vyvolány..
Co je přerušení?
Termín Přerušení je obvykle vyhrazen pro přerušení hardwaru. Jedná se o přerušení řízení programu způsobené událostmi externího hardwaru. Zde externí znamená externí pro CPU. Hardwarová přerušení obvykle pocházejí z mnoha různých zdrojů, jako je čip s časovačem, 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ěcím programem. Například událost, jako je stisknutí klávesy uživatelem na klávesnici nebo interní hardwarové vypršení časového limitu, 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í, co dělá (tj. Pozastaví aktuální program), poskytne službu vyžadovanou zařízením a vrátí se zpět k normálnímu programu. Pokud dojde k přerušení hardwaru a CPU spustí ISR, jsou jiná hardwarová přerušení zakázána (např. V počítačích 80 × 86). Pokud potřebujete, aby se během přerušení ISR vyskytly další hardwarová přerušení, musíte to udělat explicitně zrušením příznaku přerušení (s sti návod). U počítačů 80 × 86 bude vymazání příznaku přerušení ovlivňovat pouze hardwarová přerušení.
Co je to Trap?
Trap lze identifikovat jako přenos kontroly, který je iniciován programátorem. Termín Trap se používá zaměnitelně s termínem Výjimka (což je automaticky se vyskytující softwarové přerušení). Někteří však mohou argumentovat, že past je prostě speciální volání podprogramu. Proto spadají do kategorie přerušení vyvolaných softwarem. Například v počítačích 80 × 86 může programátor používat int instrukce k zahájení pasti. Protože past je vždy bezpodmínečná, ovládací prvek bude vždy převeden na podprogram spojený s pastí. Přesná instrukce, která vyvolá rutinu pro zpracování pasti, je snadno identifikovatelná, protože k určení pasti je použita výslovná instrukce.
Jaký je rozdíl mezi Interrupt a Trap?
Přerušení jsou hardwarová přerušení, zatímco pasti jsou přerušení vyvolaná softwarem. Výskyt hardwarových přerušení obvykle deaktivuje jiná hardwarová přerušení, ale to není pravda pro pasti. Pokud potřebujete zakázat hardwarová přerušení do doby, než bude doručen trap, musíte explicitně zrušit 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 pastí. To znamená, že vymazání tohoto příznaku nezabrání pastím. Na rozdíl od pastí by přerušení měla zachovat předchozí stav CPU.