IRQ

Unterbrechungsanforderung oder englisch Interrupt Request (IRQ) ist eine Unterbrechung 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 einer Programmumschaltung oder englisch "context switch" und führt die Unterbrechungsroutine aus. Nach deren Beendigung wird IRQ zurückgesetzt und die unterbrochene Aufgabe fortgesetzt. Eine Alternative Methode zu diesem Zweck ist das Polling,

 

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.

Interrupts und Polling:

Interrupts ermöglichen das effiziente Reagieren auf Ereignisse. Die CPU kann unabhängig von den Geräten den Programmcode abarbeiten, wird beim Eintreffen eines Ereignisses unterbrochen, behandelt es entsprechend, und führt die unterbrochene Aufgabe fort.

 

Die Alternative, in einer Schleife auf das Ereignis zu warten oder regelmäßig ein Gerät nach einem bestimmten Ereignis abzufragen (Polling), benötigt sehr viel mehr Prozessor-Zeit, da ein großer Teil der Abfragen negative Ergebnisse liefern wird. Diese Methode wird jedoch in Systemen verwendet, die sehr zeitkritische Ereignisse behandeln. Dazu werden alle Unterbrechungen unterbunden, da sonst andere, weniger wichtige Geräte durch Unterbrechungen eine Verzögerung hervorrufen könnten.

 

Die Standard-Analogie für Interrupts im Alltag ist eine Tür mit Klingel: Während man seine Aufgaben erledigt, kann man jederzeit durch die Klingel unterbrochen werden, wenn ein Gast eine Abarbeitung wünscht, und sich ihm dann zuwenden. Beim Polling also ohne Klingel müsste ständig an die Tür gelaufen werden, um nachzuschauen, ob Besuch da ist oder nicht. Beim Kochen von Milch hingegen ist es wohl besser, nicht erst auf den "Interrupt" des Überkochens zu warten, sondern den Prozess vielmehr regelmäßig zu überwachen.

Funktionsweise:

Die an die CPU angeschlossene Hardware muss interruptfähig sein, d. h. bei Eintreffen eines bestimmten Ereignisses 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 (Interrupt Service Routine, kurz ISR) einleiten. In einfachen Implementierungen wird nur der gegenwärtige Zustand einiger interner CPU-Register auf dem Stack gesichert, die zur Fortführung des unterbrochenen Programmflusses nötig sind. Dann wird eine Sprungadresse geladen und ein Sprung in die ISR ausgeführt. Der Maschinencode der ISR wird vom Betriebssystem und den Treibern der Geräte installiert. Die Adressen der Unterbrechungsroutinen für alle IRQs befinden sich in der Interruptvektortabelle.

 

Interrupts können zeitweise von der CPU ignoriert werden, zum Beispiel wenn gerade ein IRQ 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

Druckertinten Set für Epson 604 Tintenpatronen, WorkForce 2950DWF 2930DWF
Druckertinten Set für Epson 604 Tintenpatronen, WorkForce 2950DWF 2930DWF
Druckertinte für Epson Expression Home XP-2200, XP-2205, XP-3200, XP-3205, XP-4200, XP-4205, WorkForce WF-2910SWF, WF-2930DWF, WF-2935DWF, WF-2950DWF
Inhalt:   ( € /  )
Write and Draw Ink Set, Schreib- und Zeichentusche, 6 Farben
Write and Draw Ink Set, Schreib- und Zeichentusche, 6 Farben

Octopus Write & Draw Zeichentusche, wasserfeste Tinte für Füller, Feder und Pinsel, vegan

Die Octopus Write & Draw Tuschen sind in Ihrer großen Farbpalette einzigartige, wisch- und wasserfeste Schreib- und Zeichentinten, die für den täglichen Einsatz im Füllhalter entwickelt wurden, und von Grafikern, Illustratoren, Kalligraphen und Künstlern auch liebend gern mit Kalligraphiefeder, Glasfeder oder Pinsel zum Schreiben, Skizzieren, Zeichnen und Kolorieren genutzt werden.
Jeder einzelne der 38 brillanten Farbtöne begeistert dank seiner hohen, ausgewogenen Pigmentierung mit seiner intensiven Farbkraft. Neben einem tiefen Schwarz und verschiedenen Grautönen, umfasst die umfangreiche Farbpalette auch ein besonders deckendes Weiß, mit welchem auf dunklen Untergründen gearbeitet werden kann.

