Trends und Herausforderungen bei der Entwicklung von Echtzeitsystemen im Fahrzeugumfeld

Quo vadis Echtzeitsysteme?

17. August 2012, 9:07 Uhr | Tapio Kramer
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 2

Multi-Core-Systeme: Verteilung der Tasks als Herausforderung

Eine vielleicht noch größere Herausforderung als die neuen Netzwerktopologien, um das Echtzeitverhalten sicherzustellen, bilden die neueren Multi-Core-Systeme. Denn hier wird grundsätzlich der Ablauf der Software, die üblicherweise sequentiell abgearbeitet wird, auf eine parallele Abarbeitung geändert. Was zuvor auf einem Sin­gle-Core-Prozessor streng nacheinander ausgeführt wurde, kann nun parallel und asynchron auf verschiedenen Cores abgearbeitet werden. Auch vorher hat man schon quasi parallel laufende Pfade in seiner Software realisiert, hatte aber immer die Kontrolle, indem Interrupts ggf. gesperrt und zudem den Tasks entsprechend hohe Prioritäten gegeben wurden. Behält man dieses Vorgehen bei, um den Zugriff auf Ressourcen zu schützen und ­Race-Conditions zu verhindern, geht viel der gewonnenen Rechenleistung verloren. Prozesse des einen Core warten auf den anderen, und einmalige Ressourcen bleiben unnötig lange gesperrt. Die stetige Herausforderung besteht also darin, die Tasks und Runnables optimal auf die Cores zu verteilen und dennoch das Echtzeitverhalten nicht zu vernachlässigen.
Die Migration von vorhandenen Applikationen muss individuell erfolgen und die Granularität der Verteilung gemeinsam mit dem Scheduling optimiert werden. Die Strategie, eine Virtualisierungsschicht hinzuzufügen, bietet den Vorteil, dass der Code weiter sequentiell abgearbeitet werden kann – allerdings auf Kosten des direkten, schnellen Zugriffs auf die Ressourcen. Andere Ansätze verteilen die Tasks, je nachdem ob diese ereignisgesteuert oder zeitgesteuert sind, auf die Cores oder belassen hardware-nahe Tasks auf dem Core mit der angeschlossenen Peripherie. Kritisch ist häufig die Interprozesskommunikation über gemeinsam genutzten Speicher, die erheblichen Einfluss auf die Leistungsfähigkeit des Systems bekommt. Auf der Basis eines Modells des dynamischen Verhaltens können mittels Simulation oder Validierung schnell verschiedene Verteilungen und Schedules gegenübergestellt und beurteilt werden. Die modellierten Wirkketten helfen, Ablaufreihenfolgen und damit auch Datenkonsistenz zu überprüfen, und das mit geringerem Aufwand, als es eine Implementation und Test mit realer Hardware erlauben würde.
Beispielsweise werden zwei zyklische Funktionen 1 und 2 auf verschiedene Cores abgebildet, die miteinander Daten austauschen. Um sicherzustellen, dass die Daten immer aktuell sind, wird in der Software-Architektur festgelegt, dass ein fester Versatz (Offset) die zweite Funktion nach der ersten aktiviert (Bild 2). Das stellt sicher, was zuvor die Abarbeitung nacheinander auf nur einem Core automatisch erledigte. Was aber unberücksichtigt blieb, war der Einfluss anderer Funktionen höherer Priorität und der Kommunikation. Verdrängungen der ersten Funktion können in ungünstigen Situationen mit vielen, gehäuft auftretenden Busnachrichten dazu führen, dass der Offset der zweiten Funktion auf Core 2 nicht mehr ausreicht, die weiter verarbeiteten Daten also nicht mehr konsistent sind (Bild 3).


  1. Quo vadis Echtzeitsysteme?
  2. Zeit- und Kostendruck bei der Ethernet-Integration
  3. Multi-Core-Systeme: Verteilung der Tasks als Herausforderung
  4. Integration von Entwicklungswerkzeugen erhöht Produktivität
  5. Der Autor:

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!