Unterschied zwischen Falle und Unterbrechung

Das Hauptunterschied zwischen Trap und Interrupt ist das Trap wird von einem Benutzerprogramm ausgelöst, um die Betriebssystemfunktionalität aufzurufen, während Interrupt von einem Hardwaregerät ausgelöst wird, damit der Prozessor die entsprechende Interrupt-Handler-Routine ausführen kann.

Ein Betriebssystem ist ereignisgesteuert. Ein Ereignis kann beim Ausführen eines Programms plötzlich auftreten. Dadurch wird das Betriebssystem ausgeführt. Dadurch wird der Benutzermodus in den Kernelmodus geändert. Nach der Ausführung des Betriebssystems wird die Steuerung an das ursprüngliche Programm zurückgegeben. Fallen und Interrupts sind zwei Arten von Ereignissen. Ein Trap wird von einem Benutzerprogramm ausgelöst, während ein Interrupt von einem Hardwaregerät wie Tastatur, Zeitgeber usw. ausgelöst wird. Ein Trap übergibt die Steuerung an den Trap-Handler und der Interrupt übergibt die Steuerung an einen Interrupt-Handler. Nach der Ausführung des Handlers wechselt die Steuerung zurück zum ursprünglichen Programm.

Wichtige Bereiche

1. Was ist eine Falle?
     - Definition, Funktionalität
2. Was ist Interrupt?
     - Definition, Funktionalität
3. Beziehung zwischen Falle und Unterbrechung
     - Gliederung der Vereinigung
4. Unterschied zwischen Falle und Unterbrechung
     - Vergleich der wichtigsten Unterschiede

Schlüsselbegriffe

Interrupt, Betriebssystem, Falle

Was ist eine Falle?

Traps werden vom Benutzerprogramm ausgelöst, um eine Funktionalität des Betriebssystems aufzurufen. Angenommen, das Benutzerprogramm muss etwas auf dem Bildschirm drucken. Es würde einen Trap aufrufen und das Betriebssystem schreibt diese Daten auf den Bildschirm. Traps werden hauptsächlich zur Implementierung von Systemaufrufen verwendet.

Abbildung 1: Arten von Ereignissen

Ein Beispiel ist wie folgt. Angenommen, es gibt eine Anweisung als printf ("% s \ n", str); Es wird die Schreibfunktion aufgerufen, um die Ausgabe auf die Standardausgabe zu drucken, die der Monitor ist. Dadurch wird eine Falle aufgerufen und die Steuerung wird an den Fallenbehandler übergeben. Dann wechselt der Benutzermodus in den Kernelmodus und das Betriebssystem führt den Schreibaufruf aus. Nach Abschluss der Task wird die Kontrolle aus dem Kernel-Modus in den Benutzermodus zurückgegeben.

Was ist Interrupt?

Ein Interrupt wird von einem Hardwaregerät ausgelöst. USB-Gerät, NIC-Karte und Tastatur können Interrupts verursachen. Interrupts sind asynchron. Daher können sie jederzeit auftreten.

Ein Prozessor hat einen dedizierten Pin, den sogenannten Interrupt-Pin. Es wird auch als INT-Pin bezeichnet. Geräte wie Tastaturen sind über den Interrupt-Pin mit dem Prozessor verbunden. Wenn eine Taste gedrückt wird, wird ein Interrupt erzeugt. Der Prozessor wechselt vom aktuell laufenden Prozess in eine Interrupt-Handler-Routine. In diesem Szenario wird die Tastatur-Interrupt-Handler-Routine aufgerufen. Nach Abschluss der Interrupt-Handler-Routine wechselt der Prozessor zum ursprünglichen Programm, das gerade ausgeführt wird. Wenn ein Interrupt auftritt, wechselt der Prozessor grundsätzlich den Kontext und führt den Interrupt-Handler aus. Nach Beendigung wechselt es wieder in den vorherigen Zustand.

Ein Prozessor verfügt über einen einzelnen Interrupt-Pin, es gibt jedoch mehrere Hardwaregeräte. Der Interrupt-Controller hilft dabei, den einzelnen Interrupt-Pin zwischen mehreren Pins zu teilen. Der Prozessor kommuniziert mit dem Interrupt-Controller, um festzustellen, welches Gerät den Interrupt tatsächlich generiert hat. Abhängig davon führt der Prozessor die entsprechende Interrupt-Handler-Routine aus. Dies kann eine Timer-, USB- oder Keyboard-Interrupt-Handler-Routine sein. 

Neben Traps und Interrupts gibt es einen anderen Ereignistyp, der als Exceptions bezeichnet wird. Sie werden vom Prozessor automatisch generiert. Ausnahmen gliedern sich weiter in Fehler und Abbrüche. Ein Fehler ist ein behebbarer Fehler, während ein Abbruch ein Fehler ist, der schwer zu handhaben ist.

Beziehung zwischen Falle und Unterbrechung

  • Trap und Interrupt sind Ereignistypen.

Unterschied zwischen Falle und Unterbrechung

Definition

Die Falle ist ein Signal, das aus einem Benutzerprogramm hervorgeht, das angibt, dass das Betriebssystem einige Funktionen sofort ausführt, während Interrupt ein Signal an den Prozessor ist, das von Hardware ausgegeben wird und ein Ereignis angibt, das sofortige Aufmerksamkeit erfordert.

Erzeugungsmethode

Ein Trap wird durch eine Anweisung im Benutzerprogramm generiert, während ein Interrupt von Hardwaregeräten generiert wird.

Hauptfunktionalität

Außerdem ruft eine Falle eine OS-Funktionalität auf. Es überträgt die Steuerung an den Trap-Handler. Ein Interrupt bewirkt, dass der Prozessor die entsprechende Interrupt-Handler-Routine ausführt.

Auftreten

Außerdem ist ein Trap synchron und kann nach Ausführung eines Befehls eintreffen, während ein Interrupt asynchron ist und bei der Ausführung eines Befehls auftreten kann.

Synonyme

Ein Trap wird auch als Software-Interrupt bezeichnet, während ein Interrupt auch als Hardware-Interrupt bezeichnet wird.

Fazit

Trap und Interrupt sind zwei Arten von Ereignissen. Der Unterschied zwischen Trap und Interrupt besteht darin, dass der Trap von einem Benutzerprogramm ausgelöst wird, um die OS-Funktionalität aufzurufen, während der Interrupt von einem Hardwaregerät ausgelöst wird, damit der Prozessor die entsprechende Interrupt-Handler-Routine ausführen kann.

Referenz:

1. Betriebssystem # 14 Was ist ein Interrupt? Arten von Interrupts, Xoviabcs, 31. August 2017, verfügbar hier.
2. Betriebssystem # 16 Software-Interrupts | Systemaufrufe in xv6, Xoviabcs, 1. September 2017, verfügbar hier.