Prerušenie vs Trap
V ktoromkoľvek počítači by sa počas jeho bežného vykonávania programu mohli vyskytnúť udalosti, ktoré spôsobia dočasné zastavenie CPU. Udalosti, ako sú tieto, sa nazývajú prerušenia. Prerušenie môže spôsobovať chyba 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ýnimkou je automaticky generované softvérové prerušenie, zatiaľ čo Trap je softvérovo vyvolané prerušenie iniciované programátorom. Akonáhle sa vyvolá prerušenie (softvér alebo hardvér), riadenie sa prenesie do špeciálneho podprogramu s názvom ISR (Interrupt Service Routine), ktorý dokáže spracovať 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é udalosťami externého hardvéru. Tu znamená externý externý procesor. Hardvérové prerušenia zvyčajne pochádzajú z mnohých rôznych zdrojov, ako sú napríklad časovač, 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 k hardvérovým prerušeniam takmer nikdy nedôjde v dôsledku nejakej udalosti súvisiacej s vykonávajúcim programom. Napríklad udalosť ako stlačenie klávesu na klávesnici používateľom alebo časový limit interného hardvérového časovača môže zvýšiť tento druh prerušenia a informovať CPU, že určité zariadenie vyžaduje určitú pozornosť. V takejto situácii sa CPU zastaví, čo robí (tj pozastaví aktuálny program),poskytuje službu požadovanú zariadením a vráti sa k normálnemu programu. Keď dôjde k hardvérovým prerušeniam a procesor spustí ISR, ďalšie hardvérové prerušenia sú deaktivované (napr. V strojoch s rozlíšením 80 × 86). Ak potrebujete, aby sa počas chodu ISR vyskytli ďalšie hardvérové prerušenia, musíte to urobiť výslovne vymazaním príznaku prerušenia (pomocou inštrukcie sti). V strojoch s rozmermi 80 × 86 bude mať vyčistenie príznaku prerušenia vplyv iba na hardvérové prerušenia.vymazanie príznaku prerušenia ovplyvní iba hardvérové prerušenia.vymazanie príznaku prerušenia ovplyvní iba hardvérové prerušenia.
Čo je to Trap?
Trap je možné identifikovať ako prenos riadenia, ktorý iniciuje programátor. Pojem Trap sa používa zameniteľne s pojmom Výnimka (čo je automaticky sa vyskytujúce prerušenie softvéru). 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 s rozmermi 80 × 86 môže programátor použiť inštrukciu int na spustenie pasce. Pretože pasca je vždy nepodmienená, kontrola sa vždy prenesie do podprogramu spojeného s pascou. Presná inštrukcia, ktorá vyvoláva rutinu manipulácie s pascou, je ľahko identifikovateľná, pretože na určenie 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ýskyty prerušenia hardvéru zvyčajne zakazujú ďalšie prerušenia hardvéru, ale to neplatí pre pasce. Ak potrebujete zakázať hardvérové prerušenia, kým sa nespraví pasca, musíte explicitne vyčistiť príznak prerušenia. Vlajka prerušenia v počítači zvyčajne ovplyvňuje (hardvérové) prerušenia na rozdiel od pascí. To znamená, že vyčistenie tohto príznaku nezabráni nástrahám. Na rozdiel od pascí by prerušenia mali zachovať predchádzajúci stav CPU.