‹ Informatik

Interrupt

Interrupt verständlich erklärt: Aufbau, Funktion und typische Beispiele aus Prozessoren, Speicher und Computerarchitektur.

Wenn du eine Taste drückst, erwartest du sofort eine Reaktion. Gleichzeitig bearbeitet dein Computer viele andere Aufgaben. Damit nichts Wichtiges übersehen wird, kann sich ein Gerät gezielt bemerkbar machen.

Deine Lernziele
  • Du erklärst die Unterbrechung eines Programmablaufs durch ein Ereignis.
  • Du beschreibst den Weg vom Signal bis zur Rückkehr ins Programm.
  • Du unterscheidest gezielte Meldungen und regelmäßiges Nachfragen.
  • Du weißt, warum die zugehörigen Routinen kurz bleiben sollen.

Wenn etwas dringend ist

Ein Prozessor ist der Teil des Computers, der Programmbefehle ausführt. Er arbeitet normalerweise Schritt für Schritt ein Programm ab.

Ein Interrupt ist eine kurze Unterbrechung dieses normalen Ablaufs. Ein Ereignis teilt dem Prozessor mit: Jetzt ist eine schnelle Reaktion nötig. Danach setzt der Prozessor seine frühere Aufgabe fort.

Beispiel

Du schreibst in einem Textprogramm. Dann drückst du eine Taste. Die Tastatur meldet das Ereignis, der Prozessor verarbeitet die Eingabe kurz und das Textprogramm läuft weiter.

Merke

Ein Interrupt beendet die bisherige Aufgabe nicht. Er unterbricht sie kurz und kehrt danach zurück.

Interaktive Quizfrage wird geladen ...

Das Signal und die passende Routine

Eine Unterbrechungsanforderung ist das Signal, das einen Interrupt anfordert. Auf Englisch heißt sie Interrupt Request, kurz IRQ. Sie kann zum Beispiel von einer Tastatur, einer Maus, einer Netzwerkkarte oder einem Timer kommen.

Ein Timer ist eine Uhr im Computer, die nach einer eingestellten Zeit ein Ereignis melden kann. Er kann zum Beispiel ungefähr in festen Abständen Signale auslösen.

Für jedes Signal braucht der Prozessor eine passende Handlung. Eine Interrupt-Service-Routine, kurz ISR, ist ein kurzes Programmstück, das genau ein solches Ereignis behandelt.

Beispiel

Ein Timer ist so eingestellt, dass er ungefähr alle 10 Millisekunden ein Signal anfordert. Seine ISR erhöht einen Zähler. Das Hauptprogramm kann mit diesem Zähler später Zeiten abschätzen.

Merke

IRQ ist das Signal. Die ISR ist die kurze Reaktion auf dieses Signal.

Interaktiver Lückentext wird geladen ...

So findet der Prozessor zurück

Beim Interrupt darf der Prozessor nicht verlieren, woran er gerade gearbeitet hat. Deshalb sichert er wichtige Informationen, bevor die ISR startet.

Dieser gespeicherte Zustand heißt Kontext. Zum Kontext gehören je nach Prozessor zum Beispiel Rechenwerte und die Stelle der nächsten Programmanweisung. Nach der ISR stellt der Prozessor den Kontext wieder her.

Der Ablauf ist vereinfacht:

  1. Ein Gerät oder ein Timer sendet eine Unterbrechungsanforderung.
  2. Der Prozessor sichert den aktuellen Kontext.
  3. Er startet die passende ISR.
  4. Die ISR behandelt das Ereignis.
  5. Der Prozessor stellt den Kontext wieder her und arbeitet weiter.
Beispiel

Ein Programm berechnet gerade eine Tabelle. Gleichzeitig trifft ein Netzwerkpaket ein. Der Prozessor merkt sich die Rechenstelle, nimmt die Daten kurz entgegen und setzt danach die Berechnung fort.

Merke

Sichern, kurz behandeln, wiederherstellen: So geht keine unterbrochene Arbeit verloren.

Interaktive Quizfrage wird geladen ...

Interrupt oder Polling

Polling bedeutet regelmäßiges Nachfragen. Der Prozessor prüft dabei immer wieder selbst, ob ein Gerät etwas Neues gemeldet hat.

Das ist wie ein Blick zur Bushaltestelle in jeder Minute. Ein Interrupt ist eher wie eine Nachricht: Das Gerät meldet sich von selbst, sobald etwas passiert.

Beispiel

Beim Polling fragt ein Mikrocontroller ständig, ob ein Taster gedrückt ist. Mit einem Interrupt kann der Tasterwechsel ein Signal senden. In der Zwischenzeit bearbeitet der Mikrocontroller andere Aufgaben.

Merke

Beim Polling fragt der Prozessor. Beim Interrupt meldet sich das Ereignis.

Interaktive Quizfrage wird geladen ...

Kurz reagieren und richtig ordnen

Eine ISR sollte schnell fertig sein. Während sie läuft, können andere Ereignisse warten. Eine lange ISR kann Reaktionen verzögern oder bei schnellen Datenquellen zu Datenverlust führen.

Ein Flag ist eine Variable, die nur speichert, ob ein Ereignis passiert ist. Die ISR kann ein Flag setzen. Das Hauptprogramm übernimmt danach die längere Arbeit.

Beispiel

Eine ISR erhält ein Zeichen von einer Schnittstelle, legt es in einem Puffer ab und setzt ein Flag. Später liest das Hauptprogramm den ganzen Text aus dem Puffer und verarbeitet ihn.

Merke

Die ISR erledigt das Dringende. Größere Aufgaben übernimmt danach das Hauptprogramm.

Eine Priorität ist eine Reihenfolge, die festlegt, welches Ereignis zuerst behandelt wird. Manche Systeme erlauben, dass ein Interrupt mit hoher Priorität eine weniger wichtige ISR unterbricht.

Beispiel

Ein System behandelt einen Fehler in der Stromversorgung mit hoher Priorität. Eine weniger dringende Meldung eines Timers muss warten, bis der wichtige Fehler behandelt ist.

Merke

Hohe Priorität bedeutet: Dieses Ereignis darf früher behandelt werden.

Interaktive Quizfrage wird geladen ...

Zusammenfassung

Ein Interrupt unterbricht einen Prozessor kurz, damit er auf ein wichtiges Ereignis reagieren kann. Eine Unterbrechungsanforderung, der IRQ, löst ihn aus. Die passende ISR behandelt das Ereignis.

Vor der ISR sichert der Prozessor den Kontext. Danach stellt er ihn wieder her und setzt das frühere Programm fort. Im Unterschied zum Polling meldet sich beim Interrupt das Gerät selbst. Kurze ISRs, Flags und Prioritäten helfen dabei, dass ein System schnell und zuverlässig reagiert.