Koexistenz von Windows und Echtzeit Multicore sorgt für Echtzeit

Drei Technologien in einer Software-Plattform die kombiniert werden können.
Drei Technologien in einer Software-Plattform, die kombiniert werden können.

TenAsys bringt in seiner Software-Plattform drei Technologien zusammen: Windows, Echtzeit und Virtualisierung. Je nach Anforderung können diese Bausteine auf unterschiedliche Weise kombiniert werden.

Flankiert wird dieser Lösungsansatz von Entwicklungs-Tools, die es erlauben, Anwendungen mit Hilfe von Microsoft Visual Studio sowohl für die Windows- als auch für die INtime-RTOS-Laufzeitumgebung zu entwickeln und zu testen. So können Windows-Software-Entwickler ihre vertraute Entwicklungsumgebung auch für das Programmieren von Echtzeit-Applikationen einsetzen. Für INtime stehen unter anderem das Thread-Analyse-Tool INscope und der RTOS Object Browser INtex sowie weitere Software-Werkzeuge wie das Platform Evaluation Tool und der Platform Jitter Test zur Verfügung.

Die TenAsys Software Platform vereint die technischen Möglichkeiten, die sich aus der Kombination dreier Technologien ergeben: Windows als Universal-Betriebssystem, INtime als RTOS (Realtime Operating System) und eVM als Embedded Hypervisor. Dabei stellt der INtime-Kern das zuverlässige und robuste Fundament für Echtzeitanwendungen dar. Damit ist sichergestellt, dass INtime-Applikationen über einen langen Zeitraum eingesetzt werden können, da der Echtzeit-Kern kompatibel erhalten wird, selbst wenn sich die umgebende Hard- oder Software wie Windows regelmäßig ändert und die Integration auf die technischen Anforderungen hin angepasst werden muss.

Das ist speziell im industriellen Umfeld von enormem Vorteil, da Industriekunden einen langfristigen Software-Einsatz planen müssen und Bestandssysteme lange Laufzeiten aufweisen. Darüber hinaus sollte es dem Anwender freistehen, seine Echtzeit-Systeme wahlweise mit Windows-Bedienelementen zu steuern oder die Industrie-Anwendungen aus Kostengründen entweder „Headless Remote“ oder mit Hilfe von alternativen HMI-Tools (Android, Linux, etc.) zu steuern.

Ein weiterer Vorteil der TenAsys Software Platform liegt in den Kosten, da eine einfache und unkomplizierte Anpassung der Echtzeitapplikationen an neue PC-Zielplattformen leicht möglich ist, was natürlich auch mit der langjährigen Kompatibilität der Intel-x86-Architektur zu tun hat. Dies bringt neben den monetären Vorzügen einen interessanten Nebenaspekt mit sich: Man kann die Windows- und Echtzeit-Anwendungen für dieselbe Hardware-Plattform mit nur einem Entwicklerwerkzeug programmieren und debuggen – nämlich mit Visual Studio von Microsoft.

Die TenAsys Software Platform mit ihren derzeitigen drei Produkten „INtime Distributed RTOS“, „INtime for Windows“ und „eVM for Windows“ ist eine robuste und erprobte Laufzeitumgebung für Embedded-Echtzeit-Applikationen, die sich entweder mit oder ohne Windows betreiben lassen. Damit bleibt es den Anwendern freigestellt, ob sie die gleichen Echtzeit-Applikationen mit Windows oder alleinstehend betreiben wollen. Mit eVM für Windows ist aber auch der Einsatz eines alternativen Echtzeit-Betriebssystems parallel zu Windows nach dem Vorbild von INtime for Windows möglich.

Zwei Echtzeit-Betriebssysteme auf einer Hardware möglich

TenAsys beschäftigt sich seit Gründung mit der expliziten Partitionierung von PC-Systemen, um diese für „Mixed Workload“-Szenarien verfügbar zu machen. Damit erhalten INtime-RTOS-In¬stanzen eigene CPU- und Speicherressourcen und können direkt I/Os treiben. Die Eigenentwicklung HaRTH (Hard Realtime Hypervisor) bringt zusätzliche Möglichkeiten auf Systemen ins Spiel, welche die Virtualisierungsbefehle der Intel-Prozessoren unterstützen. Auf diese Weise können Echtzeit-Betriebssysteme, die nicht für den Simultanbetrieb mit einem anderen Betriebssystem vorgesehen sind, trotzdem auf einer gemeinsamen Plattform betrieben werden – und das vollkommen getrennt voneinander. Ein wesentlicher Aspekt ist dabei, dass die Echtzeitfähigkeit des Gastbetriebssystems erhalten bleibt.

Die TenAsys Software Platform besteht aus den drei Komponenten INtime, eVM und Windows. Jedes dieser drei Produkte funktioniert grundsätzlich eigenständig auf einem x86-PC, sie können aber auch kombiniert eingesetzt werden.

Das Kernstück der TenAsys Software Platform ist das INtime-RTOS-Laufzeitsystem. Dabei handelt es sich um das TenAsys-eigene Echtzeit-Betriebssystem, das sich auf nahezu jedem Standard-PC installieren lässt. Damit kann man auf demselben Rechner mehrere Echtzeit-Anwendungen auf separaten CPU-Kernen ablaufen lassen – inklusive notwendiger Netzwerkverbindungen mittels TCP/IP (Bild 1).

INtime Distributed RTOS kommt vor allem für dedizierte Steuerungsapplikationen zum Einsatz, die auf ein deterministisches Laufzeitverhalten angewiesen sind. Dabei handelt es sich meist um Echtzeit-Applikationen, die keinerlei grafische Bedieneroberflächen benötigen, sich somit „Headless“ per integriertem Webserver konfigurieren lassen. Selbstverständlich unterstützt INtime Distributed RTOS auch mehrere Workloads auf Multicore-Systemen. Hierfür lassen sich unterschiedliche Aufgaben an einzelne Prozessorkerne samt den hierfür benötigten Hardware-Ressourcen wie Speicher und I/O-Schnittstellen verteilen. Hierbei weist INtime eine Besonderheit auf: Der Zugriff auf I/O-Ressourcen erfolgt im User Mode, was vor allem die Treiberprogrammierung erheblich erleichtert und ein direktes Debugging zulässt.

Kasten: 4 GB RAM pro Prozess
Mit der Einführung der Software-Version 6.2 des INtime-Echtzeit-Betriebssystems hat TenAsys die INtime-Architektur um eine weitere Funktion erweitert: Auf Basis der Memory-Allocation-Technik PAE (Physical Address Extension) der Intel-Prozessoren lässt sich der 32-bit-Adressraum von INtime durch das Einblenden von zusätzlichem physischem Speicher erheblich erweitern. So kann mit diesem Kunstgriff der adressierbare Hauptspeicher eines INtime-Prozesses je nach verfügbarem Gesamtspeicher auf bis zu 4 GB vergrößert werden, ohne dass Programme verändert werden müssen. Damit lassen sich beispielsweise Datalogging-Applikationen realisieren, die in Echtzeit große Datenmengen innerhalb kürzester Zeit erfassen und zwischenspeichern. Allerdings kommen die meisten Echtzeit-Anwendungen ohne diese Gigabyte-großen Datenmengen aus, weswegen die Nutzung der PAE-Unterstützung von INtime zwar sehr nützlich sein kann, aber nicht die Norm für Standard-Echtzeitapplikationen ist. Allerdings werden immer mehr CPU-Kerne verfügbar, die man mit Hilfe dieser Technik problemlos mit Hauptspeicher versorgen kann.