Eine Unterbrechungsanforderung (IRQ) ist ein elektrisches Signal, das an eine Computer- oder Mikrocontroller-Hardwarekomponente gesendet wird, um den Prozessor aufzufordern, seine aktuelle Tätigkeit zu unterbrechen und einen Hardware- oder Softwaredienst auszuführen. IRQs können von Hardwarekomponenten wie Timern, seriellen und parallelen Schnittstellen oder von Softwarebefehlen erzeugt werden.
Unterbrechungsanforderungen können in verschiedene Ebenen eingeteilt werden, wobei jede Ebene eine andere Priorität hat. Stufe 0 hat die höchste Priorität und ist normalerweise für den Prozessor selbst reserviert. Die Stufen 1-7 haben eine niedrigere Priorität und werden normalerweise für externe Hardwarekomponenten verwendet.
Damit das Betriebssystem Unterbrechungsanforderungen ordnungsgemäß bearbeiten kann, muss es Informationen über jede Unterbrechungsanforderung in einer Datenstruktur, der so genannten Interrupt Descriptor Table (IDT), speichern. Die IDT enthält eine Liste aller Unterbrechungen, die das System bearbeiten kann, zusammen mit der Prioritätsstufe, der Adresse der Unterbrechungsdienstroutine (ISR) und allen zusätzlichen Daten, die mit der Unterbrechung verbunden sind.
Interrupt-Service-Routinen (ISRs) sind spezielle Funktionen, die ausgeführt werden, wenn eine Interrupt-Anforderung eingeht. ISRs sind für die Bearbeitung der eigentlichen Unterbrechungsanforderung zuständig, wie z. B. das Lesen von Daten von einer seriellen Schnittstelle oder das Schreiben von Daten auf eine Festplatte.
Die Unterbrechungsmaskierung ist eine Methode, mit der vorübergehend verhindert wird, dass eine Unterbrechung vom Prozessor verarbeitet wird. Dies wird oft gemacht, wenn eine Aufgabe mit hoher Priorität ohne Unterbrechung ausgeführt werden muss.
Interrupt-Handler sind spezielle Funktionen, die aufgerufen werden, wenn eine Unterbrechung empfangen wird. Der Handler ist dafür verantwortlich, zu bestimmen, welche Maßnahmen als Reaktion auf die Unterbrechung ergriffen werden sollen, und führt dann den erforderlichen Code aus.
Die Unterbrechungslatenz ist die Zeit, die der Prozessor für die Bearbeitung einer Unterbrechungsanforderung benötigt. Die Unterbrechungslatenz kann je nach Geschwindigkeit des Prozessors, der Anzahl der verarbeiteten Unterbrechungen und der Anzahl der Anweisungen im Unterbrechungshandler variieren.
Die Unterbrechungsleistung ist ein Maß dafür, wie effizient eine Unterbrechung vom Prozessor bearbeitet wird. Eine gute Interrupt-Leistung ist wichtig, um sicherzustellen, dass das System auf Hardware- und Software-Anforderungen reagiert.
Bei der gemeinsamen Nutzung von Unterbrechungen können sich mehrere Geräte dieselbe Unterbrechungsleitung teilen. Dies kann nützlich sein, wenn mehrere Geräte mit dem Prozessor kommunizieren müssen, der Prozessor aber nur über eine begrenzte Anzahl von Interruptleitungen verfügt.
Zusammenfassend lässt sich sagen, dass Unterbrechungsanforderungen (IRQs) elektrische Signale sind, die an eine Computer- oder Mikrocontroller-Hardwarekomponente gesendet werden, um den Prozessor aufzufordern, seine aktuelle Tätigkeit zu unterbrechen und einen Hardware- oder Softwaredienst auszuführen. Damit das Betriebssystem Unterbrechungsanforderungen ordnungsgemäß bearbeiten kann, muss es Informationen über jede Unterbrechungsanforderung in einer Datenstruktur namens Interrupt Descriptor Table (IDT) speichern. Unterbrechungs-Service-Routinen (ISRs) sind spezielle Funktionen, die ausgeführt werden, wenn eine Unterbrechungsanforderung empfangen wird. Unterbrechungsmaskierung, Handler, Latenzzeit, Leistung und gemeinsame Nutzung sind wichtige Konzepte, die bei der Arbeit mit Unterbrechungen zu verstehen sind.