Moin moin WWW´ler,
ich Suche Infos zum Interrupt. Was ist ein Interrupt wie funktioniert er etc.
Wichtig ist das es sehr einfach und für Anfänger erklärt ist. Kann mir da einer bei helfen?
Gruß und danke Euch schon mal.
DJ
Moin moin WWW´ler,
ich Suche Infos zum Interrupt. Was ist ein Interrupt wie funktioniert er etc.
Wichtig ist das es sehr einfach und für Anfänger erklärt ist. Kann mir da einer bei helfen?
Gruß und danke Euch schon mal.
DJ
Ein Interrupt („Unterbrechung“) ist ein Ereignis, das von einer Hardwarekomponente ausgeloest wird und den Rechner ersucht den gerade laufenden Prozess zu unterbrechen und (vorübergehend) einen anderen Befehl abzuarbeiten.
„iss niemals gelben schnee“
Detailiert
Hallo DJ
ich Suche Infos zum Interrupt. Was ist ein Interrupt wie
funktioniert er etc.
Wichtig ist das es sehr einfach und für Anfänger erklärt ist.
Kann mir da einer bei helfen?
Ein Interrupt, ist wie schon gesagt, eine Unterbrechung des gerade von der CPU abgearbeiteten Programms. Der „Trick“ dabei ist, dass das Unterbrochene Programm davon gar nichts „mitbekommen“ soll.
Dazu muss die CPU zuerst einige Informationen (normalerweise mindestens den Programm-Zeiger und das Stutus-Register) an einem sicheren Ort zwischenspeichern (normalerweise auf dem Stack) um nach Beendigung des Interrupts genau dort fortrtfahren zu können, wo sie unterbrochen wurde.
Anschliessend wird, von der CPU, die dem Interrupt zugeordnete Programm-Adresse geladen (Interruptvektor) und mit der Abarbeitung des entsprechenden Programm-Teil (Interruptroutine) begonnen.
Interrupt-/Reset-Vektor:
Dies sind in der Hardware „eingebaute“ Speicheradressen, bei denen die CPU entweder mit der Programmabarbeitung beginnt oder unter denen die Speicheradresse, vom Programmierer, abgelegt ist an welcher sich das zugeordnete Programm befindet.
Es werden 4 Arten von Interrupts unterschieden: Reset, NMI, IRQ und TRAPs:
RESET:
Hiermit wird das laufende Programm abgebrochen und die CPU in einen definierten Zustand versetzt. Anschliessen wird mit der Programmabarbeitung am vom Reset-Vektor bestimmten Speicherplatz begonnen.
NMI (Non Maskable Interrupt = nicht abschaltbarer Interrupt)
IRQ (Interrupt ReQest = Interrupt Anfrage)
Der Unterschied zwischen NMI und IRQ ist nur, dass der IRQ durch die Software abgeschaltet werden kann, wohingegen dies beim NMI nicht möglich ist. Meist werdem dem IRQ, durch zusätzliche Hardware (Interrupt-Controller), mehrere Interrupt-Quellen zugeordnet. Der Interrupt-Controller übernimmt dabei die Zuordnung der Interrupt-Quellen zu einem entsprechenden Interrupt-Vektor und die Priorisierung.
TRAPs
Dies sind spezielle CPU-Befehle welche einen Interrupt eigenen auslösen können wenn si abgearbeitet werden.
Priorisierung:
Den einzelnen Interrupts sind Prioritäten zugeordnet. Damit wird erreicht, dass bei gleichzeitigem auftreten von Interrupts, derjenige mit der höchsten Priorität als erster bearbeitet wird. Weiterhin ist es auch möglich, dass ein Interrupt mit höherer Priorität einen bereits in der bearbeitung befindlicher Interrupt, aber mit niederer Priorität, unterbrechen kann.
z.B. hat der RESET immer die höchste Priorität, damit ein „abgestürtztes“ System wieder in einen definierten Zustand gebracht werden kann. Die Prioritäten sind in der Reihenfolge RESET, NMI, IRQ und TRAP festgelegt.
Sinn und Zweck von Interrupts:
Interrupts werden hauptsächlich verwendet um Ereignisse welche innerhalb einer definierten Zeitspanne bearbeitet werden müssen zu bedienen. z.B. Wenn dein PC gerade die Zellen von Excel neuberechnet, sollten deine Tastatureingaben trotzdem innerhalb einiger 100stel Sekunden angenommen werden. Ansonsten müsste sich an deiner Tastatur eine Lampe befinden, welche leuchtet, wenn der Computer bereit ist eingaben von der Tastatur anzunehmen (Tatsächlich war bei alten Computern eine solche Lampe üblich !).
Bei Multitask-Betriebssystemen wird ein Zeitgeber einem der Interrupts zugeordnet, welcher dann in bestimmten Zeitintervallen das gerade laufende Programm unterbricht und und dann ein zuvor unterbrochenes weiter bearbeitet.
TRAPs werden meist zur Fehlerbehandlung verwendet (die meisten CPUs habnen einen TRAP, welcher nur bei einer Division durch Null ausgeslöst wird) oder zum Aufruf von Funktionen des Betriebssystems.
MfG Peter(TOO)
Moin moin Peter,
mensch das war doch schon mal was. Danke Dir. Hast Du das aus einer Siete im Internet? Wenn ja könntest Du mir mal den Link schicken vielleicht steht da noch mehr drin.
Danke Dir nochmal.
Gruß
DJ
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo DJ
mensch das war doch schon mal was. Danke Dir. Hast Du das aus
einer Siete im Internet? Wenn ja könntest Du mir mal den Link
schicken vielleicht steht da noch mehr drin.
Nein, habe ich „so auf die Schnelle“ selbst geschrieben. Als „Profi“ sollte man dies schon können. ;-Q
MfG Peter(TOO)
gut dann danke dir nochmal PP (Peter Profi )
Gruß
DJ
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]