Unterbrechungsanforderung

Unterbrechungsanforderung

Eine Unterbrechungsanforderung oder englisch Interrupt Request (IRQ) löst eine Unterbrechung (Interrupt) der Prozessbearbeitung eines Prozessors im System aus. In der Regel wird diese von Geräten im System durch eine Busleitung mit Namen IRQ signalisiert und der Prozessor reagiert mit einem Kontextwechsel und führt die Unterbrechungsroutine aus. Nach deren Beendigung wird IRQ zurückgesetzt und die unterbrochene Aufgabe fortgesetzt.

Beispielsweise generiert die Tastatur einen Interrupt Request, wenn der Benutzer eine Taste gedrückt hat. Die Unterbrechungsroutine kann nun das jeweilige Zeichen von der Tastatursteuerung lesen und es an die jeweilige Anwendung weiterleiten.

Weitere Beispiele, in denen Geräte einen Interrupt Request generieren können:

  • Netzwerkkarte: wenn Daten empfangen wurden und im Puffer bereitliegen
  • Festplatte: wenn die vorher angeforderten Daten gelesen wurden und abholbereit sind (das Lesen von der Festplatte dauert relativ lange)
  • Grafikkarte: wenn das aktuelle Bild fertig gezeichnet wurde
  • Soundkarte: wenn wieder Sound-Daten zum Abspielen benötigt werden, bevor der Puffer leer wird.

Inhaltsverzeichnis

Funktionsweise

Die an die CPU angeschlossene Hardware muss interruptfähig sein, d. h. bei Eintreffen eines bestimmten Ereignisses über die sogenannte Interrupt-Leitung ein Ausgangssignal (elektrische Spannung an einem Ausgangs-Pin) erzeugen. Die CPU besitzt im einfachsten Falle einen entsprechenden Eingangs-Pin. Erscheint an diesem Pin eine elektrische Spannung, so startet innerhalb der CPU eine Sequenz von Befehlen, die die Unterbrechungsroutine einleiten.

Unterbrechungsanforderungen können zeitweise von der CPU ignoriert werden, zum Beispiel wenn gerade ein anderer Interrupt behandelt wird. Diese Maskierung gilt für alle Interrupts bis auf die nicht maskierbaren (NMI: Non Maskable Interrupt), die für spezielle Fälle vorgesehen sind (Hardware Fehler, Reset usw.), und für die so genannten Software-Interrupts, die durch einen Befehl in einem Programm ausgelöst werden (z. B. 'int IRQNUMMER' bei x86 – dieser Befehl wird beispielsweise von Linux genutzt, um von normalen Anwendungen über Systemaufrufe (syscalls) in den Kernel-Modus zu wechseln).

Latenzzeit

Die Zeit zwischen dem Anlegen des IRQ-Signals und dem Beginn der entsprechenden Verarbeitung nennt man Latenzzeit. Man spricht im Zusammenhang mit Realtime- oder Echtzeit-Betriebssystem davon, dass diese Latenzzeit immer kleiner als ein definierter Wert bleibt – also auch, wenn das System voll ausgelastet ist.

IBM-kompatible PCs

Die Interrupt Requests der Geräte werden zuerst vom Programmable Interrupt Controller entgegengenommen, der sie dann an einen Prozessor weiterleitet, und ihn damit unterbricht. Laufende Befehle werden daraufhin beendet, und der Interrupt wird beim Controller bestätigt. Als nächstes liest die CPU die Nummer des entsprechenden IRQ (Vektor) vom Controller, und verwendet ihn als Index in der Interruptvektortabelle, welche die jeweilige Behandlungsroutine für jeden IRQ enthält, die dann die entsprechenden gerätespezifische Aktion durchführen soll.

