Interrupt

Ein Interrupt liegt vor, wenn ein Mikroprozessor etwas tut, was ihm aufgrund von Dingen, die außerhalb dessen, was das Programm tun soll, passieren, nicht befohlen wird. Unterbrechungen treten am häufigsten auf, weil der Prozessor ein Signal von der Hardware erhält, aber sie können auch von Software kommen, die zusammen mit dem Programm läuft. Zu den vielen Dingen, die Unterbrechungen verursachen können, gehören das Drücken von Tasten auf einer Tastatur, das Auslösen des eingebauten Zeitgebers, eine stattfindende Datenübertragung oder jedes andere Ereignis, das eine sofortige Aktion des Prozessors erfordert. Unterbrechungen können jederzeit auftreten, während der Prozessor ein Programm ausführt, unabhängig davon, wo im Quellcode des Programms es sich befindet.

Dieses Diagramm zeigt, was passiert, wenn ein Interrupt aufgerufen wirdZoom
Dieses Diagramm zeigt, was passiert, wenn ein Interrupt aufgerufen wird

Wie unterbricht die Arbeit

Ein Hardware- oder Software-Aufruf für einen Interrupt (bekannt als Interrupt-Anforderung oder IRQ) wird von einem "Interrupt-Handler" oder einer "Interrupt-Service-Routine" (ISR) im Prozessor erledigt. Sie legt das, was sie gerade tut, auf einen Stapel (Stack) und folgt dann bestimmten Anweisungen, die eine bestimmte Aufgabe im Namen des Systems ausführen, das nicht Teil des Programms sein muss, das es ausführt. Sobald er die Anweisungen befolgt hat, nimmt der ISR das, was er auf den Stack gelegt hat, wieder zurück und fährt mit dem fort, was er tat, bevor die Unterbrechung auftrat.

Viele Interrupt-Controller heutiger Prozessoren verwenden einen Interrupt-Vektor, um Interrupts u.a. danach zu sortieren, woher sie stammen. Der Vektor enthält normalerweise den Code, der ausgeführt werden muss, wenn die Unterbrechung stattfindet. ISRs sind in der Regel dafür verantwortlich, den Interrupt zu behandeln oder zu "warten" und sich selbst in einem funktionierenden Zustand zu halten.

Verwendung von Unterbrechungen

  • Auslösen von Aufgaben in regelmäßigen Abständen
  • Wartung eines externen Geräts, die jederzeit erfolgen kann
  • Die Notwendigkeit für synchrones Polling entfällt
  • Auslösen einer Aktion eines Betriebssystems (OS)

Fragen und Antworten

F: Was ist eine Unterbrechung?


A: Eine Unterbrechung ist eine Aktion eines Mikroprozessors, die aufgrund von externen Ereignissen nicht Teil des ausgeführten Programms ist.

F: Wodurch werden Interrupts auf einem Prozessor am häufigsten ausgelöst?


A: Unterbrechungen treten bei einem Prozessor am häufigsten auf, weil er Signale von der Hardware empfängt.

F: Können Unterbrechungen durch Software verursacht werden?


A: Ja, Unterbrechungen können auch durch Software verursacht werden, die parallel zu dem ausgeführten Programm läuft.

F: Nennen Sie einige Beispiele für Ereignisse, die einen Interrupt auslösen können.
A: Beispiele für Ereignisse, die eine Unterbrechung auslösen können, sind das Drücken von Tasten auf einer Tastatur, das Auslösen eines Timers und die Durchführung von Datenübertragungen.

F: Ist ein Interrupt davon abhängig, wo das Programm ausgeführt wird?


A: Nein, Unterbrechungen können jederzeit während der Programmausführung auftreten, unabhängig davon, wo sich das Programm in seinem Quellcode befindet.

F: Ist ein Interrupt ein wünschenswertes Ereignis für einen Mikroprozessor?


A: Unterbrechungen sind in der Regel unerwünschte Ereignisse für einen Mikroprozessor, da sie die Ausführung des Programms unterbrechen und sofortige Aufmerksamkeit erfordern.

F: Wie reagiert ein Mikroprozessor auf eine Unterbrechung?


A: Ein Mikroprozessor unterbricht vorübergehend das ausgeführte Programm und führt eine Interrupt Service Routine (ISR) aus, um die Unterbrechung zu behandeln, bevor er zum ausgeführten Programm zurückkehrt.

AlegsaOnline.com - 2020 / 2023 - License CC3