Ein Gerät erhält die Aufmerksamkeit der CPU durch einen Prozess namens
Interrupt -Handhabung . Hier ist eine Aufschlüsselung:
1. Geräteanforderung: Ein peripheres Gerät (wie eine Tastatur, Maus, Festplatte, Netzwerkkarte usw.) benötigt die Aufmerksamkeit der CPU. Dies geschieht, wenn das Gerät eine Operation abschließt (z. B. einen Tastendruck, Datenübertragungsabschluss) oder auf einen Fehler stößt.
2. Interrupt -Signal: Das Gerät sendet eine * Interrupt -Anforderung (IRQ) * Signal an die CPU. Dieses Signal wird normalerweise über eine dedizierte Hardware -Linie gesendet. Der Interrupt ist im Wesentlichen ein Signal mit "Hey CPU, ich brauche dich!"
3. Controller unterbrechen: Bevor der IRQ die CPU direkt erreicht, durchläuft er häufig einen *Interrupt -Controller *. Dieser Controller verwaltet die Interrupt -Anfragen mehrerer Geräte, priorisiert sie und stellt sicher, dass jeweils nur ein Interrupt behandelt wird. Der Controller kann auch Interrupt -Maskierung (ignorieren bestimmte Interrupts) basierend auf Systemprioritäten durchführen.
4. Routine für die Handhabung der Interrupt: Nach Erhalt des Interrupt -Signals stoppt die CPU ihre aktuelle Ausführung (speichert ihren Zustand) und springt zu einem vordefinierten * Interrupt -Handler * (oder Interrupt -Service -Routine - ISR). Dies ist ein spezifischer Code, der für die Bearbeitung der Anforderungen von diesem bestimmten Gerät ausgelegt ist.
5. Serviceanfrage: Der Interrupt -Handler untersucht die Quelle des Interrupts (das das Gerät erzeugt hat) und nimmt die entsprechende Maßnahmen aus. Dies kann das Lesen von Daten aus dem Gerät, das Senden von Daten an das Gerät oder die Behandlung einer Fehlerbedingung beinhalten.
6. Rückkehr von Interrupt: Nach der Wartung der Interrupt -Anfrage stellt der Interrupt -Handler den Zustand der CPU vor, bevor der Interrupt auftrat und die Kontrolle an das unterbrochene Programm zurückgibt. Die CPU nimmt ihre Ausführung von dem Punkt wieder auf, an dem sie aufgehört hat.
verschiedene Arten von Interrupts:
* Hardware unterbricht: Generiert von Hardware -Geräten wie oben erwähnt.
* Software unterbricht: Generiert durch Softwareanweisungen (z. B. `int` Anweisung in x86). Diese werden häufig für Systemaufrufe oder Ausnahmen verwendet.
Priorität und Planung:
Die CPU- und Interrupt -Controller verwalten Interrupt -Prioritäten. Interrupts mit höherer Priorität können die niedrigeren Priorität unterbrechen. Der Scheduler des Betriebssystems spielt eine entscheidende Rolle bei der Verwaltung dieser Interrupts und der Sicherstellung, dass kritische Geräte unverzüglich gewartet werden. Ein schlecht gestaltetes Interrupt -System kann zu Systeminstabilität oder Datenverlust führen.
Kurz gesagt, es handelt sich um eine koordinierte Hardware-Software-Interaktion, bei der das Gerät eine Aufmerksamkeitsbedürfnis, das System priorisiert und verwaltet diese Anforderung, und die CPU verändert seinen Fokus vorübergehend, um das Gerät zu bedienen, bevor er seine vorherige Aufgabe wieder aufnimmt.