Unterschied Zwischen Interrupt Und Exception

Unterschied Zwischen Interrupt Und Exception
Unterschied Zwischen Interrupt Und Exception

Video: Unterschied Zwischen Interrupt Und Exception

Video: Unterschied Zwischen Interrupt Und Exception
Video: EXCEPTIONS AND INTERRUPTS 2024, April
Anonim

Interrupt vs Exception

In jedem Computer können während der normalen Ausführung eines Programms Ereignisse auftreten, die dazu führen können, dass die CPU vorübergehend angehalten wird. Ereignisse wie dieses werden als Interrupts bezeichnet. Interrupts können entweder durch Software- oder Hardwarefehler verursacht werden. Hardware-Interrupts werden (einfach) als Interrupts bezeichnet, während Software-Interrupts als Ausnahmen bezeichnet werden. Sobald ein Interrupt (Software oder Hardware) ausgelöst wird, wird die Steuerung an eine spezielle Unterroutine namens ISR (Interrupt Service Routine) übertragen, die die durch den Interrupt ausgelösten Bedingungen verarbeiten kann.

Was ist Interrupt?

Der Begriff Interrupt ist normalerweise für Hardware-Interrupts reserviert. Dies sind Programmsteuerungsunterbrechungen, die durch externe Hardwareereignisse verursacht werden. Extern bedeutet hier extern außerhalb der CPU. Hardware-Interrupts kommen normalerweise von vielen verschiedenen Quellen wie Timer-Chips, Peripheriegeräten (Tastaturen, Maus usw.), E / A-Anschlüssen (seriell, parallel usw.), Festplatten, CMOS-Takt, Erweiterungskarten (Soundkarte, Video) Karte usw.). Das bedeutet, dass Hardware-Interrupts aufgrund eines Ereignisses im Zusammenhang mit dem ausgeführten Programm fast nie auftreten. Beispielsweise kann ein Ereignis wie ein Tastendruck auf der Tastatur durch den Benutzer oder ein internes Zeitlimit für den Hardware-Timer diese Art von Interrupt auslösen und die CPU darüber informieren, dass ein bestimmtes Gerät etwas Aufmerksamkeit benötigt. In einer solchen Situation stoppt die CPU, was auch immer sie tat (dh pausiert das aktuelle Programm),stellt den vom Gerät benötigten Dienst bereit und kehrt zum normalen Programm zurück. Wenn Hardware-Interrupts auftreten und die CPU den ISR startet, werden andere Hardware-Interrupts deaktiviert (z. B. in 80 × 86-Computern). Wenn andere Hardware-Interrupts auftreten müssen, während der ISR ausgeführt wird, müssen Sie dies explizit tun, indem Sie das Interrupt-Flag löschen (mit sti-Anweisung). In 80 × 86-Computern wirkt sich das Löschen des Interrupt-Flags nur auf Hardware-Interrupts aus. Das Löschen des Interrupt-Flags wirkt sich nur auf Hardware-Interrupts aus. Das Löschen des Interrupt-Flags wirkt sich nur auf Hardware-Interrupts aus.

Was sind Ausnahmen?

Ausnahme ist ein Software-Interrupt, der als spezielle Handler-Routine identifiziert werden kann. Eine Ausnahme kann als automatisch auftretende Falle identifiziert werden (eine Falle kann als eine Übertragung der Kontrolle identifiziert werden, die vom Programmierer initiiert wird). Im Allgemeinen sind Ausnahmen keine spezifischen Anweisungen zugeordnet (Traps 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 Division durch Null, die Ausführung eines illegalen Opcodes oder ein speicherbezogener Fehler Ausnahmen verursachen. Immer wenn eine Ausnahme ausgelöst wird, setzt die CPU das von ihr ausgeführte Programm vorübergehend aus und startet den ISR. ISR enthält, was mit der Ausnahme zu tun ist. Es kann das Problem beheben oder, falls dies nicht möglich ist, das Programm ordnungsgemäß abbrechen, indem eine geeignete Fehlermeldung gedruckt wird. Obwohl eine bestimmte Anweisung keine Ausnahme verursacht, wird eine Ausnahme immer durch eine Anweisung verursacht. Beispielsweise kann der Fehler durch Division durch Null nur während der Ausführung des Divisionsbefehls auftreten.

Was ist der Unterschied zwischen Interrupt und Exception?

Interrupts sind Hardware-Interrupts, während Ausnahmen Software-Interrupts sind. Das Auftreten von Hardware-Interrupts deaktiviert normalerweise andere Hardware-Interrupts. Dies gilt jedoch nicht für Ausnahmen. Wenn Sie Hardware-Interrupts bis zur Zustellung einer Ausnahme nicht zulassen müssen, müssen Sie das Interrupt-Flag explizit löschen. Und normalerweise wirkt sich das Interrupt-Flag auf dem Computer auf (Hardware-) Interrupts im Gegensatz zu Ausnahmen aus. Dies bedeutet, dass das Löschen dieses Flags keine Ausnahmen verhindert.

Empfohlen: