Interrupt Service Routine

Interrupt Service Routine

Ein Interrupthandler (auch Unterbrechungsroutine oder Unterbrechungsbehandlung genannt) ist ein Programmstück, das von einer CPU ausgeführt wird, wenn sie durch einen Softwareinterrupt oder Interrupt Request (Unterbrechungsanforderung) gezwungen wird, den normalen Programmablauf zu unterbrechen und einen Interrupt auszuführen.

Ablauf

Innerhalb einer Unterbrechungsroutine geschieht normalerweise folgendes:

  • Weitere Interrupts verhindern
Je nachdem, ob das Betriebssystem Multitasking unterstützt und welcher Natur die Behandlung des Interrupts ist, kann es notwendig sein, weitere Unterbrechungen bei der Verarbeitung zu verhindern. Je nach Architektur sieht dies unterschiedlich aus, z. B. wird ein Interruptflag gesetzt.
  • Sichern des Prozessorzustandes
Um das unterbrochene Programm nicht zu stören, darf es von der zwischengeschalteten Ausführung der Unterbrechungsroutine nichts bemerken. Daher ist dieser Zwischenschritt notwendig. Normalerweise wird der Prozessorzustand auf einem Stapel abgelegt.
  • Abarbeiten des Interrupts
Hier wird nun die eigentliche Kernarbeit verrichtet. Beispielsweise legen die meisten Betriebssysteme bei einem Tastendruckinterrupt den Code der Taste in eine Tastenqueue, aus der die Anwendungsprogramme mit den Benutzereingaben gespeist werden.
Die Vorgänge dieser Phase sind zeitkritisch, da Interrupts Vorrang vor dem normalen Ablauf von Anwendungen haben bzw. selbst nicht durch Interrupts unterbrochen werden können. In Echtzeitbetriebssystemen gelten enge Vorgaben, wie lange in dieser Phase verweilt werden darf. In modernen Multitaskinganwendungen ist dies ebenfalls ein wichtiger Faktor, da dem Benutzer die Illusion der Gleichzeitigkeit von Programmabläufen durch andauerndes und schnelles Umschalten zwischen verschiedenen Tasks vermittelt wird.
  • Interrupts wieder zulassen
Falls oben Interrupts verboten wurden, müssen sie nun wieder erlaubt werden.
  • Wiederherstellen des Prozessorzustandes
Der oben gesicherte Zustand wird nun wiederhergestellt.
  • Rücksprung in das unterbrochene Programm

Merkmale

Aus dem geschilderten Ablauf ergeben sich für Unterbrechungsroutinen drei wichtige Merkmale. Sie sind:

  • zeitkritisch - langwierige Prozeduren sollten ausgelagert werden,
  • transparent - ein Anwendungsprogramm darf nichts von der Unterbrechung bemerken und
  • exklusiv - solange die Routine nicht fertig ist, passiert normalerweise nichts anderes.

Entsprechend anspruchsvoll ist die Implementierung dieser Routinen. Als Beispiel sei der Linuxkernel genannt, bei dem

  1. ein Großteil der Entwicklung zwischen den Versionen 2.4 und 2.6 in die Möglichkeit floss, möglichst viele Routinen selbst wieder unterbrechbar zu machen und so die Latenzzeit für die Anwendungen zu verkürzen und
  2. ein Fehler in der Abarbeitung eines mathematischen Interrupts (die Unterbrechungsroutine löste selbst einen Interrupt aus, der sie wieder aufrief) bösartigen Programmen die Möglichkeit bot, das System komplett einzufrieren.

Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • interrupt service routine —    See interrupt handler …   Dictionary of networking

  • Interrupt — In der Informatik versteht man unter Interrupt (engl. to interrupt, unterbrechen) die kurzfristige Unterbrechung der normalen Programmausführung[1], um eine andere, meist kurze, aber zeitkritische Verarbeitung durchzuführen. Das auslösende… …   Deutsch Wikipedia

  • Interrupt — This article is about computer interrupts. For the study of the effect of disruptions on job performance, see Interruption science. In computing, an interrupt is an asynchronous signal indicating the need for attention or a synchronous event in… …   Wikipedia

  • Interrupt handler — An interrupt handler, also known as an interrupt service routine (ISR), is a callback subroutine in an operating system or device driver whose execution is triggered by the reception of an interrupt. Interrupt handlers have a multitude of… …   Wikipedia

  • interrupt handler —    Special software located in the operating system kernel that manages and processes system interrupts.    Also known as an interrupt service routine (ISR).    When an interrupt occurs, the processor suspends and saves its current activity and… …   Dictionary of networking

  • Interrupt Request — Die Artikel Interrupt und Unterbrechungsanforderung überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte entferne diesen… …   Deutsch Wikipedia

  • interrupt —    A signal to the processor generated by a device under its control, such as the system clock, that interrupts normal processing.    An interrupt indicates that an event requiring the processor s attention has occurred, causing the processor to… …   Dictionary of networking

  • Z80 Interrupt-Logik — Die Z80 Interrupt Logik dient der Interrupt Steuerung des Z80 Prozessors. Mikroprozessoren kommunizieren mit externen Geräten über Peripheriebausteine um beispielsweise Daten von einem Modem zu empfangen. Damit der Prozessor schnell auf externe… …   Deutsch Wikipedia

  • Interruptvectortable — Der Interruptvektor ist in einem Computersystem diejenige Programmadresse, an die beim Auftreten eines Hard oder Software Interrupts oder einer Ausnahmesituation gesprungen wird. [1] Dort steht die Interrupt Service Routine (ISR), die den… …   Deutsch Wikipedia

  • Interruptvektor — Der Interruptvektor ist in einem Computersystem diejenige Programmadresse, an die beim Auftreten eines Hard oder Software Interrupts oder einer Ausnahmesituation gesprungen wird.[1] Dort steht die Interrupt Service Routine (ISR), die den… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”