Abbildung 2 zeigt das Verhalten bei mehreren, fine grained Locks. Im Wesentlichen ist der Ablauf der Gleiche. Es werden vom Kernel jedoch unterschiedliche Sperren angefordert. Daher muss in diesem Szenario KB nicht auf die Freigabe eines zentralen Locks warten. Die Situation ist daher weitgehend symmetrisch. Der Effekt würde sich durch die Hinzunahme weiterer Cores signifikant verstärken, d.h. ein System mit einem zentralen Lock skaliert nur sehr schlecht.
Es sei allerdings ausdrücklich darauf hingewiesen, dass es im Falle von explizit zwischen Partitionen geteilten Ressourcen auch beim Einsatz von von fine grained Locking dazu kommen kann, dass von mehreren Cores die gleiche Sperre angefordert wird. Dies kann jedoch vom Systemintegrator im Detail über die Konfiguration abgestimmt werden.
Eine ähnliche Entwicklung hat in der Vergangenheit das Betriebssystem Linux erfahren, siehe dazu die Historie zu Entfernung des Big Kernel Locks2. Dabei ist jedoch zu beachten, dass es sich bei PikeOS um einen Micro-Kernel handelt, dessen Codebasis um ein Vielfaches kleiner ist. Zum anderen wurde in PikeOS das Konzept der Partitionierung auch direkt im Kernel-Design berücksichtigt, d.h. Teile des Kernel-Speichers sind exklusiv bestimmten Partitionen zugeordnet und die Ressourcen sind strikt nach Partitionen und Tasks im Speicher abgelegt. Dies erleichterte die Festlegung der lokalen Sperren.
Neben der Verringerung der WCET ergibt sich durch die Entfernung des zentralen Spinlocks auch eine Steigerung der Performance, da nun keine Prozessorzeit mehr für aktives Warten benötigt wird und somit direkt der Applikation zur Verfügung steht.
Beschleunigte Zertifizierung durch Tool Qualifikation
Eine weitere bedeutende Neuerung in PikeOS 5.0 betrifft das Build-System und den Aufwand bei der Zertifizierung eines komplexen Systems. Dank des Hypervisor-Konzeptes können auf einer Maschine mehrere Applikationen ausgeführt werden. Dabei werden die Applikationen strikt voneinander isoliert durch Ressource- und Time-Partition-Mechanismen. Dedizierte Kommunikationskanäle sind jedoch möglich. Alle Applikationen liegen getrennt voneinander als komplett eigenständige Dateien vor. Dabei kann es sich bei einer Applikation sowohl um eine einzelne, von PikeOS nativ ausführbare Binärdatei handeln als auch ein komplexes Betriebssystem mit eigenständigem Filesystem. Beim Start des Betriebssystem wird über Konfigurationsdateien gesteuert, in welcher Partition eine Applikation ausgeführt wird, welche Ressourcen zu Verfügung stehen und auf welche Dateien und Dateisystem sie Zugriff hat.
Dabei stehen dem Systemintegrator zwei Konfigurationsdateien zu Verfügung:
1. Die Virtual Machine Initialization Table (VMIT): Konfiguration aller Partitionen, Zugriffsrechte auf Ressourcen und Kommunikationskanäle
2. ROM File System Konfiguration (RBX): Konfiguration aller (ausführbaren) Dateien, die in das ROM File System aufgenommen werden sollen
Beide Konfigurationsdateien liegen im XML-Format vor. Diese Dateien werden durch den VMIT Compiler und ROM Image Builder in ein Binärformat übersetzt, welches zur Laufzeit von einer Komponente des PikeOS Betriebssystem eingelesen und verarbeitet wird. Die Binärform wurde gewählt, weil diese zunächst ressourcensparender ist und zudem keine aufwändige Zertifizierung eines XML-Parsers benötigt. Im Rahmen einer Zertifizierung muss jedoch die Korrektheit der Binärdateien nachgewiesen werden. Dies geschah bislang in einem aufwendigen Verfahren unter der Zuhilfenahme weiterer Tools.
Jede Änderung an einer XML-Datei erzwingt zudem eine Wiederholung des Verfahrens. Mit dem Release von PikeOS 5.0 sind jedoch sowohl VMIT Compiler als auch ROM Image Builder als voll qualifizierte Tools verfügbar. Der Nachweis der Korrektheit kann daher direkt auf der Grundlage der originären XML Dateien erfolgen. Damit wird der Workflow bei der Zertifizierung erheblich beschleunigt.
Weitere Verbesserungen
Mit der Freigabe von PikeOS 5.0 kommen zudem die folgenden Neuerungen:
- Verringerung der Zugriffszeit auf Kernel-Treiber
- Alle Treiberklassen sind auch im Kernel-Space verfügbar
- Unterstützung für Dateisysteme im Kernel-Space
- Verfügbarkeit eines DAL-B Certification Kits für PowerPC
- Partition Callback Hooks bieten die Möglichkeit, Error Counters zu implementieren und somit Security Auditing zu realisieren
- Das APEX API ist konform zu dem neuen Stand des Standards ARINC653, Part1 Supplement 5 und Part2 Supplement 4, (Dezember 2019)
- Neues BSP: i.MX 8 BSP
- Unterstützung des ARMv8 Generic Interrupt Controller (GIC) v3
Die SYSGO eigene Linux Distribution genannt „ELinOS“ wird von vielen Kunden als Linux Partition direkt auf PikeOS verwendet. Die folgenden Änderungen stehen in ELinOS Version 7 für PikeOS zur Verfügung:
- Toolchain gcc v8.3
- binutils v2.31
- Linux Kernel 4.19 mit Real-Time Extensions
- Standard library glibc v2.2
- Die Host tools unterstützen 64bit nativ auf Windows und Linux
Die für PikeOS und ELinOS notwendige Entwicklungsumgebung „CODEO“ in der Version 7 bietet nun einige Änderungen, die es dem Anwender leichter machen, Projektkonfigurationen durchzuführen:
- Vereinfachte Erstellung des ROM-File Systems.
- Die Konfiguration der Validation kann jetzt per Projekt eingestellt werden
- Die ROM Struktur des PikeOS Boot Files kann angezeigt werden.
- Die Struktur einer binären Virtual Machine Initialization Table kann in der XML Darstellung angezeigt werden.
- GIT Team Support ist standardmäßig inkludiert
- Der PikeOS Monitor zeigt Informationen über Shared-Memories an.
- Shared-Memories werden auf einem PikeOS Target automatisch erkannt.
- Neuer Drag & Drop View
Zusammenfassung
Mit der Version 5.0 wurde die Leistung und Skalierbarkeit von PikeOS 5.0 signifikant erhöht. So wurde die Zugriffszeit auf Kernel-Treiber beschleunigt und das System durch die Einführung von fine grained Locks wesentlich skalierbarer hinsichtlich Multi-Core Architekturen. Weiterhin sind jetzt alle Treiberklassen sowie Dateisysteme im Kernel verfügbar.
In Hinsicht auf die Zertifizierbarkeit ist PikeOS 5.0 konform mit dem CAST-32A Positionspapier und damit bereit für den Einsatz von Mehrkernprozessoren in der Luftfahrt. Durch die Qualifikation der Konfigurationstools wird die Zulassung komplexer Systeme vereinfacht und beschleunigt. Für die PowerPC Architektur ist ein erstes Certification Kit für DAL-B verfügbar. Weitere Architekturen sowie weitere Certification Kits gemäß IEC 61508, ISO 26262 und EN 50128 sollen in Kürze folgen.