1. Interruptgesteuerte Eingabe/Ausgabe
Interrupt-gesteuerte Eingabe/Ausgabe (I/O) ist ein Mechanismus, bei dem das I/O-Gerät der CPU signalisiert, wenn es Daten hat oder bereit ist, Daten zu empfangen, anstatt dass die CPU ständig den Status des I/O-Geräts prüft.
Auf diese Weise kann die CPU während der E/A-Übertragung weiterhin Anweisungen ausführen, was die Wartezeiten erheblich verkürzt und die Gesamteffizienz des Systems erhöht.
Wie es funktioniert:
- Das E/A-Gerät arbeitet unabhängig von der CPU und unterhält einen Puffer zum Speichern von Daten.
- Wenn der Puffer voll (für die Eingabe) oder leer (für die Ausgabe) wird, generiert das Gerät ein Interrupt-Signal an die CPU.
- Beim Empfang des Interrupts unterbricht die CPU vorübergehend ihre aktuelle Ausführung und die entsprechende Interrupt-Service-Routine (ISR) übernimmt die Datenübertragung zum/vom E/A-Puffer.
- Sobald die Datenübertragung abgeschlossen ist, gibt der ISR die Kontrolle an das Hauptprogramm zurück und die CPU nimmt ihre vorherige Aufgabe wieder auf.
2. Programmierte Eingabe/Ausgabe
Bei der programmierten Ein-/Ausgabe handelt es sich um einen einfacheren E/A-Mechanismus, bei dem die CPU eine proaktive Rolle bei der Verwaltung der Datenübertragungen mit den E/A-Geräten übernimmt. Es fragt das I/O-Gerät kontinuierlich in vordefinierten Abständen ab, um zu prüfen, ob es zum Datenaustausch bereit ist.
Wie es funktioniert:
– Die CPU überprüft regelmäßig ein Statusregister des E/A-Geräts, um festzustellen, ob es zum Senden oder Empfangen von Daten bereit ist.
- Wenn das Gerät bereit ist, initiiert die CPU die Übertragung, indem sie Daten vom E/A-Port oder der speicherabgebildeten Adresse sendet oder empfängt.
- Die CPU wiederholt diesen Vorgang kontinuierlich, bis alle erforderlichen Daten übertragen wurden.
Im Hinblick auf die Effizienz wird Interrupt-gesteuerter I/O im Allgemeinen gegenüber programmiertem I/O bevorzugt, da er eine bessere Auslastung der CPU ermöglicht, indem unnötige und wiederholte Abfragen des I/O-Geräts vermieden werden. Programmierte E/A sind jedoch einfacher zu implementieren und könnten für weniger zeitkritische Anwendungen geeignet sein.