Echtzeit-Virtualisierung für Windows: Die Kuka-RTOSWin-Produktfamilie

Seit mehr als zwölf Jahren bietet die Kuka Roboter GmbH eine Plattform an, mit der man Standard-Echtzeitbetriebssysteme parallel zu Windows betreiben kann. Mit der neuen RTOS Virtual Machine und dem darüberliegenden Virtual Machine Framework (VMF) steht jetzt eine weltweit einmalige, sehr leistungsfähige Plattform zur Verfügung, mit der beliebige Echtzeit-Betriebssysteme (oder auch Echtzeit-Firmware ohne Betriebssystem-Unterstützung) zusammen mit Windows ausgeführt werden können. Die Echtzeitsoftware kann dabei wahlweise auf einem CPU Core parallel zu Windows oder auch auf einem CPU Core exklusiv betrieben werden. Auch der Betrieb verschiedener Echtzeitbetriebssysteme oder verschiedener Instanzen desselben Echtzeitbetriebssystems auf verschiedenen CPU Cores ist möglich. Die Kuka-Virtualisierungslösung ist lauffähig auf allen heute erhältlichen Prozessoren, sowohl von Intel als auch von AMD. Dies ist ein wichtiger Vorteil, da andere am Markt verfügbare Produkte oft nur die hochwertigen Intel-Prozessoren und damit entsprechend teure CPUs unterstützen. Auf Singlecore-Systemen wird der Echtzeitteil im so genannten Shared Modus betrieben: Windows wird dann in der Idle-Loop des Echtzeitbetriebssystems ausgeführt, erhält somit die niedrigste Priorität aus Sicht des Echtzeit-Teils. Diese Betriebsart kann auch auf Multicore-Systemen zum Einsatz kommen, was immer dann sinnvoll ist, wenn der Echtzeitteil nur einen Teil der Rechenzeit eines einzigen Cores benötigt – Windows erhält dann den verbleibenden Rechenzeitanteil. Das Echtzeit-Betriebssystem kann bei Verwendung von Multicore-Systemen im Exclusive Modus betrieben werden, dann werden ein oder mehrere Cores vollständig durch den Echtzeitteil belegt, Windows läuft in diesem Fall parallel und vollkommen unabhängig vom Echtzeitbetriebssystem. Mehrere Echtzeitkerne Die RTOS Virtual Machine bietet in Multicore-Umgebungen die Möglichkeit an, auf jedem CPU Core eine eigene Instanz eines Echtzeit-Betriebssystems ablaufen zu lassen. Für ein Echtzeitbetriebssystem, das symmetrisches Multiprozessing unterstützt, können mehrere CPU-Cores zu einem SMP-Verbund zusammengefasst werden. So ist es beispielsweise denkbar, auf einem Quad-Core-Rechner Windows XP auf dem ersten Core zu nutzen, Windows CE auf dem zweiten Core und QNX oder On Time RTOS-32 auf dem dritten und vierten Core im SMP-Modus. Die RTOS Virtual Machine stellt sicher, dass der Speicher des Echtzeitbetriebssystems nicht durch fehlerhafte Anwendungen oder Treiber auf der Windows-Seite überschrieben werden kann. Dies gilt umgekehrt auch für Windows bzw. für weitere Instanzen von Echtzeitbetriebssystemen – jedes Betriebssystem läuft in einem virtuellen Adressbereich, ohne dass ein Überschreiben von Speicher der anderen Betriebssysteme möglich ist. Selbst wenn Windows abstürzt (Blue Screen) ist ein sicherer Betrieb des RTOS ohne Verletzung der Echtzeiteigenschaften gewährleistet. Das Virtual Machine Framework ist das Programmier-Interface zur RTOS-VM, es bietet als Basisdienst einen Hardware Abstraction Layer (HAL) an. Mittels dieser HAL kann mit geringem Aufwand ein Echtzeitbetriebssystem an die RTOS Virtual Machine adaptiert werden; es werden u.a. Funktionen für die Behandlung der Interrupt-Controller, zwei frei programmierbare Timer, Time­stamping und Rechenzeitanalysefunktionen angeboten. Durch die Abstraktion der Hardware sind quasi keine Kenntnisse der PC-Architektur notwendig, um eine Portierung durchzuführen. Alle heute gängigen PC-Systeme werden durch die HAL unterstützt. Weiterhin ist die HAL unabhängig von der Betriebsart (Shared oder Exclusive Modus), weshalb ohne jegliche Änderung des Echtzeitteils, lediglich durch Konfiguration, die Betriebsart selektiert wird. Eine weitere zentrale Eigenschaft der RTOS-VM bzw. des Virtual Machine Frameworks ist dessen Relozierbarkeit. Der Programmcode kann an jeder beliebigen Stelle im Speicher ausgeführt werden, ohne dass eine Änderung der RTOS-VM notwendig ist (ein Neu-Linken auf eine andere Adresslage). Deshalb wird die RTOS-VM in Form einer binären Datei ausgeliefert. Die VMF-Anwenderschnittstelle wird über eine Sprungtabelle implementiert, ein Einbinden der VMF in Form einer Library ist somit nicht notwendig. Dadurch ergeben sich zwei substanzielle Vorteile: 1. Die RTOS-VM ist für alle Echtzeitbetriebssysteme binär identisch,eine Portierung ist nicht notwendig. 2. Updates in der RTOS-VM können in ein bestehendes System eingespielt werden, ohne dass die Echtzeitanwendung geändert werden muss, was erhebliche Vorteile hinsichtlich der Wartbarkeit des Gesamtsystems bedeutet. Neben den Basisdiensten, die die VMF mit dem Hardware Abstraction Layer zur Verfügung stellt, existieren High-Level-Services für die Kommunikation zwischen den Betriebssystemen. Heute stellen faktisch alle Echtzeitbetriebssysteme einen TCP/IP-Netzwerkstack zur Verfügung. Das Virtual Machine Framework stellt mit der Network-Packet-Library eine einfach anzuwendende Schnittstelle zur Verfügung, sodass zwischen den Betriebssystemen eine TCP/IP-Kommunikation erfolgen kann. Weiterhin kann ein vom Anwender in der Größe festzulegender Speicherbereich von allen Teilnehmern gemeinsam genutzt werden (shared memory). Zur Synchronisation des Zugriffs auf diesen Speicher bietet das Framework entsprechende Funktionen an. Die Applikationen können des Weiteren über Betriebssystemgrenzen hinweg mit Hilfe von \’Named Events\‘ Nachrichten austauschen. Der vom VMF zur Verfügung gestellte virtuelle serielle Datenkanal kann entweder als Kommunikationskanal oder auch für Debug-Zwecke verwendet werden. Die Kuka-RTOS-VM ist somit eine sehr leistungsfähige Plattform, um insbesondere auf Multicore-Systemen weitere Echtzeitbetriebssysteme parallel zu Windows zu betreiben.