Was bedeutet" Windows ist kein Echtzeit-Betriebssystem"?

Ich bin auf eine Anwendung namens LatencyMon gestoßen, die anscheinend die Latenzüberwachung durchführt.

Ich habe immer verstanden, dass je mehr von einer Last Sie auf dem Prozessor setzen, desto weniger reagiert, oder mehr latent, das System wird. Im zweiten Abschnitt der LatencyMon-Seite heißt es jedoch im ersten Satz: "Windows ist kein Echtzeitbetriebssystem" (RTOS). Das brachte mich zum nachdenken. Ich meine, unterscheidet sich das von jedem anderen Betriebssystem wie Linux, Unix oder Mac OS X?

Gibt es "Echtzeit"-Betriebssysteme? Oder ist es nur ein Marketing-Programm, um Sie zu bekommen, um ihr Produkt zu kaufen?

BEARBEITEN:

Gibt es auch Beispiele für RTOS da draußen?

Author: fixer1234, 2012-03-30

3 answers

Wikipedia hat hier tatsächlich eine überraschende Fülle von Informationen.

Ein Echtzeit-Betriebssystem (RTOS) ist ein Betriebssystem (OS), das Echtzeit-Anwendungsanforderungen bedienen soll.

Ein Schlüsselmerkmal eines RTOS ist der Grad seiner Konsistenz in Bezug auf die Zeit, die benötigt wird, um die Aufgabe einer Anwendung zu akzeptieren und abzuschließen; Die Variabilität ist Jitter. Ein hartes Echtzeitbetriebssystem hat weniger Jitter als ein weiches Echtzeitbetriebssystem. Chief das Designziel ist kein hoher Durchsatz, sondern eine Garantie für eine weiche oder harte Leistungskategorie. Ein RTOS, das normalerweise oder allgemein eine Frist einhalten kann, ist ein weiches Echtzeit-Betriebssystem, aber wenn es eine Frist deterministisch einhalten kann, ist es ein hartes Echtzeit-Betriebssystem.

Ein RTOS verfügt über einen erweiterten Algorithmus für die Planung. Scheduler Flexibilität ermöglicht eine breitere, Computer-System-Orchestrierung von Prozessprioritäten, aber ein Echtzeit-Betriebssystem ist häufiger auf einen engen Satz von Anwendungen gewidmet. Schlüssel faktoren in einem Echtzeit-Betriebssystem sind minimale Interrupt-Latenz und minimale Thread-Switching-Latenz; Ein Echtzeit-Betriebssystem wird mehr dafür geschätzt, wie schnell oder wie vorhersehbar es reagieren kann als für den Arbeitsaufwand, den es in einem bestimmten Zeitraum ausführen kann.

Dies ist etwas, was nur sehr wenige Betriebssysteme tatsächlich tun, da es für viele Workloads einfach weniger effizient ist. Keines der wichtigsten Consumer-Betriebssysteme ist jetzt (oder meines Wissens jemals) in Echtzeit. Leider bedeutet dies, dass manchmal Dinge in einer Nicht-Echtzeit-Umgebung herumsitzen müssen, um auf andere Dinge zu warten. Dies wird nur ein Problem, wenn etwas nicht in einer angemessenen Zeit nachgibt, in der Regel.

Derzeit sind die bekanntesten, am weitesten verbreiteten Echtzeit-Betriebssysteme:

LynxOS
OSE
QNX
RTLinux
VxWorks
Windows CE

Siehe die Liste der Echtzeit-Betriebssysteme für eine umfassende Liste.

 21
Author: Shinrai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-03-30 22:46:50

Echtzeitbetriebssysteme werden häufig für eingebettete Systeme verwendet, wo sie für etwas wie Führung oder Systemüberwachung verantwortlich sein könnten. Das Wichtigste an einem Echtzeitsystem (und was es von einem Nicht-Echtzeitsystem unterscheidet) ist, dass in einem Echtzeitsystem, wenn eine Antwort zu spät ist, es ist falsch. Sie können leicht sehen, wie dies funktioniert, indem Sie darüber nachdenken, eine Reihe von Zahlen in Excel hinzuzufügen (wobei, wenn der Vorgang verzögert wird, es keine echte Aufprall) im Vergleich zum Anbringen einer Bremse in einem Auto (wo eine Verzögerung katastrophal sein könnte).

 19
Author: Scott C Wilson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-04-02 17:21:02

Grundsätzlich kann ein RTOS garantieren, dass es einen IRQ (Interrupt Request) in einem bestimmten (normalerweise niedrigen) Zeitrahmen bedienen kann. Standard-Betriebssysteme haben keine solche Garantie.

In den meisten modernen Systemen können die meisten Geräte einen IRQ erzeugen. Dies führt dazu, dass die CPU stoppt (dh unterbrochen wird), was sie tut, und ein Interrupt-Service-Programm ausführt. Die Idee ist, dass dieses Dienstprogramm alles tut, was das Gerät benötigt, dh Daten vom Gerät in den RAM abruft und dem Gerät mitteilt, was zu tun ist als nächstes tun usw.

Auf x86, da es nur 1 IRQ-Zeile auf der CPU hat, wenn es einen Interrupt empfängt, werden weitere Interrupts automatisch deaktiviert (mit Ausnahme von NMI, RESET und SMI), bis die CPU die Interrupt-Quelle bestätigt und wieder aktiviert sie. Gute Gerätetreiber unter Standard i386 / amd64 Windows führen in diesem Zustand eine minimale Verarbeitung durch, gerade genug, damit es in Ordnung ist, Interrupts erneut zu aktivieren, und verschieben dann die vollständige Verarbeitung des Interrupts bis später (da das System dies kann technisch nur Service 1 Interrupt pro CPU-Kern zu einem Zeitpunkt). Ich bin mir nicht sicher, aber ich glaube, Linux macht dasselbe. Nichtsdestotrotz gibt es keine feste Garantie für die Zeit, in der der Interrupt gewartet wird.

Für die meisten PC geräte, wie festplatten, tastaturen, NICs, wenn es ist eine leichte verzögerung wartung ihre IRQ, nichts schlimmes wird passieren andere als ein verlust in leistung. Dies kann eher ein Problem für Geräte wie Audio-und Videoeingänge sein, bei denen das Gerät nichts puffert und der PC muss wirklich mit dem eingehenden Datenstrom Schritt halten.

 10
Author: LawrenceC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-03-31 13:13:37