Definition und Zweck:
Die Interrupt-Priorität (Unterbrechungspriorität) ist ein Mechanismus in Echtzeitbetriebssystemen und SPSen, der die hierarchische Ordnung festlegt, in der konkurrierende Interrupt-Anfragen verarbeitet werden. Wenn mehrere Interrupts gleichzeitig auftreten oder während ein Interrupt bereits bearbeitet wird, legt die Priorität fest, welcher Interrupt zuerst ausgeführt oder ob ein bereits laufender Interrupt unterbrochen werden darf.
Das Hauptziel der Interrupt-Priorität ist es, Konflikte zu vermeiden und sicherzustellen, dass die zeitkritischsten und wichtigsten Ereignisse im System immer bevorzugt und pünktlich bearbeitet werden, auch wenn weniger wichtige Ereignisse gleichzeitig anstehen.
Funktionsweise:
Jeder mögliche Interrupt-Typ (z.B. Hardware-Eingang, Timer, Kommunikationsereignis) erhält eine bestimmte Prioritätsstufe zugewiesen. Wenn ein Interrupt auftritt, prüft die CPU dessen Priorität:
- Wenn die Priorität höher ist als die des aktuell laufenden Programms oder Interrupts: Der aktuelle Prozess wird unterbrochen, und die Interrupt-Service-Routine (ISR) des höher priorisierten Interrupts wird sofort ausgeführt.
- Wenn die Priorität niedriger ist: Der Interrupt wird registriert und in eine Warteschlange gestellt, bis der höher priorisierte Prozess abgeschlossen ist.
- Wenn die Priorität gleich ist: Der neue Interrupt wird in die Warteschlange gestellt und nach dem aktuellen Prozess bearbeitet.
Nachdem die ISR des höher priorisierten Interrupts abgeschlossen ist, kehrt die Steuerung zum unterbrochenen Prozess zurück, selbst wenn es noch niedrigere Prioritäts-Interrupts in der Warteschlange gibt.
Relevanz in der Automatisierung:
Die korrekte Konfiguration der Interrupt-Prioritäten ist entscheidend für die Echtzeitfähigkeit und Stabilität von Automatisierungssystemen:
- Zeitkritische Aufgaben: Z.B. eine Not-Halt-Betätigung oder ein schneller Zähler muss immer sofort bearbeitet werden, auch wenn die SPS gerade komplexe Berechnungen im Hauptprogramm durchführt.
- Ressourcenschutz: Höher priorisierte Interrupts können den Zugriff auf kritische Datenbereiche schützen, indem sie sicherstellen, dass sie nicht von gleichzeitig laufenden, niedriger priorisierten Prozessen manipuliert werden.
- Systemdesign: Die Vergabe von Prioritäten ist ein wichtiger Aspekt beim Design von Echtzeitsystemen, um die deterministischen Antwortzeiten zu gewährleisten.
Eine fehlerhafte Priorisierung kann zu unvorhersehbarem Verhalten, Dateninkonsistenzen oder sogar gefährlichen Zuständen führen.
→ Siehe auch: Interrupt, Echtzeitfähigkeit, Task, Determinismus, SPS, Not-Halt

