Wie gut ist die Echtzeit von Linux in Abhängigkeit von der Hardware und der Applikationslast? Open Source Automation Development Lab (OSADL) geht jetzt diesen und ähnlichen Fragen mit einem eigenen Testzentrum nach.
Linux ist nicht nur ein normales und allgemein verwendbares Betriebssystem, sondern es bietet auch sehr spezielle Eigenschaften wie zum Beispiel Echtzeit-Determinismus. Dadurch kann Linux für eine Vielzahl von Anwendungen - von qualitativ hochwertigen Live-Mitschnitten von Audio- und Video-Daten und sogar in der Automatisierungsindustrie - zum Einsatz kommen. Darüber hinaus hat Echtzeit-Linux geholfen, eine große Zahl schwer zu findender Kernel-Probleme aufzudecken, zu lokalisieren und zu beheben, und es hat dazu beigetragen, die Leistungsfähigkeit von Multiprozessor-Systemen zu erhöhen.
Die Echtzeitfähigkeit von Linux wurde allerdings nicht in einem einzigen Schritt hergestellt, sondern es war eine relativ große Anzahl individueller Komponenten erforderlich, um den Scheduler unabhängig von der Anzahl wartender Prozesse rechtzeitig reagieren zu lassen, Priority-Inversion zu verhindern, den Kernel und IRQ-Handler preemptibel zu machen, Warteschleifen unterbrechbar zu machen und hochauflösende Timer bereitzustellen, um nur ein paar wenige zu nennen. Mit diesen und all den anderen hier nicht erwähnten Echtzeit-Komponenten kann Linux als reguläres Echtzeitbetriebssystem (RTOS) angesehen werden, das sich einem Vergleich mit anderen RTOSen stellen kann und dabei eine oftmals breitere Hardware-Unterstützung bietet und darüber hinaus Eigenschaften wie 64 Bit, Multiprozessor-Unterstützung und Virtualisierung aufweist.
Eine bestimmte Softwareeigenschaft verfügbar machen, ist die eine Sache, aber Pflege, Unterstützung, Dienstleistung und Garantie dafür zu bieten, ist etwas anderes. Das Open-Source-Entwicklungsmodell von Linux ist für ersteres sehr gut, für letzteres aber, bedingt durch die Natur des Entwicklungsmodells, weniger gut geeignet. Weil nun die Automatisierungs- und andere Industrien auf getestete und garantierte Leistungsdaten angewiesen sind und Echtzeit-Linux von Anfang an eines der wichtigsten Projekte des Open Source Automation Development Lab (OSADL) war, ist es nur normal, dass OSADL entschieden hat, ein geeignetes Echtzeit-Testzentrum in Betrieb zu nehmen. Sein Zweck ist es, realistische Leistungsdaten einer großen Vielzahl an Linux basierten Echtzeitsystemen verfügbar zu machen, wobei die Systeme unter simulierten Produktionsbedingungen belastet werden. Seit November 2010 enthält das Echtzeit-Testzentrum x86-, PowerPC-, ARM-, und MIPS-Prozessoren, einige von ihnen als 32- und 64-Bit-Variante und die x86-Systeme als Uniprozessor- und Multiprozessorsystem.
Die kombinierte und individuelle Latenz des Wake-up-Vorgangs und von Timern werden kontinuierlich aufgezeichnet. Außerdem wird alle sechs Stunden für jeweils ebenfalls sechs Stunden das Echtzeit-Testprogramm »cyclictest« mit einer Gesamtzahl von 100 Mio. Einzelmessungen gestartet und damit Latenz-Histogramme gewonnen. Am Anfang des Programmlaufs bestehen für zwei Stunden Idle-Bedingungen; während der folgenden vier Stunden läuft ein definierter Speicher-, I/O-, Netzwerk- und Dateisystem-Lastgenerator.
Das Testzentrum steht über eine direkte Netzwerkverbindung mit dem OSADL-Web-Server in Verbindung, worüber die Testergebnisse unmittelbar online verfügbar gemacht werden. Die kontinuierlich aufgezeichneten Daten werden alle fünf Minuten und die Latenz-Histogramme zweimal täglich aktualisiert.
Zusätzlich zu den Latenzdaten sind Profile sämtlicher Systeme online verfügbar. Diese enthalten Hersteller- und Produktdaten des Mainboards, des Prozessors, und wenn vorhanden, der PCI-Controller. Darüber hinaus werden Kernel-Boot-Argumente und - was noch wichtiger ist - die komplette Kernel-Konfiguration angezeigt.
Der Zweck, alle diese Informationen verfügbar zu machen, besteht in der Unterstützung von Entwicklern, die das Verhalten einzelner Systeme in ihrer Umgebung reproduzieren wollen. Die Profile werden jeweils kurzfristig aktualisiert, wenn eine neue Kernel-Version eingespielt oder eine Konfiguration geändert wurde.
Das OSADL-Echtzeit-Testzentrum ist jetzt ein wichtiger Bestandteil des OSADL »Latest Stable« Echtzeit-Linux-Projekts geworden. Dieses Projekt benennt eine bestimmte Version des Echtzeit-Linux-Kernels als für Produktionszwecke geeignet. Eine solche Kennzeichnung findet nun erst dann statt, wenn alle Systeme des Testzentrums stabil und sicher laufen und in jedem Fall die erwartete Echtzeitfähigkeit in Bezug auf Determinismus und maximaler Latenz erreicht wird.
Zwei der Systeme sind mit einem zusätzlichen Ethernet-Adapter ausgerüstet und über ein überkreuztes Kabel miteinander verbunden. Auf diesen Systemen läuft ein UDP-Netzwerk-Server und -Client, die auf diese Weise eine generische Echtzeit-Ethernet-Verbindung realisieren. Die im Userspace laufenden Server- und Client-Applikationen sowie die betroffenen IRQ-Handler wurden auf die gleiche CPU geklemmt und auf Echtzeit-Priorität eingestellt. Die Kenndaten dieser Verbindung werden zweimal täglich während zweier vierstündiger Testphasen kontinuierlich bestimmt, und die resultierenden Round-Trip-Plots ebenfalls online verfügbar gemacht. Zwei andere Systeme sind mit industriellen Kommunikations-Controllern ausgerüstet, die mit einer Vielzahl unterschiedlicher Echtzeit-Ethernet-Protokolle als
Master und Slave im Betrieb sein können (CIFX 50RE und CIFX 50RE+ML von Hilscher). Diese Karten werden zyklisch mit verschiedener Echtzeit-Ethernet-Firmware beschickt, und es werden wiederum Round-Trip-Zeiten und andere Leistungsdaten ermittelt.
In naher Zukunft sollen weitere Computersysteme mit mehr und anderen Prozessoren und Controllern sowie andere industrielle Subsysteme hinzukommen und kontinuierlich Testes fahren.