Grundsätzlich kann ein RTOS garantieren, dass es einen IRQ (Interrupt Request) in einem bestimmten (normalerweise niedrigen) Zeitraum bedienen kann. Standardbetriebssysteme haben keine solche Garantie.
In den meisten modernen Systemen können die meisten Geräte einen IRQ generieren. Dies bewirkt, dass die CPU anhält (dh unterbrochen wird), was sie tut, und ein Unterbrechungsdienstprogramm ausführt. Die Idee ist, dass dieses Serviceprogramm alles tut, was das Gerät benötigt, dh Daten vom Gerät in den Arbeitsspeicher holt, dem Gerät mitteilt, was als nächstes zu tun ist usw.
Bei x86 werden weitere Interrupts automatisch deaktiviert (mit Ausnahme von NMI, RESET und SMI), bis die CPU die Interruptquelle bestätigt und sie wieder aktiviert, da sie nur über eine IRQ-Leitung auf der CPU verfügt, wenn sie einen Interrupt empfängt. Gute Gerätetreiber unter Standard-i386 / amd64-Windows führen in diesem Zustand nur eine minimale Verarbeitung durch, sodass Interrupts wieder aktiviert werden können, und verschieben dann die vollständige Verarbeitung des Interrupts bis zu einem späteren Zeitpunkt (da das System technisch nur 1 Interrupt pro CPU bedienen kann Kern zu einer Zeit). Ich bin mir nicht sicher, aber ich glaube, dass Linux dasselbe tut. Trotzdem gibt es keine Garantie dafür, dass der Interrupt innerhalb der festgelegten Zeit bearbeitet wird.
Bei den meisten PC-Geräten, wie z. B. Festplatten, Tastaturen und Netzwerkkarten, tritt nur ein Leistungsverlust auf, wenn die Wartung des IRQ geringfügig verzögert wird. Dies kann ein größeres Problem für Geräte wie Audio- und Videoeingänge sein, bei denen das Gerät nichts puffert und der PC wirklich mit dem eingehenden Datenstrom Schritt halten muss.