Alle Geräteeingaben von allen Geräten auf allen Linux-basierten Betriebssystemen sind alle Interrupt-gesteuert. Busy Waiting (aktives Polling) für Daten wird nicht verwendet.
Windows ist wahrscheinlich auch alle Interrupt-getrieben. (Windows hat diese DOS-Legacy versteckt in ihm - Abruf kann immer noch dort passieren.)
Alles von Linux funktioniert auf die gleiche Weise. Der Kernel wartet auf Interrupts, stellt die Interrupts in eine Warteschlange und prüft den Scheduler, um als nächstes den Interrupt mit der höchsten Priorität zu behandeln. Die Prozessplanung hat immer eine niedrigere Priorität als die Unterbrechungsplanung.
Die Interrupts der Tastatur werden von einem Treiber behandelt, der die Informationen puffert. Ein Fenstermanager (z. B. Gnome) holt Material aus dem Puffer, um einen Strom von Tastaturinterrupts zu erzeugen.
Sie können zahlreiche wirklich gute Bücher über OS-Design kaufen, die die Beziehung zwischen Gerätetreibern und dem Kernel abdecken. Beginnen Sie mit http://lwn.net/Kernel/LDD3/
Takt Interrupts, BTW, sind, wie Prozessplanung geschieht. Ohne irgendeine Geräteaktivität wird die Uhr periodisch unterbrochen, was den Kernel dazu zwingt, den Zeitplan zu betrachten und möglicherweise zu ändern, welcher Prozess ausgeführt wird. Ein Prozess, der viel CPU verbraucht, hat seine Priorität gesenkt. Ein Prozess, der viele I/O-Vorgänge ausführt, verbringt die meiste Zeit damit, auf die Beendigung von I/O zu warten. Daher wird die Priorität erhöht.
bearbeiten
Auch gibt es - manchmal - DMA-Geräte, die Bypass-kernel Handhabung für Blockübertragungen von Bytes zu unterbrechen. Ein Interrupt initiiert die Übertragung, aber das Gerät lebt auf dem Bus und greift auf das Speicherverzeichnis zu. Video-Displays, Festplatten (und in alten Zeiten, Netzwerkgeräte) können DMA sein.Tastaturen sind jedoch so klein, dass DMA keine hilfreiche Optimierung ist.
Woran denken Sie, dass OSs aktiv sind, während Sie auf Tastatureingabe warten? Welche Beweise haben Sie, dass Tastaturen keine Interrupts erzeugen? –
nicht wahr? Warum muss das Betriebssystem warten, bis der Benutzer die Tasten drückt? Meinst du, dass die Tastatur einen Abfrageprozess einleitet oder hat sie einen Interrupt, den sie immer dann aufruft, wenn eine Taste gedrückt wird, die das Betriebssystem vor solch einem Ereignis warnt? –
Ich habe keine Beweise, deshalb frage ich. Tut mir leid, wenn ich mich so sicher fühle, dass ich etwas weiß, weil ich es nicht weiß. – LuRsT