TenAsys eVM for Windows Virtualisierungsansätze für Echtzeit-Systeme

Kim Hartman *

Anbieter zum Thema

Dank Virtualisierungstechnik können RTOS und General-Purpose-OS heute parallel auf einer Multicore-Plattform laufen. Welche Virtualisierungsansätze eignen sich für echtzeitorientierte Systeme?

Flexibel: TenAsys’ eVM for Windows ermöglicht es, Echtzeit- und Windows-Applikationen parallel auf derselben Plattform ohne Modifikationen laufen zu lassen.(TenAsys)
Flexibel: TenAsys’ eVM for Windows ermöglicht es, Echtzeit- und Windows-Applikationen parallel auf derselben Plattform ohne Modifikationen laufen zu lassen.
(TenAsys)

Virtualisierungstechnologien, die in Form von Hypervisors oder Virtual Machine Managern jedem Gastbetriebssystem eine eigene Systemumgebung vorspiegeln, erlauben es, mehrere Betriebssysteme auf einer Plattform betreiben zu können. Dies kann durch unterschiedliche Methoden erreicht werden und es gibt leider nicht den einen Ansatz, der allen Anwendungsfällen gerecht wird.

Zum Beispiel virtualisieren einige Hypervisors die komplette, vom Gastbetriebssystem erwartete Hardware-Umgebung inkl. I/O. Dieser Ansatz ist bekannt als Server-Virtualisierung. Hier steht eher die Ressourcenausnutzung im Vordergrund, als dass ein I/O-Device in einem fixen Zeitintervall bedient werden muss. Für echtzeitorientierte Embedded- Applikationen ist dies oft nicht ausreichend.

Ein weiterer Unterschied zwischen der Server- und der Embedded-Virtualisierung besteht darin, dass es erforderlich ist, unterschiedliche Betriebssystemstypen auf einem System kombinieren zu können. Meistens findet man ein Echtzeitbetriebssystem (RTOS) auf der einen Plattform, welches eine zeitkritische Controller-Applikation ausführt und ein Standardbetriebssystem (GPOS) auf der anderen, auf welchem das Mensch-Maschine-Interface (HMI) nebst umfangreicherer Datenaufbereitungs-Software läuft.

Bild 1: Speicherabbild, wenn ein GPOS und ein RTOS vom Virtual Machine Manager (VMM) auf derselben Plattform geladen sind.(TenAsys)
Bild 1: Speicherabbild, wenn ein GPOS und ein RTOS vom Virtual Machine Manager (VMM) auf derselben Plattform geladen sind.
(TenAsys)

GPOS-Scheduler vergeben den Tasks Prioritäten meistens nach dem „First-Come/First Serve-Prinzip“. RTOS-Scheduler sind ereignisgesteuert und reagieren auf neue Interrupts sofort. Somit führt jeder Interrupt eines Sensors oder anderen I/O-Devices zur direkten Signalisierung an das Betriebssystem, um die Interrupt Service Routine vorhersehbar mit einer deterministischen Antwortzeit auszuführen. Die Embedded-Virtualisierung mit GPOS und RTOS auf einem Multi-Core-System eliminiert die Zusatzkosten für separate Echtzeit-Controller. Sie erlaubt aber auch Controller-Applikation mit zeitgemäßem Benutzerinterface, ohne dafür auf ein weiteres System zurückgreifen zu müssen.

Software-Umgebungen, die Embedded-Virtualisierung unterstützen, sind nicht neu; die Hardware-Features neuerer Mikroprozessoren in Bezug auf Virtualisierung schon. Diese Funktionen ermöglichen das steuerbare Relokieren von Speicher- und I/O-Adressen zur Laufzeit, was ansonsten nur durch den Einsatz von Para-Virtualisierungsmethoden möglich war.

Para-Virtualisierung bezieht sich auf die Verwendung von Zusatz-Software, die Speicher- und I/O-Adressen, aber auch Interrupt-Vektoren der virtualisierten Betriebssysteme und Applikationen anpassen, damit diese auf dem gleichen System lauffähig sind.

Effektiv heißt das, dass die Umgebung des einen Betriebssystems dem anderen nicht in die Quere kommen darf. Para-Virtualisierung bedeutet typischerweise, dass es Code-Anpassungen geben muss, um die zwei Systeme auf einer Plattform kombinieren zu können und dass dies üblicherweise sehr umgebungsspezifisch zu implementieren ist (Betriebssysteme, Plattformen, Applikationen).

Die Architektur einer Echtzeit-Virtualisierung

Damit zwei Betriebssysteme auf der gleichen Plattform laufen können, wird bei einem oder beiden Betriebssystemen nebst ihrer Applikationen der verwendete Speicherbereich relokiert. Das Laden des Gast-Betriebssystems und der assoziierten Applikationen im Speicher führt der Virtual Machine Manager beim Systemstart aus. Von diesem Moment an, müssen alle generierten Adressen des RTOS und der Applikationen auf den Speicher-Offset angepasst werden. Das erreicht man beim Einsatz von Para-Virtualisierung dadurch, dass man die Speichertabellen und andere Speichervektoren entsprechend editiert.

Dieser Prozess ist aber schwierig, da viele Teile des Betriebssystems betroffen sind und ein erheblicher Aufwand zu erbringen ist, um das Systemverhalten danach auch verifizieren zu können. Daher werden nur wenige Betriebssysteme durch diese Technik unterstützt. Ein Beispiel ist das TenAsys INtime for Windows RTOS, welches Windows-Plattformen um die fehlende Echtzeitfähigkeit erweitert.

Seitdem es Hardware-Unterstützung für Virtualisierung in den neueren Embedded-Prozessoren gibt, ist die Implementierung der Speicherrelokation einfacher geworden. Betrachten wir die Virtualisierungsfunktionen in Prozessoren wie z.B. Intels VT-x Architekturerweiterung. Diese Erweiterung ermöglicht es, im Prozessor Hardwareadressumsetzer zu aktivieren, die sicherstellen, dass jede vom Gastbetriebssystem generierte Adresse automatisch nach zuvor konfiguriertem Speicher-Offset umgerechnet wird. Somit müssen im Gastbetriebssystem keine nachträglichen Anpassungen mehr implementiert werden.

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Ebenso verhält es sich mit dem Hardware-Virtualisierungs-Feature Intel VT-d, das zunehmend in den Embedded-Plattformen verfügbar ist. Somit werden die generierten Speicherzugriffe von intelligenten I/O-Devices per Offset angepasst, die am Prozessor vorbei operieren können. Einige Plattformen unterstützen zwar VT-x im eingesetzten Prozessor, aber nicht zwingend VT-d im Chipsatz! In diesen Fällen müssen Para-Virtualisierungsansätze weiterhin zum Einsatz kommen.

Die optimale Virtualisierungslösung erlaubt es jedoch, Gastbetriebssysteme ohne Modifikationen in der virtuellen Umgebung laufen zu lassen. Dieser Philosophie folgt zum Beispiel der Embedded-Virtualisierungs-Manager eVM for Windows (Video).

* * Kim Hartman ist VP Sales & Marketing und Geschäftsführer der Europa-Aktivitäten von TenAsys

Artikelfiles und Artikellinks

(ID:23995910)