Wie funktioniert Echtzeit unter Windows?

Breaking News:
Kathmandu Nepal
Dienstag, März 25, 2025
Echtzeit und Windows – die Lösung
Die einzige Voraussetzung für Echtzeit auf Windows-PCs ist ein Prozessor mit mindestens zwei Kernen. Die grundlegende Funktionsweise besteht darin, Windows anzuweisen, nur eine begrenzte Anzahl von CPU-Kernen eines Mehrkernprozessors zu benutzen. Auf den freien Kernen bootet daraufhin das Echtzeitsystem, welches fortan wie ein eigenständiges RTOS funktioniert, während Windows auf den übrigen CPU-Kernen seine volle Funktionalität behält. Windows und das Echtzeitsystem laufen ab diesem Zeitpunkt also gleichzeitig, parallel auf einem einzigen Rechner, ohne dass sie sich gegenseitig einschränken. Die Anweisung an Windows, auf weniger Kernen zu booten, kann relativ einfach mit dem Konfigurationsprogramm Msconfig vorgenommen werden.
Durch diese Vorgehensweise erhält das Echtzeitsystem einen geschützten Bereich und garantiert somit, dass Windows-Prozesse nicht die Priorität über zeitkritische Operationen bekommen und sich negativ auf die Echtzeitleistung auswirken. Ziel ist es, speziell „harte“ Echtzeiteigenschaften auch auf Windows-PCs zu erreichen. Doch was bedeutet „hart“ in diesem Zusammenhang?
Was ist der Unterschied zwischen „weicher“ und „harter“ Echtzeit?
Bei Echtzeit unterscheidet man zwischen unterschiedlichen Anforderungen und wie mit dem Zeitrahmen zur Ausführung von Operationen umgegangen wird. Während „weiche“ Echtzeit lediglich einen ungefähren Mittelwert an Reaktionszeiten anstrebt, wird bei der „harten“ Echtzeit garantiert, dass eine vorgeschriebene Zeitspanne nicht überschritten wird. Durch den erhöhten Anspruch ist das Erreichen von „harten“ Echtzeiteigenschaften damit wesentlich komplexer und aufwendiger. Jedoch ist dieses deterministische Zeitverhalten vor allem in automatisierten industriellen Bereichen, speziell bei Mess-, Steuer- und Regelungsanwendungen, unabdingbar.
Wie können Windows- und Echtzeit-Kontext nun aber zusammengebracht werden?
Das Echtzeitsystem ist als ein Gerätetreiber implementiert und stellt ein eigenes API bereit, mit dem der Anwender die zeitkritischen Code-Teile seiner Windows-Applikation in eine DLL auslagert. Diese DLL wird dann in den Echtzeitkontext des RTOS geladen. Damit Windows und DLL aus ihren unterschiedlichen Kontexten miteinander kommunizieren, kann – neben indirekten Mitteln wie Pipes oder Sockets – ein geteilter Speicherbereich erstellt werden, auf den beide Zugriff haben. Trotz der Verwendung eines Echtzeitbetriebssystems bleibt Windows dabei als Programmieroberfläche und Host-System zur Ausführung erhalten.
Warum gerade Windows als RTOS?
Gegenüber sowohl reinen Echtzeitbetriebssystemen als auch Echtzeit-Hardwarelösungen bietet ein Windows-PC spezifische Vorteile. So ist Windows eine vertraute Grafik- und Benutzeroberfläche mit breiter, stetig aktualisierter Treiberunterstützung sowie einem großen Spektrum an lauffähigen Programmen. Reine RTOS hingegen sind stark spezialisiert und dadurch oft eingeschränkt, was Funktionsumfang und Bedienbarkeit angeht. Hardware-Lösungen wie FPGAs oder DSPs können zwar je nach Anforderung angepasst werden, deren Programmierung ist jedoch auch komplex und zeitaufwändig. Um „harte“ Echtzeit auch unter Windows umsetzen zu können, benötigt man lediglich einen PC mit mehreren CPU-Kernen.
Kithara ist Spezialist für Echtzeitlösungen, speziell für die Windows- Betriebssystemfamilie. Die Echtzeiterweiterung Kithara RealTime Suite ist eine umfassende Systembibliothek für hardwarenahe Programmierung, Kommunikation, Automatisierung und Bildverarbeitung. Die Software bildet eine einfach anwendbare und leistungsfähige technische Basis für anspruchsvolle Anwendungen in Produktion und Fertigung, Robotik, Automobilelektronik sowie Steuerungs-, Mess- und Regelungstechnik. Sie ist damit Kernbestandteil im Maschinenbau, bei Prüfständen und anderen Spezialapplikationen. Kithara hat weltweit Vertretungen und unterstützt global agierende Unternehmen bei der Realisierung innovativer Projekte.
Kithara Software GmbH
Alte Jakobstraße 78
10179 Berlin
Telefon: +49 (30) 2789673-0
Telefax: +49 (30) 2789673-20
http://kithara.com