Virtualisierung

Sicherheit auf höchstem Level für Multicore-Prozessoren

| Autor / Redakteur: Jacques Brygier * / Franz Graser

Die europäische Virtualisierungsplattform PikeOS verschafft sicherheitskritischen Anwendungen die volle Leistung von Multicore-Prozessoren. Der TÜV SÜD hat die Lösung geprüft und für den Einsatz auf Multicore-CPUs in der Bahntechnik für das höchste Sicherheitslevel SIL4 zugelassen.
Die europäische Virtualisierungsplattform PikeOS verschafft sicherheitskritischen Anwendungen die volle Leistung von Multicore-Prozessoren. Der TÜV SÜD hat die Lösung geprüft und für den Einsatz auf Multicore-CPUs in der Bahntechnik für das höchste Sicherheitslevel SIL4 zugelassen. (Bild: SYSGO)

Das Betriebssystem PikeOS erschließt Multicore-CPUs für sicherheitskritische Anwendungen - zunächst in der Bahntechnik. Avionik, Automotive, industrielle Automation und Medizintechnik werden folgen.

Bei gleichem Formfaktor, Wärmeabgabe und Stromverbrauch liefern Multicore-Prozessoren eine höhere Rechenleistung als Single-Core Prozessoren. Das macht sie besonders attraktiv für eingebettete Systeme, da in vielen Industrien an einer Konsolidierung der ausufernden Zahl von getrennten Funktionen gearbeitet wird.

Insbesondere die Idee der Virtualisierung ist für Software-Designer interessant. Sie erlaubt die Migration von bestehenden Anwendungen auf eigener Hardware und ihre Integration auf eine zentrale Plattform. Eine solche zentrale Plattform würde sehr stark von Multicore-Prozessoren profitieren. Die Zertifizierungsbehörden hatten bisher jedoch Bedenken, ob die verschiedenen Cores sicher getrennt werden könnten, so dass sicherheitskritischen Anwendungen bisher auf einen Core beschränkt blieben.

Probleme der Multicore- Zertifizierung

In einer Singlecore-Umgebung nutzen Softwaremodule die vorhandenen Hardware-Ressourcen nacheinander, was eine Safety-Zertifizierung in gewissem Maße zum Abhaken von Kontrollkästchen macht.

In einer Multicore-Umgebung werden Ressourcen wie zum Beispiel Speicherbusse oder der L2-Cache des Prozessors jedoch gemeinsam genutzt. Daher besteht die Möglichkeit, dass Software auf dem einen Kern der Software auf einem anderen Kern in die Quere kommt, weil sie eventuell eine Ressource verwendet, die eine andere Software auf einem anderen Kern benötigt. In einer Singlecore-Umgebung würde dies nicht zu einer Verzögerung führen.

Auf einem Multicore-Chip jedoch kann die Software dadurch nicht nur langsamer werden, sondern auch weniger deterministisch. In einer sicherheitskritischen Anwendung könnte es so zur Überschreitung von Deadlines kommen, das heißt: zu Störungen und - in kritischen Fällen - zum Verlust von Menschenleben.

Darüber hinaus sind Multicore-CPUs für die Optimierung der durchschnittlichen Ausführungszeit entworfen, oft zu Lasten der Worst Case Execution Time (WCET). So wird das Delta zwischen Grenzfall und Mittelwert sehr viel größer, was Software-Designer dazu veranlasst, ihr Budget mit Maßnahmen zur Verbesserung der WCET zu belasten.

Zur Bewältigung dieser Schwierigkeiten tragen solche Echtzeitbetriebssysteme (RTOS) bei, die dem Designer genug Flexibilität zur Konfiguration des Systems geben und die Architektur andererseits soweit einschränken, dass eine Zertifizierung möglich ist. Die Software-Ausführung muss durch einen Scheduling-Mechanismus beschränkt werden, der das Software-Budget entlastet und Störmuster minimiert.

Ergänzendes zum Thema
 
Zertifizierte Sicherheit

Das Echtzeitbetriebssystem als Lösungsansatz

