Zertifizierung von Multi-Core-Systemen

Sicher auf mehreren Kernen

1. Juli 2016, 13:12 Uhr | Von Rudolf Fuchsen und Mehmet Özer
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 2

Software-Interferenzkanäle

Interferenzen zwischen Software-Komponenten, die gleichzeitig auf verschiedenen Kernen laufen, hängen in erster Linie von der Software-Architektur und der Art und Weise ab, wie die Software die Kerne verwendet. Auf Betriebssystemebene werden zwei Konzepte für Mehrkern- und Mehrprozessor-Systeme unterschieden: das asymmetrische Multiprozessorsystem (AMP) und das symmetrische Multiprozessorsystem (SMP).

Beim AMP-Ansatz wird eine Mehrkernprozessor-Plattform sehr ähnlich wie bei einem Multiprozessorsystem eingesetzt. Jeder Kern führt seine eigene System-Software aus. Die Kerne sind über verschiedene Kommunikationskanäle gekoppelt, die auf Inter-Processor Interrupts (IPIs), gemeinsam genutzten Speicherbereichen (Shared Memory) oder externen Geräten basieren können.

Interferenzen auf einer AMP-Plattform werden hauptsächlich durch gemeinsame Caches, Speicher und E/A-Busse sowie den gleichzeitigen Zugriff auf gemeinsame Geräte verursacht. Interferenzen am Speicherbus sind nur schwer vermeidbar, während der Zugriff auf E/A-Geräte auf einen Kern beschränkt werden kann. Kohärenzprobleme sind auf unterschiedliche Kommunikationspuffer begrenzt. Die durch die System-Software hervorgerufenen Interferenzen beschränken sich auf gemeinsame Geräte-Handles.

Der SMP-Ansatz nutzt eine Instanz der System-Software, um alle Kerne und Plattformressourcen zu steuern. Das Betriebssystem stellt üblicherweise Dienste zur Inter- und Intrapartitionskommunikation bereit, die eine transparente Kommunikation zwischen den Kernen verwalten. Die Gerätetreiber sind dafür verantwortlich, den gleichzeitigen Zugriff auf Plattformressourcen zu verwalten. Im Vergleich zu einer AMP-Konfiguration fügt der SMP-Ansatz eine bedeutende Quelle für mögliche Interferenzen hinzu: die gemeinsame System-Software-Schicht. Ein sorgfältiges Design der kritischen Abschnitte kann jedoch die Auswirkungen begrenzen.

passend zum Thema

Zeit- und Ressourcen-Partitionierung für einen Separations-Kernel
Bild 5. Zeit- und Ressourcen-Partitionierung für einen Separations-Kernel.
© Sysgo

Symmetrisches Multiprocessing für hochkritische Sicherheitssysteme

Der AMP-Ansatz ist für spezifische Lösungen interessant, vor allem bei der Anwendung auf Dual-Core-Plattformen, bei denen ein Kern vollständig der E/A-Verarbeitung dient und der andere Kern die Anwendungs-Software ausführt. Die durch den E/A-Prozessor hervorgerufene Interferenz ist überschaubar, da dieser vollständig unter der Kontrolle der (vertrauenswürdigen) Software auf Plattformebene läuft. Dieser Ansatz scheint ein sinnvoller erster Schritt in Richtung Sicherheitssysteme auf Mehrkernbasis zu sein. Es wird jedoch keine wesentliche zusätzliche Verarbeitungsbandbreite für die Anwendungen erzielt.

Ein allgemeinerer Ansatz ist die Verwendung eines SMP-Betriebssystems, da es besser mit zunehmender Anzahl der Prozessorkerne skaliert und erhöhte Flexibilität bietet. Das folgende Beispiel erläutert die Verwendung einer Hypervisor-Technologie auf Basis eines Separations-Kernel zur Steuerung eines Mehrkernprozessors, um die strengen Anforderungen mehrerer Sicherheitsstandards zu erfüllen. Die Architektur eines Separations-Kernel folgt einem stark modularen Ansatz, mit den Grundprinzipien Least Privilege und minimaler Trusted Code Base. Der Separations-Kernel vereint einen Mikro-Kernel, der Echtzeitverhalten und grundlegende Ressourcenverwaltung gewährleistet, mit einem Hypervisor.

Konfigurationsbeispiel und Laufzeitmodell unter Einsatz des PikeOS Partition Scheduler
Bild 6. Konfigurationsbeispiel und Laufzeitmodell unter Einsatz des PikeOS Partition Scheduler. Die sicherheitskritische Anwendung RP2 wird im Zeitfenster tp2 ausgeführt. Sie hat ausschließlich auf Kern C Zugriff und zusätzlich auf die gesamte Plattform, da kein anderer Prozess zur gleichen Zeit ausgeführt wird.
© Sysgo

Der Hypervisor sorgt durch Separation und kontrollierten Informationsfluss für Sicherheit. Die Grundkomponenten eines solchen Echtzeit-Hypervisors sind virtuelle Maschinen, die Ressourcenpartitionen (RP) genannt werden. Die Partitionen beherbergen entweder ein vollwertiges Betriebssystem wie z.B. Linux oder eine Laufzeitumgebung wie POSIX, Java oder technologiespezifische Lösungen wie AUTOSAR oder ARINC 653 (Bild 5).

Die Rechenzeit wird mittels Zeitpartitionierung zugeteilt. Dafür wird ein zweistufiger Scheduler verwendet. Die erste Stufe teilt die verfügbare Zeit in Zeitpartitionen (tp) auf und weist einer Zeitpartition eine oder mehrere Ressourcenpartitionen zu. Die zweite Stufe disponiert die zu jeder Zeitpartition gehörenden Threads (aus den Ressourcen-Partitionen) auf FIFO- und Prioritätsbasis. Eine definierte Abfolge von Zeitpartitionen wird in einem Major Time Frame (MTF) gruppiert und zyklisch ausgeführt, immer wenn ein MTF beendet ist (Bild 5).

Die Prozessorkerne sind Ressourcenpartitionen statisch zugewiesen, wobei eine Ressourcenpartition mehrere Kerne nutzen kann. Bild 6 zeigt eine mögliche Konfiguration des PikeOS Partition Scheduler.


  1. Sicher auf mehreren Kernen
  2. Wie stark bremst ein gemeinsamer Cache?
  3. Software-Interferenzkanäle
  4. Sicherheit kostet Prozessorzeit

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu SYSGO AG

Weitere Artikel zu Cyber-Security

Weitere Artikel zu Funktionale Sicherheit/Safety

Weitere Artikel zu Betriebssysteme