Bei modernen Systemen (zum Beispiel PCI-Systemen) ist das so genannte Interrupt-Sharing in der Regel ohne Probleme möglich. Dabei teilen sich mehrere Geräte einen Interrupt. Die Behandlungsroutine für einen solchen Interrupt muss dann alle Treiber, deren Geräte diesen Interrupt ausgelöst haben könnten, aufrufen (am IRQ kann dies nicht festgestellt werden). Hier kann es zu Problemen kommen, wenn einzelne Treiber z. B. aufgrund schlechter Programmierung zu lange aktiv sind, und in der Zwischenzeit im Gerät, welches den Interrupt ursprünglich ausgelöst hat, beispielsweise der Puffer voll wird und überläuft (d. h. im schlimmsten Fall: Datenverlust).

Bei modernen Peripheriegeräten kümmern sich der Computer und das Betriebssystem selbst um die Vergabe der IRQ-Nummern (PnP = Plug-and-Play-Geräte). Bei alten Steckkarten, z. B. ISA-Karten, müssen die IRQs von Hand eingestellt werden oder sind fest auf den Karten verdrahtet.

Unter Linux kann man die Interrupts mit folgendem Befehl abfragen: cat /proc/interrupts

Unter Windows Vista sowie Windows XP kann man die Interrupts mit folgendem Befehl abfragen: msinfo32.exe → Hardwareressourcen → IRQs

IRQ-Geräte-Tabelle (Diese Liste unterscheidet sich von System zu System)

IRQ Verwendung
0 System-Taktgeber
1 Tastatur
2 Kaskadiert zu IRQ 9 (für 8-15)
3 COM 2,4,6,8 (EIA-232/RS-232)
4 COM 1,3,5,7
5 LPT 2 (IEEE 1284) oder Soundkarte
6 Diskettenlaufwerk (Floppy)
7 LPT 1
8 Echtzeituhr (RTC)
9 Zu IRQ 2 umgeleitet (aber auch VGA und NIC, IRQ 16–23)
10 Frei ggf. PCI-Bus
11 Frei ggf. Adaptec-SCSI
12 PS/2 (Maus, andere Eingabegeräte)
13 Mathematischer Coprozessor (FPU)
14 Primärer IDE oder ATA
15 Sekundärer IDE oder ATA

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

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

  • Unterbrechungsanforderung —   [engl. interrupt request], IRQ …   Universal-Lexikon

  • Unterbrechungsanforderung — pertraukties reikalavimas statusas T sritis automatika atitikmenys: angl. break request; interrupt inquiry; interruption request vok. Anforderung für Unterbrechung, f; Unterbrechungsanforderung, f rus. запрос прерывания, m pranc. demande d… …   Automatikos terminų žodynas

  • 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

  • 8085 — Intel 8085 Der Intel 8085 ist ein 1976 eingeführter 8 Bit Mikroprozessor von Intel. Als Nachfolger des Intel 8080 war er zu diesem binär kompatibel, integrierte jedoch Taktgenerator (8224) und Buscontroller (8228) und besaß eine leistungsfähigere …   Deutsch Wikipedia

  • Instruction Set Architecture — Eine Befehlssatzarchitektur (engl. Instruction Set Architecture, kurz: ISA) ist – vereinfacht gesagt – die formale Spezifikation bestimmter Verhaltensweisen eines Prozessors aus Sicht seines Programmierers, auf die sich dieser bei der… …   Deutsch Wikipedia

  • Intel 8085 — Der Intel 8085 ist ein 1976 eingeführter 8 Bit Mikroprozessor von Intel. Als Nachfolger des Intel 8080 war er zu diesem binär kompatibel, integrierte jedoch Taktgenerator (8224) und Buscontroller (8228) und besaß eine leistungsfähigere Interrupt… …   Deutsch Wikipedia

  • 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

  • Ih — Die Abkürzung IH steht für: Interrupt Handler, das Programmstück, das bei einer Unterbrechungsanforderung ausgeführt wird, siehe Interrupt Intrauterine Hypoxie Inside Height (engl.), „Lichte Höhe“ International Harvester, ein Hersteller von… …   Deutsch Wikipedia

  • 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

  • Apple 2 — Apple II Hersteller Apple Vorgestellt April 1977 (USA) Eingestellt November 1993 (USA) Empf. Verkaufspreis US$1298 (ca. 3500 bis 5000 DM) je nach Ausstattung CPU …   Deutsch Wikipedia

Share the article and excerpts

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