Das Betriebssystem PikeOS folgt dem SSV-Konzept (SSV: Safe and Secure Virtualization, also sichere und vertrauenswürdige Virtualisierung) und stellt einen schnellen, modularen Kernel für Systeme mit Anforderungen nach funktionaler Sicherheit und Security bereit. Herzstück der Architektur des RTOS sind Mikrokernel und Hypervisor. Sie unterstützen sogenannte „Personalities“ als Gast-Betriebssysteme, die nach unterschiedlichen Kritikalitätsleveln zertifiziert werden können.

Diese Gastsysteme sind in virtuellen Maschinen (VM) eingeschlossen und haben ihren eigenen Speicherbereiche, Ressourcen und Applikationssets. Programme, die auf der einen VM gehostet werden, laufen vollkommen unabhängig von denen auf anderen VMs. PikeOS bietet die Möglichkeit sowohl zur räumlichen als auch zur zeitlichen Separierung, so dass Designer nicht nur kontrollieren können, wo der Code ist, sondern auch, wann er läuft.

PikeOS bildet zusammen mit der Systemsoftware einen kleinen, minimalen Layer aus vertrauenswürdigem Code und ist deshalb so geeignet für die Zertifizierung nach Standards der funktionalen Sicherheit und Security.

Betriebssystem-Modelle für die Multicore-Verwendung

Schaubild 1: Im AMP-Modus kontrollieren mehrere getrennte Betriebssysteme (UP OS) die einzelnen Kerne. Im SMP-Modus hat ein Betriebssystem die Kontrolle über alle Kerne.
Schaubild 1: Im AMP-Modus kontrollieren mehrere getrennte Betriebssysteme (UP OS) die einzelnen Kerne. Im SMP-Modus hat ein Betriebssystem die Kontrolle über alle Kerne. (Grafik: SYSGO)

Wir werden zwei Funktionsweisen von Multicore-CPUs vorstellen, nämlich das asymmetrische und das symmetrische Multi-Processing, und die Vor- und Nachteile der einzelnen Modelle diskutieren.

Asymmetrisches Multi-Processing (AMP):

Auf jedem Core läuft eine Kopie des Betriebssystems und jedes Betriebssystem läuft so, als befände es sich auf einer Ein-Kern-CPU. Die Betriebssysteme kommunizieren in lose verknüpfter Art über Shared-Memory-Technologie.

Die Vorteile dieses Ansatzes sind:

  • Einfaches Design der Systemsoftware;
  • Parallele Ausführung von verschiedenen Uni-Prozessor Betriebssystemen.

Allerdings gibt es auch Nachteile:

  • Alle Betriebssysteme müssen vertrauenswürdig sein;
  • Externe Synchronisation ist erforderlich für die gemeinsamen Ressourcen;
  • Keine Unterstützung für Multi-Processing innerhalb einzelner Applikationen;
  • Schwierig zu bewältigen bei mehr als zwei Kernen;
  • Verteilte Konfiguration statt einer einzigen Konfigurationsdatei.

Symmetrisches Multi-Processing (SMP)

Alle Cores sind unter der Kontrolle eines einzigen SMP-Betriebssystems. Die Cores sind durch Ressourcenbeschränkungen und Synchronisation eng verbunden.

Vorteile von SMP:

  • Nur ein vertrauenswürdiger Systemsoftware-Layer;
  • Bessere Kontrolle der CPU-Aktivitäten;
  • Unterstützung von Multi-Processing auf Applikationsebene;
  • Einfache Synchronisation zwischen Partitionen;
  • Homogene Konfiguration.

Nachteile:

  • Höhere Komplexität eines SMP-Betriebssystems;
  • Performance-Verluste im Vergleich zu AMP bei lose verknüpften Applikationen.

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben
Sehr gute Übersicht von Multicore Anwendung und Thema Safety, herzlichen Dank dafür Bietet viel...  lesen
posted am 30.01.2014 um 13:24 von ReesPeter


Mitdiskutieren
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 42464438 / Embedded Betriebssysteme)