Bei der Entwicklung der Zeichentusche wurde besonderes Augenmerk auf die Verwendung im Füllhalter gelegt. Die Verwendung feinster Farbpigmente in einer sorgsam ausbalancierten Rezeptur sorgt für hohe Lichtechtheit und einen guten, gleichmäßigen Tintenfluss, ohne den Tintenleiter des Füllhalters zu verstopfen. Auch in diesen pigmentierten Schreibtinten findet sich das ausgezeichnete Anschreibverhalten der klassischen Octopus Füllhaltertinten wieder. Die Write & Draw Zeichentusche erfüllt die Anforderungen an dokumentenechte Tinte nach DIN ISO 12757-2 und DIN ISO 14145-2 und wird ausschließlich mit veganen Inhaltsstoffen hergestellt.
 
Schreibenthusiasten lieben das gestochen scharfe Schriftbild, welches sich auf Füllhalter-geeignetem Papier erzielen lässt und das angenehme Shading der Write & Draw Schreibtinte. Dem Kalligraphen gelingen feinste Haarlinien sowie beeindruckende Flourishing-Elemente und dem Urban Sketcher exakte Outlines.

Die Tinte bzw. Tusche trocknet in kürzester Zeit wasserfest auf und kann anschließend mit einem anderen Farbton der Octopus Write & Draw Tuschen oder Aquarellfarben übermalt werden. Sie ist radierfest und ein Großteil der Farben ist zudem textmarkerbeständig.

Sowohl pur als auch mit Wasser verdünnt eignet sich die Octopus Write & Draw Tinte ausgezeichnet zum Colorieren. Unverdünnt angewendet, überzeugt die wasserfeste Tinte mit ihrer Deckkraft. Die vielen Farben der Octopus Zeichentinte lassen sich untereinander, aber auch mit Wasser mischen. So können zahllose Farbschattierungen für wunderschöne Aquarelleffekte erzielt werden.

Im Gegensatz zu den meisten anderen wasserfesten Tuschen kann die Octopus Write & Draw bedenkenlos im Füllhalter verwendet werden. Dabei sollte jedoch darauf geachtet werden, den Füller nicht eintrocknen zu lassen. Wir empfehlen daher, Ihr Schreibgerät nach der Anwendung sorgfältig zu spülen und zu reinigen, um ein versehentliches Eintrocknen der Tinte zu vermeiden.
Für die Reinigung Ihrer Schreibgeräte steht Ihnen der Octopus Spezial-Reiniger für pigmentierte Tinten zur Verfügung.

Inhalt:   ( € /  )
Druckertinten Set für HP 303 und HP 305 Tintenpatronen
Druckertinten Set für HP 303 und HP 305 Tintenpatronen
Druckertinte für HP ENVY, Photo 7130, 7134, 6232, 7830, 6230, 6234, 6220, Tango, DeskJet 2700 Series, DeskJet Plus 4100 Series, Envy 6000 Series, Envy Pro 6400 Series
Inhalt:   ( € /  )
Druckertinten komp. mit Brother LC-3211, LC-3213, CMYK
Druckertinten komp. mit Brother LC-3211, LC-3213, CMYK
Druckertinten für Brother DCP-J 572, DCP-J 770, DCP-J 772, DCP-J 774, MFC-J 490, MFC-J 491, MFC-J 497, MFC-J 890, MFC-J 895
Inhalt:   ( € /  )
Druckertinten Set für Canon PG-560, CL-561 Tintenpatronen, Canon Pixma TS 5300, 7400
Druckertinten Set für Canon PG-560, CL-561 Tintenpatronen, Canon Pixma TS 5300, 7400
Druckertinte für Canon Pixma TS 5300, TS 5350, TS 5350, TS 5351, TS 5352, TS 5353, TS 7400, TS 7450, TS 7450, TS 7451
Inhalt:   ( € /  )