Prerušiť vs Trap
V ktoromkoľvek počítači môže počas normálneho vykonávania programu dôjsť k udalostiam, ktoré môžu spôsobiť dočasné zastavenie CPU. Takéto udalosti sa nazývajú prerušenia. Prerušenia môžu byť spôsobené poruchami 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é prerušenie softvéru, zatiaľ čo trap je prerušenie vyvolané softvérom iniciované programátorom. Akonáhle je prerušenie (softvér alebo hardvér) vyvolané, je ovládací prvok prenesený do špeciálneho podprogramu s názvom ISR (Interrupt Service Routine), ktorý dokáže spracovať podmienky vyvolané prerušením..
Čo je prerušenie?
Termín Prerušenie je zvyčajne vyhradený pre prerušenia hardvéru. Sú to prerušenia riadenia programu spôsobené externými hardvérovými udalosťami. Tu externý znamená externý procesor. Hardvérové prerušenia zvyčajne pochádzajú z mnohých rôznych zdrojov, ako sú napríklad čip s časovačom, periférne zariadenia (klávesnice, myš atď.), Vstupno / výstupné 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 kvôli nejakej udalosti týkajúcej sa vykonávajúceho programu. Napríklad udalosť, ako napríklad stlačenie klávesu na klávesnici používateľom alebo interné hardvérové vypršanie časového limitu, môže spôsobiť tento druh prerušenia a môže informovať CPU, že určité zariadenie potrebuje určitú pozornosť. V takej situácii CPU zastaví čokoľvek, čo robí (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 prerušeniu hardvéru a CPU spustí ISR, ďalšie hardvérové prerušenia sú vypnuté (napr. Na strojoch 80 × 86). Ak potrebujete spustiť ďalšie hardvérové prerušenia, keď je spustený ISR, musíte to urobiť explicitne zrušením príznaku prerušenia (s sti inštrukcie). Na počítačoch s rozmermi 80 × 86 bude vymazanie príznaku prerušenia ovplyvňovať iba prerušenia hardvéru.
Čo je to Trap?
Trap možno identifikovať ako prenos kontroly, ktorý iniciuje programátor. Termín Trap sa používa zameniteľne s výrazom Výnimka (čo je automaticky sa vyskytujúce prerušenie softvéru). Niektorí však môžu tvrdiť, že pasca je jednoducho špeciálne volanie podprogramu. Preto spadajú do kategórie prerušení vyvolaných softvérom. Napríklad v 80 × 86 strojoch môže programátor používať int pokyn na spustenie pasce. Pretože pasca je vždy bezpodmienečná, kontrola sa vždy prenesie na podprogram spojený s pascou. Presná inštrukcia, ktorá vyvoláva rutinu pri manipulácii s pascou, sa dá ľahko identifikovať, pretože na špecifikáciu pasce sa používa explicitná inštrukcia.
Aký je rozdiel medzi prerušením a pascou?
Prerušenia sú prerušenia hardvéru, zatiaľ čo pasce sú prerušenia vyvolané softvérom. Výskyt prerušenia hardvéru zvyčajne deaktivuje iné prerušenia hardvéru, ale to neplatí pre pasce. Ak potrebujete zakázať prerušenia hardvéru až do doručenia pasce, musíte explicitne vymazať príznak prerušenia. A príznak prerušenia na počítači zvyčajne ovplyvňuje (hardvérové) prerušenia na rozdiel od pascí. To znamená, že vymazanie tejto vlajky nezabráni pasci. Na rozdiel od pascí by prerušenia mali zachovať predchádzajúci stav CPU.