Durch Abfragen und Interrupts kann die CPU das beenden, was sie gerade tut, und auf die wichtigere Aufgabe reagieren. Polling und Interrupt unterscheiden sich in vielen Aspekten. Grundsätzlich unterscheiden sich Polling und Interrupt jedoch dadurch, dass die CPU die E / A-Geräte in regelmäßigen Abständen überprüft, ob CPU-Service erforderlich ist, während das E / A-Gerät die CPU unterbricht und der CPU mitteilt, dass CPU-Service benötigt wird . Ich habe einige Unterschiede zwischen Interrupt und Polling in der untenstehenden Vergleichstabelle besprochen.
Vergleichstabelle
Vergleichsgrundlage | Unterbrechen | Umfrage |
---|---|---|
Basic | Das Gerät benachrichtigt die CPU darüber, dass sie CPU-Aufmerksamkeit benötigt. | Die CPU überprüft ständig den Gerätestatus, ob sie die Aufmerksamkeit der CPU benötigt. |
Mechanismus | Ein Interrupt ist ein Hardwaremechanismus. | Polling ist ein Protokoll. |
Wartung | Interrupt-Handler bedient das Gerät. | CPU bedient das Gerät. |
Indikation | Die Unterbrechungsanforderungszeile zeigt an, dass das Gerät gewartet werden muss. | Comand-Ready-Bit zeigt an, dass das Gerät gewartet werden muss. |
Zentralprozessor | Die CPU wird nur gestört, wenn ein Gerät gewartet werden muss, wodurch CPU-Zyklen eingespart werden. | Die CPU muss warten und prüfen, ob ein Gerät gewartet werden muss, wodurch viele CPU-Zyklen verschwendet werden. |
Auftreten | Ein Interrupt kann jederzeit auftreten. | Die CPU fragt die Geräte in regelmäßigen Abständen ab. |
Effizienz | Interrupt wird ineffizient, wenn Geräte die CPU immer wieder unterbrechen. | Die Abfrage wird ineffizient, wenn die CPU selten ein Gerät für den Service bereitstellt. |
Beispiel | Lassen Sie die Glocke läuten und öffnen Sie die Tür, um zu sehen, wer gekommen ist. | Öffnen Sie ständig die Tür, um zu prüfen, ob jemand gekommen ist. |
Definition von Interrupt
Ein Interrupt ist ein Hardwaremechanismus, mit dem die CPU erkennt, dass ein Gerät seine Aufmerksamkeit benötigt. Die CPU verfügt über eine Draht- Interrupt-Anforderungsleitung, die nach Ausführung jedes einzelnen Befehls von der CPU geprüft wird. Wenn die CPU ein Interrupt-Signal in der Interrupt-Anforderungsleitung erkennt, stoppt die CPU ihre derzeit ausgeführte Task und reagiert auf das Interrupt-Senden durch das E / A-Gerät, indem die Steuerung an den Interrupt-Handler übergeben wird . Der Interrupt-Handler löst den Interrupt auf, indem er das Gerät wartet.
Die CPU weiß zwar nicht, wann ein Interrupt auftreten würde, da er jederzeit auftreten kann, muss jedoch bei jedem Auftreten auf den Interrupt reagieren.
Wenn der Interrupt-Handler die Ausführung des Interrupts beendet hat, nimmt die CPU die Ausführung der Task wieder auf, die sie angehalten hat, um den Interrupt zu beantworten. Software, Hardware, Benutzer, einige Fehler im Programm usw. können ebenfalls einen Interrupt erzeugen. Die Unterbrechung der Handhabung der CPU führt zu Multitasking, dh ein Benutzer kann mehrere verschiedene Aufgaben gleichzeitig ausführen.
Wenn mehr als ein Interrupt an die CPU gesendet wird, hilft der Interrupt-Handler bei der Verwaltung der Interrupts, die auf die Verarbeitung warten. Wenn der Interrupt-Handler durch den Empfang eines Interrupts ausgelöst wird, priorisiert er die Interrupts, die auf die Verarbeitung durch die CPU warten, und ordnet sie in eine Warteschlange ein, um bedient zu werden.
Definition von Abfragen
Wie wir in Interrupts gesehen haben, kann die Eingabe vom E / A-Gerät zu jedem Zeitpunkt eintreffen und die CPU zur Verarbeitung auffordern. Polling ist ein Protokoll, das die CPU darüber informiert, dass ein Gerät seine Aufmerksamkeit benötigt. Im Gegensatz zu Interrupts, bei denen das Gerät der CPU mitteilt, dass es CPU-Verarbeitung benötigt, fragt die CPU beim Abfragen der E / A-Geräte ständig, ob sie CPU-Verarbeitung benötigt.
Die CPU prüft kontinuierlich jedes daran angeschlossene Gerät, um festzustellen, ob ein Gerät CPU-Aufmerksamkeit benötigt. Jedes Gerät verfügt über ein befehlsbereites Bit, das den Status dieses Geräts angibt, dh, ob ein Befehl von der CPU ausgeführt werden muss oder nicht. Wenn das Befehlsbit auf 1 gesetzt ist, müssen einige Befehle ausgeführt werden. Wenn das Bit 0 ist, hat es keine Befehle. Die CPU verfügt über ein Busy-Bit, das den Status der CPU angibt, unabhängig davon, ob sie ausgelastet ist oder nicht. Wenn das Busy-Bit auf 1 gesetzt ist, ist es damit beschäftigt, den Befehl eines Geräts auszuführen, andernfalls ist es 0 .
Algorithmus für das Polling
- Wenn ein Gerät einen Befehl hat, der von der CPU ausgeführt werden soll, prüft es ständig das Busy-Bit der CPU, bis es gelöscht wird (0).
- Wenn das Busy-Bit gelöscht wird, setzt das Gerät das Schreibbit in sein Befehlsregister und schreibt ein Byte in das Datenausgangsregister.
- Jetzt setzt (1) das Gerät das befehlsbereite Bit.
- Wenn die CPU das befehlsbereite Bit der Geräte prüft und feststellt, dass es gesetzt ist (1), setzt es (1) sein Besetztbit.
- Die CPU liest dann das Befehlsregister des Geräts und führt den Befehl des Geräts aus.
- Nach der Befehlsausführung löscht (0) die CPU das befehlsbereite Bit, das Fehlerbit des Geräts, um die erfolgreiche Ausführung des Befehls des Geräts anzuzeigen, und es löscht (0) außerdem sein Besetztbit, um anzuzeigen, dass die CPU frei ausgeführt werden kann der Befehl eines anderen Geräts.
Hauptunterschiede zwischen Unterbrechung und Abfrage im Betriebssystem
- Im Interrupt benachrichtigt das Gerät die CPU, dass es gewartet werden muss, während die CPU beim Abfragen wiederholt überprüft, ob ein Gerät gewartet werden muss.
- Interrupt ist ein Hardwaremechanismus , da die CPU über eine Draht- Interrupt-Anforderungsleitung verfügt, die signalisiert, dass ein Interrupt aufgetreten ist. Auf der anderen Seite ist Polling ein Protokoll, das ständig die Steuerbits überprüft, um anzuzeigen, ob ein Gerät etwas ausführen muss.
- Der Interrupt-Handler behandelt die von den Geräten erzeugten Interrupts . Auf der anderen Seite bedient CPU beim Abfragen das Gerät, wenn sie benötigt wird.
- Interrupts werden von der Interrupt-Request-Leitung signalisiert. Das Befehlsbereit- Bit zeigt jedoch an, dass das Gerät gewartet werden muss.
- In Interrupts wird die CPU nur dann gestört, wenn ein Gerät sie unterbricht. Auf der anderen Seite verschwendet die CPU viele CPU-Zyklen, indem sie das Befehlsbereit-Bit jedes Geräts wiederholt überprüft.
- Ein Interrupt kann zu jedem Zeitpunkt auftreten, während die CPU das Gerät in regelmäßigen Abständen abfragt.
- Das Abfragen wird ineffizient, wenn die CPU das Gerät ständig abfragt und selten ein Gerät für den Service bereitstellt. Auf der anderen Seite werden Interrupts ineffizient, wenn die Geräte die CPU-Verarbeitung immer wieder unterbrechen.
Fazit:
Sowohl Abfragen als auch Interrupts unterstützen die E / A-Geräte effizient. Sie können jedoch bei der oben diskutierten Bedingung ineffizient werden.