Interrupt vs Ausnahme
In jedem Computer kann es während seiner normalen Ausführung eines Programms Ereignisse geben, die dazu führen können, dass die CPU vorübergehend eingestellt wird. Ereignisse wie diese werden als Interrupts bezeichnet. Interrupts können entweder durch Software- oder Hardwarefehler verursacht werden. Hardware -Interrupts werden (einfach) Interrupts bezeichnet, während Software -Interrupts als Ausnahmen bezeichnet werden. Sobald ein Interrupt (Software oder Hardware) angehoben ist.
Was ist Interrupt?
Der Begriff Interrupt ist normalerweise Hardware -Interrupts reserviert. Sie sind Programmsteuerungsunterbrechungen durch externe Hardwareereignisse. Hier bedeutet externe Mittel außerhalb der CPU. Hardware -Interrupts stammen normalerweise aus vielen verschiedenen Quellen wie Timer -Chip, peripheren Geräten (Tastaturen, Maus usw.), E/O -Ports (seriell, parallel usw.), Festplattenlaufwerke, CMOS -Uhr, Erweiterungskarten (Soundkarte, Grafikkarte usw.). Das bedeutet. Beispielsweise kann ein Ereignis wie ein Taste -Drücken auf der Tastatur des Benutzers oder ein internes Hardware -Timer -Timing diese Art von Interrupt erhöhen und die CPU darüber informieren, dass ein bestimmtes Gerät einige Aufmerksamkeit benötigt. In einer solchen Situation wird die CPU aufhören, was es auch immer tut (ich.e. pausiert das aktuelle Programm), bietet den vom Gerät benötigten Dienst und kehrt zum normalen Programm zurück. Wenn Hardware -Interrupts auftreten und die CPU die ISR startet, sind andere Hardware -Interrupts deaktiviert (e.G. in 80 × 86 Maschinen). Wenn Sie andere Hardware -Interrupts benötigen, während der ISR ausgeführt wird, müssen Sie dies explizit tun, indem Sie das Interrupt -Flag (mit STI -Anweisungen) beseitigen (mit STI -Anweisungen). In 80 × 86 Maschinen wirkt sich das Löschen des Interrupt -Flags nur auf Hardware -Interrupts aus.
Was sind Ausnahmen?
Ausnahme ist ein Software -Interrupt, der als spezielle Handler -Routine identifiziert werden kann. Die Ausnahme kann als automatisch vorkommende Falle identifiziert werden (eine Falle kann als Kontrollübertragung identifiziert werden, die vom Programmierer initiiert wird). Im Allgemeinen sind mit Ausnahmen keine spezifischen Anweisungen verbunden (Fallen werden unter Verwendung einer bestimmten Anweisung generiert). Eine Ausnahme tritt also aufgrund einer „außergewöhnlichen“ Bedingung auf, die während der Programmausführung auftritt. Beispielsweise kann die Ausführung eines illegalen Opcode oder eines Speicherfehlers Ausnahmen zu Ausnahmen führen. Immer wenn eine Ausnahme erhöht wird, setzt die CPU das Programm vorübergehend aus und startet das ISR. ISR enthält, was mit der Ausnahme zu tun ist. Es kann das Problem beheben oder wenn es nicht möglich ist, kann es das Programm anmutig abbrechen, indem eine geeignete Fehlermeldung gedruckt wird. Obwohl eine bestimmte Anweisung keine Ausnahme verursacht, wird eine Ausnahme immer durch eine Anweisung verursacht. Zum Beispiel kann die Aufteilung nach Nullfehler nur während der Ausführung der Abteilungsanweisung auftreten.
Was ist der Unterschied zwischen Interrupt und Ausnahme?
Interrupts sind Hardware -Interrupts, während Ausnahmen Software -Interrupts sind. Auftreten von Hardware -Interrupts deaktivieren normalerweise andere Hardware -Interrupts, dies gilt jedoch nicht für Ausnahmen. Wenn Sie Hardware -Interrupts nicht zulassen müssen, bis eine Ausnahme serviert wird, müssen Sie die Interrupt -Flagge explizit löschen. Und in der Regel die Interrupt -Flag auf dem Computer wirkt sich (Hardware) Interrupts im Gegensatz zu Ausnahmen aus. Dies bedeutet, dass das Löschen dieses Flags keine Ausnahmen verhindert.