Zum Inhalt springen

Informatik · Klasse 10–13 · aktualisiert

Interrupt erklärt: Ablauf, IRQ und sichere ISR

Du unterscheidest Interrupt, IRQ und ISR, erklärst den Ablauf, vergleichst mit Polling und wendest Maskierung und Prioritäten an.

0 von 9 Aufgaben gelöst

Interrupt erklärt: Ablauf, IRQ und sichere ISR

Kurz gesagt

Ein Interrupt unterbricht kurzfristig das laufende Programm. Der IRQ ist die Anforderung, die ISR die Routine, die danach läuft. Die ISR sichert die Register, die sie benutzt, stellt sie am Ende wieder her und löscht den IRQ. Polling fragt dagegen zyklisch ab.

Du drückst eine Taste, während die CPU gerade ein anderes Programm abarbeitet. Die Tastatur meldet sich dann mit einer Unterbrechungsanforderung. Hier lernst du, wie das abläuft. Du lernst auch, warum Fehler beim Sichern der Register in fremden Programmen schwer zu verfolgen sind.

Deine Lernziele

Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.

4 Abschnitte

Normalerweise arbeitet die CPU ein Programm Befehl für Befehl ab. Ein Interrupt unterbricht das kurzfristig, um einen in der Regel kurzen, aber zeitlich kritischen Vorgang abzuarbeiten. Das Wort kommt vom englischen „to interrupt“, also unterbrechen.

Drei Begriffe gehören dazu, und sie meinen verschiedene Dinge. Der IRQ (Interrupt Request, Unterbrechungsanforderung) ist das auslösende Ereignis. Danach führt der Prozessor eine Unterbrechungsroutine aus, kurz ISR (Interrupt Service Routine). Ein Beispiel: Die Festplatte meldet sich, wenn die zuvor angeforderten Daten gelesen wurden und zur Abholung bereitstehen.

Hardware-Interrupts werden durch asynchrone externe Ereignisse ausgelöst. Asynchron heißt: Das laufende Programm wird nicht an immer der gleichen Stelle unterbrochen. Bei vielen Prozessoren kann ein Interrupt auch vom Programmcode selbst kommen, und zwar mit einem Maschinenbefehl („INT nn“). Das ist ein Software-Interrupt. Er ist eher mit einem Unterprogramm-Aufruf vergleichbar.

Definition

Interrupt

Eine kurzfristige Unterbrechung der normalen Programmausführung, um einen in der Regel kurzen, aber zeitlich kritischen Vorgang abzuarbeiten.

BegriffBedeutungRolle
Interruptkurzfristige Unterbrechung der Programmausführungdie ganze Unterbrechung
IRQUnterbrechungsanforderungdas auslösende Ereignis
ISRUnterbrechungsroutineläuft nach der Anforderung ab

Merke: Der IRQ ist die Anforderung, die ISR die Routine, die der Prozessor danach ausführt.

Teste dich

LeichtWas ist ein IRQ?

Alles auf einen Blick

Interrupt

  • Begriffe

    Der IRQ ist die Anforderung, die ISR die Routine danach, der Interrupt die Unterbrechung.

  • Ablauf

    Maskierung prüfen, Vektor bestimmen, Befehlszähler auf den Stack, ISR läuft, Rücksprung.

  • Polling

    einfacher, aber sehr viel ineffizienter, weil die CPU stärker beansprucht wird.

  • Maskierung

    Alle Interrupts außer dem NMI lassen sich zeitweise sperren.

  • ISR-Pflichten

    Benutzte Register sichern, wiederherstellen und den bearbeiteten IRQ löschen.

Musteraufgabe · Schritt für Schritt

Drei IRQs gleichzeitig (ausgedachtes Beispiel)

  1. 1Annahme: Am 8259 melden sich gleichzeitig die Eingänge 1, 4 und 6. Es gilt der Normalfall: Eingang 0 höchste, Eingang 7 niedrigste Priorität.
  2. 2Teil a) Nichts ist maskiert. Die Reihenfolge nach Priorität ist Eingang 1, dann 4, dann 6.
  3. 3Teil b) Nur der Einzelinterrupt an Eingang 4 ist maskiert. Maskierte zählen nicht, also kommt zuerst Eingang 1, dann Eingang 6.
  4. 4Der IRQ von Eingang 4 löst zunächst nichts aus. Normalerweise bleibt er bestehen, bis er akzeptiert wird.
  5. 5Teil c) Die ISR an Eingang 1 benutzt das Register R1 (ausgedachter Name). Sie kopiert R1 zuerst auf den Stack und stellt es am Ende wieder her.
  6. 6Außerdem sorgt sie dafür, dass der IRQ gelöscht wird, damit er nicht erneut ausgelöst wird.

Fehler finden

Prüfe die Aussagen zu einer ISR für eine Netzwerkkarte (ausgedachtes Beispiel) In einer Zeile steckt ein Fehler. Tippe sie an.

Lückentext

Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.

Der Prozessor führt nach der Unterbrechungsanforderung eine Routine aus, die heißt. Ein Interrupt, den die CPU nicht sperren kann, kommt über den Pin , zum Beispiel bei einem Stromausfall. Im Normalfall hat beim 8259 der Eingang 0 die Priorität.

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Interrupt

LeichtWas löst einen Hardware-Interrupt aus?
MittelEin Programm hat gerade den INTR-Eingang der CPU gesperrt. Jetzt meldet sich der NMI wegen eines Stromausfalls. Was passiert?
SchwerAusgedachter Fall: Eine Regelschleife läuft zyklisch und fragt in jedem Durchlauf einen Baustein ab, der binnen Mikrosekunden bereit ist. Was passt?

Weiterlesen in Informatik