Wenn dieser Wikipedia-Artikel einen asynchronen Interrupt erwähnt, verwenden sie die klassische getaktete vs. nicht getaktete Definition von (a) synchron, die für eine digitale Schaltung gilt.
Eine digitale Schaltung wird als synchron bezeichnet, wenn jeder Teil der Logik mit einem gemeinsamen Takt verbunden ist (wie in Ihrer CPU). Beim Anstieg oder Abfall jedes Taktzyklus wird der Zustand der Schaltung aktualisiert. Eine asynchrone digitale Schaltung wird dagegen nicht getaktet, sondern der nächste Zustand hängt vom aktuellen ab (und schaltet so schnell wie möglich um). Das Lesen von Logik von anderen Schaltkreisen, die nicht denselben gemeinsamen Takt verwenden, kann auch als asynchron definiert werden, jedoch in Bezug auf den anderen Schaltkreis .
Wenn ein asynchroner Interrupt ausgelöst wird, bedeutet dies, dass der Prozessor (höchstwahrscheinlich beim nächsten Taktzyklus) seine aktuelle Ausführungsumgebung speichert und die Interruptanforderung bearbeitet. Dies ist ein Beispiel für einen Hardware-Interrupt (einer, der durch eine externe Verbindung zum Prozessor ausgelöst wird). Alle Software-Interrupts sind, wie im Artikel erwähnt, technisch synchron, da sie von der CPU selbst ausgelöst werden - einer synchronen Schaltung.
Da keine externen Geräte dieselbe gemeinsame Uhr wie die CPU verwenden, können alle externen Interrupts als asynchron bezeichnet werden. Auch wenn das Gerät , das den Alarm ausgelöst kann eine synchrone Schaltung sein, von den CPU Point-of-View , werden diese Interrupts asynchron ausgelöst (da es nicht ein gemeinsames Taktsignal mit dem Gerät Sharing).
Das eigentliche externe Interrupt- Signal selbst ist asynchron, aber alle CPU-Interrupt-Handler sind synchron. Sie erkennen einen Interrupt erst beim nächsten Takt , da dies der Punkt eines synchronen Systems ist (damit sich der Systemstatus nur gemeinsam ändern kann). Wenn Sie neugierig sind, wie ein Prozessor mit Interrupts umgeht, lesen Sie diese großartige Ressource von Intel (insbesondere Band 3, Teil 1).
Aus dem Etymologie-Wörterbuch für
Synchronous
,asynchronous
bedeutet "nicht synchron".Jetzt lesen Sie das alles im Kontext von noch
interrupts
einmal.Der asynchrone Interrupt steht nicht in direktem Zusammenhang mit der jeweiligen Aktivität. Stellen Sie sich vor, Sie lesen dies und hören plötzlich ein Geräusch hinter sich. Sie drehen sich um - das liegt daran, dass Sie dazu asynchron unterbrochen wurden
:-)
Wenn Sie nun die Wikipedia-Seite nach Interrupts lesen und das Wort sehen
asynchronous
, schlagen Sie es nach (wie oben) - das ist ein synchroner Interrupt in Ihrem Gedankenfluss; Die Ursache für diese Unterbrechung war das, was Sie gelesen haben. Infolgedessen haben Sie aufgehört zu lesen, das Wort nachgeschlagen und sind schließlich zum Lesen zurückgekehrt.quelle
Grundsätzlich ist dies eine Möglichkeit, die Aufmerksamkeit des Kernels oder eines Programms zu erregen.
Ein Beispiel: Nehmen wir an, ich habe ein Programm, das eine Datei herunterlädt. Ich möchte, dass mein Programm während des Herunterladens der Datei weiterhin reagiert, und ich muss meinem Programm mitteilen, dass ich fertig bin. In der Zwischenzeit sollte mein Programm jedoch so weitermachen, wie es will, bis es durch die Fertigstellung einer heruntergeladenen Datei ** unterbrochen ** wird. Es tut dann alles, was es tun muss. Es ist asynchron, da es nicht zu einem vordefinierten Zeitpunkt oder in einer vordefinierten Reihenfolge auftritt.
Synchronisieren bedeutet, dass Sie damit gerechnet haben. Async bedeutet, dass Sie nicht wussten, wann oder ob es passieren würde.
quelle