Was ist ein Interrupt?
Definition. Bei bestimmten Ereignissen in Prozessoren wird ein sogenannter Interrupt ausgelöst. Interrupts machen es möglich, beim Eintreten eines Ereignisses sofort informiert zu werden, ohne permanent irgendeinen Status abzufragen, was teure Rechenzeit kosten würde. Dabei wird das Programm unterbrochen und ein Unterprogramm aufgerufen.
Was sind präzise und unpräzise Interrupts?
Es wird zwischen präzisen Interrupts und unpräzisen Interrupts unterschieden. Präzise Interrupts halten die Maschine in einem wohldefinierten Zustand, unpräzise nicht. Ein Software-Interrupt ist ein Programmbefehl, der so wirkt wie ein Hardware-Interrupt, man spricht von einem expliziten Interrupt-Auftrag.
Was ist eine globale Interruptsteuerung?
Globale Interruptsteuerung über ein CPU-Statusbit: Beim AVR ist das das I-Bit (Interrupt) im Statusregister (SREG). Dieses Bit wirkt wie ein Hauptschalter und kann global die Ausführung aller Interrupts ein – und ausschalten. Das heisst aber nicht, dass während der Zeit der inaktiven Interrupts diese verloren gehen.
Wie wird die Registrierung eines Interrupts durchgeführt?
Die Registrierung eines Interrupts setzt ein passend zum Ereignis benanntes Interruptflag in Form eines Bits in einem speziellen Statusregister. Bei der Behandlung des Interrupts wird das Anwendungsprogramm unterbrochen, das auslösende Interruptflag gelöscht und ein Unterprogramm, die sogenannte I nterrupt S ervice R outine ( ISR ), aufgerufen.
Ein Software Interrupt ereignet sich zum Beispiel, wenn ein Anwendungsprogramm fertig ist oder vom Betriebssystem bestimmte Services anfordert. Bei einem PC hat ein Hardware IRQ (Interrupt Request) einen Wert, der ihn mit einem bestimmten Gerät in Verbindung bringt. Folgendes Video (Englisch) gibt eine grundlegende Erklärung zu Interrupts und I/O.
Wie wurde die Interrupt-Verwaltung abgenommen?
Mit der vollautomatischen Interrupt-Verwaltung durch APIC und dem Betriebssystem wurde dem PC-Bastler eine der lästigsten Aufgaben abgenommen, die es jemals gab. Der APIC (Advanced Programmable Interrupt Controller), nicht zu verwechseln mit ACPI, ist eine Steuereinheit für Interrupts in einem Computer.
Kann die Interface-Hardware einen Interrupt auslösen?
Die Interface-Hardware muss nur einen Interrupt auslösen, wenn die nächste Operation auf dem Interface (Hardware) nicht möglich ist, beispielsweise bei Puffer leer (Ausgabe), Puffer voll (Eingabe), bei Fehlermeldungen der Interface-Hardware oder einem Ereignis ohne Datentransfer (z. B. Timer).
Wie kann ein Interrupt bei vielen Prozessoren ausgelöst werden?
Im Gegensatz dazu kann ein Interrupt bei vielen Prozessoren auch durch den laufenden Programmcode selbst mittels eines Maschinenbefehls („INT nn“) ausgelöst werden ( Software-Interrupt ). Effektiv ist dies eher mit einem Unterprogramm -Aufruf zu vergleichen; einzelne Betriebssysteme implementieren so Systemaufrufe .
Wie wird die Behandlung des Interrupts beendet?
Bei der Behandlung des Interrupts wird das Anwendungsprogramm unterbrochen, das auslösende Interruptflag gelöscht und ein Unterprogramm, die sogenannte I nterrupt S ervice R outine ( ISR ), aufgerufen. Wenn dieses beendet ist, läuft das Anwendungsprogramm ganz normal weiter.
Ein Interrupt ist ein Signal, das die aktuelle Aktivität des Prozessors unterbricht, damit eine andere Funktion ausgeführt werden kann. Die Unterbrechung kann extern, wie zum Beispiel durch das Drücken eines Tasters, oder intern, beispielsweise durch eine Zeituhr oder ein Software-Signal hervorgerufen werden.
Wie können Interrupts gesteuert werden?
Interrupts müssen wie alle anderen Module und Funktionen eines Mikrocontrollers gesteuert werden. Dazu wird auf praktisch allen Mikrocontrollern ein zweistufiges System verwendet. Globale Interruptsteuerung über ein CPU-Statusbit: Beim AVR ist das das I-Bit (Interrupt) im Statusregister (SREG).
Ein Interrupt dient also dazu, eine fortlaufende Aktion zu unterbrechen, sobald eine von uns zuvor gesetzte Bedingung erfüllt worden ist. Für die Dauer des erfüllten Zustandes der Bedingung wird nun der Interrupt durchgeführt.
Wie startet die Interrupt-Service-Routine?
Die Software der Interrupt-Service-Routine (ISR) startet und muss zunächst die Inhalte aller Register, die sie selbst benutzen wird (ggf. auch das Statusregister, wenn es nicht automatisch gesichert wurde) auf den Stack kopieren, da sonst die Daten der unterbrochenen Tasks nicht wiederhergestellt werden können.
Wie lange ist die Interrupt Instruktion akzeptiert?
Solange entweder der Interrupteingang der CPU oder der Einzelinterrupt auf dem Interrupt Controller maskiert ist, passiert nichts weiter. Interruptanforderungen werden auch nur nach Ablauf der gerade laufenden Instruktion akzeptiert. Normalerweise bleiben Interruptanforderungen bestehen, bis sie akzeptiert werden.