Software

Wie funktioniert Echtzeit unter Windows?

Für wen Echtzeit kein Fremdwort ist, weiß, wie wichtig diese heute für viele informationstechnische Bereiche ist. Ob bei parallel operierenden Servomotoren eines Roboterarms, präzisen Mess-Applikationen oder kameragestützten Fahrassistenzsystemen – die Reaktionszeit zwischen Hardware- und Software-Komponenten ist in vielen modernen Anwendungen ein kritischer Faktor. Was früher mit speziellen Echtzeitbetriebssystemen (Real-Time Operating System, kurz: RTOS) oder Hardware (DSP bzw. FPGA) erreicht wurde, lässt sich mittlerweile ebenso auch auf handelsüblichen Windows-PCs umsetzen. Windows ist jedoch kein Echtzeitsystem, da es laufende Anwendungen häufig unterbricht, um andere Programme und Prozesse, etwa zur Systemwartung, auszuführen. Wie können diese vermeintlichen Gegensätze also zusammengebracht werden? Wie funktioniert Echtzeit unter Windows?

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.

Über die Kithara Software GmbH

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.

Firmenkontakt und Herausgeber der Meldung:

Kithara Software GmbH
Alte Jakobstraße 78
10179 Berlin
Telefon: +49 (30) 2789673-0
Telefax: +49 (30) 2789673-20
http://kithara.com

Ansprechpartner:
Lena Pomonmareva
E-Mail: info@kithara.de
Martin Ebert
Telefon: +49 (30) 2789673-13
Fax: +49 (30) 2789673-20
E-Mail: m.ebert@kithara.com
Für die oben stehende Story ist allein der jeweils angegebene Herausgeber (siehe Firmenkontakt oben) verantwortlich. Dieser ist in der Regel auch Urheber des Pressetextes, sowie der angehängten Bild-, Ton-, Video-, Medien- und Informationsmaterialien. Die United News Network GmbH übernimmt keine Haftung für die Korrektheit oder Vollständigkeit der dargestellten Meldung. Auch bei Übertragungsfehlern oder anderen Störungen haftet sie nur im Fall von Vorsatz oder grober Fahrlässigkeit. Die Nutzung von hier archivierten Informationen zur Eigeninformation und redaktionellen Weiterverarbeitung ist in der Regel kostenfrei. Bitte klären Sie vor einer Weiterverwendung urheberrechtliche Fragen mit dem angegebenen Herausgeber. Eine systematische Speicherung dieser Daten sowie die Verwendung auch von Teilen dieses Datenbankwerks sind nur mit schriftlicher Genehmigung durch die United News Network GmbH gestattet.

counterpixel