GeeksforGeeks

, Author

Interrupt ist ein Signal, das von Hardware oder Software ausgesendet wird, wenn ein Prozess oder ein Ereignis sofortige Aufmerksamkeit erfordert. Es macht den Prozessor auf einen Prozess mit hoher Priorität aufmerksam, der eine Unterbrechung des laufenden Arbeitsprozesses erfordert. In E/A-Geräten ist eine der Bussteuerleitungen für diesen Zweck vorgesehen und wird als Interrupt Service Routine (ISR) bezeichnet.

Wenn ein Gerät eine Unterbrechung bei, sagen wir, Prozess i auslöst, beendet der Prozessor zunächst die Ausführung von Befehl i. Dann lädt er den Programmzähler (PC) mit der Adresse des ersten Befehls der ISR. Bevor der Programmzähler mit der Adresse geladen wird, wird die Adresse des unterbrochenen Befehls an eine temporäre Stelle verschoben. Daher kann der Prozessor nach der Bearbeitung der Unterbrechung mit dem Prozess i+1 fortfahren.

Während der Prozessor die Unterbrechungen bearbeitet, muss er dem Gerät mitteilen, dass seine Anforderung erkannt wurde, damit es aufhört, das Unterbrechungsanforderungssignal zu senden. Außerdem wird durch das Speichern der Register, damit der unterbrochene Prozess in der Zukunft wiederhergestellt werden kann, die Verzögerung zwischen dem Eingang einer Unterbrechung und dem Beginn der Ausführung des ISR erhöht. Dies wird als Interrupt-Latenz bezeichnet.

Hardware-Interrupts:
Bei einem Hardware-Interrupt sind alle Geräte mit der Interrupt-Anforderungsleitung verbunden. Eine einzige Anforderungsleitung wird für alle n Geräte verwendet. Um einen Interrupt anzufordern, schließt ein Gerät seinen zugehörigen Schalter. Wenn ein Gerät einen Interrupt anfordert, ist der Wert von INTR das logische ODER der Anforderungen der einzelnen Geräte.

Abfolge der Ereignisse bei der Behandlung eines IRQ:

  1. Geräte lösen einen IRQ aus.
  2. Prozessor unterbricht das gerade ausgeführte Programm.
  3. Gerät wird informiert, dass seine Anforderung erkannt wurde, und das Gerät deaktiviert das Anforderungssignal.
  4. Die angeforderte Aktion wird ausgeführt.
  5. Die Unterbrechung wird aktiviert und das unterbrochene Programm wird fortgesetzt.

Behandlung mehrerer Geräte:
Wenn mehr als ein Gerät ein Unterbrechungsanforderungssignal auslöst, werden zusätzliche Informationen benötigt, um zu entscheiden, welches Gerät zuerst berücksichtigt werden soll. Die folgenden Methoden werden verwendet, um zu entscheiden, welches Gerät ausgewählt werden soll: Polling, Vectored Interrupts und Interrupt Nesting. Diese werden im Folgenden erläutert.

  1. Polling:
    Beim Polling ist das erste Gerät, das mit gesetztem IRQ-Bit angetroffen wird, das Gerät, das zuerst bedient werden soll. Ein geeigneter ISR wird aufgerufen, um dieses Gerät zu bedienen. Es ist einfach zu implementieren, aber es wird viel Zeit verschwendet, indem das IRQ-Bit aller Geräte abgefragt wird.
  2. Vectored Interrupts:
    Bei Vectored Interrupts identifiziert sich ein Gerät, das einen Interrupt anfordert, direkt, indem es einen speziellen Code über den Bus an den Prozessor sendet. Dadurch kann der Prozessor das Gerät identifizieren, das den Interrupt ausgelöst hat. Der spezielle Code kann die Startadresse des ISR sein oder die Stelle, an der sich der ISR im Speicher befindet, und wird als Interrupt-Vektor bezeichnet.
  3. Interrupt-Nesting:
    Bei dieser Methode ist das E/A-Gerät in einer Prioritätsstruktur organisiert. Daher wird eine Interrupt-Anforderung von einem Gerät mit höherer Priorität erkannt, während eine Anforderung von einem Gerät mit niedrigerer Priorität nicht erkannt wird. Um dies zu implementieren, muss jeder Prozess/Gerät (auch der Prozessor). Der Prozessor akzeptiert Unterbrechungen nur von Geräten/Prozessen, die eine höhere Priorität haben als er.

Die Priorität des Prozessors ist in einigen Bits des PS (Prozessstatusregister) kodiert. Sie kann durch Programmanweisungen, die in das PS schreiben, geändert werden. Der Prozessor befindet sich nur während der Ausführung von Betriebssystem-Routinen im überwachten Modus. Er schaltet in den Benutzermodus, bevor er Anwendungsprogramme ausführt.

Aufgepasst Leser! Hören Sie jetzt nicht auf zu lernen. Holen Sie sich alle wichtigen Konzepte der CS-Theorie für SDE-Interviews mit dem CS-Theorie-Kurs zu einem studentenfreundlichen Preis und werden Sie bereit für die Industrie.

Artikel Tags :

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.