Ganzheitliches Konzept

Interferenzen und Timing meistern

19. Oktober 2023, 11:03 Uhr | Von Mark Pitchford
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Analyse der Verarbeitungszeit in Echtzeitsystemen

Die Zustandsraum-Variabilität MCP-basierter Systeme hat Auswirkungen auf die Timing-Messungen während des gesamten Entwicklungsprozesses. Die nachfolgend genannten vier Methoden zur Analyse der Verarbeitungszeiten haben bewiesen, dass sie den Anforderungen an die Ausarbeitung eines deterministischen Task Schedules und an die Unterstützung der Richtlinien CAST-32A und A(M)C 20-193 gerecht werden.

1. Priorisierende Timing-Analyse mithilfe der statischen Analyse
Die Halstead-Metrik eignet sich zur Identifikation jener Codeabschnitte, die die höchsten Anforderungen an die Verarbeitungszeit stellen. Statische Analysetools können diese Daten nicht nur berechnen, sondern auch mit realen Messungen am Zielsystem abstützen. Derartige Metriken liefern frühzeitige Aussagen über die Komplexität und über den potenziellen Ressourcenbedarf eines Codesegments, indem sie Einblicke in die Modulgröße, die Kontrollfluss-Strukturen und den Datenfluss bieten.

passend zum Thema

Berechnung von Halstead-Metriken mit der LDRA Tool Suite
Bild 3. Berechnung von Halstead-Metriken mit der LDRA Tool Suite.
© LDRA

Entwicklern hilft die Halstead-Metrik, ihre Anstrengungen bei der Timing-Analyse und beim Optimieren jener Codeabschnitte zu priorisieren, die durch einen größeren Umfang, erhöhte Komplexität und diffizile Datenfluss-Muster gekennzeichnet sind. Hierdurch verringert sich das Risiko, dass es zu Timing-Überschreitungen kommt, und das gesamte Timing-Verhalten des Systems verbessert sich. Tools wie die LDRA Tool Suite [3] können diese Metriken berechnen (Bild 3).

2. Empirische Analyse der Verarbeitungszeit
Haben Entwickler erst einmal die Module hoher Priorität ermittelt, können sie die dynamische Analyse zum Messen und Dokumentieren des Task-Timings nutzen und Abstimmungen am System vornehmen, wenn die Zielvorgaben nicht erreicht werden (»Interferenzanalyse«). Um höchste Genauigkeit zu gewährleisten, sollten sie dabei drei entscheidende Überlegungen anstellen:

➔ Die Analyse hat in der Umgebung stattzufinden, in der die Applikation letztendlich laufen soll. So lassen sich Auswirkungen etwaiger Konfigura-tionsunterschiede zwischen Entwicklungs- und Produktionsumgebung ausschließen, z. B. Compileroptionen, Linkeroptionen und Hardwareeigenschaften.
➔ Die Analyse muss wiederholt eine hinreichende Anzahl Tests ausführen, um umgebungs- und anwendungsbezogene Variationen zwischen den Durchläufen zu berücksichtigen.
➔ Eine Automatisierung ist äußerst empfehlenswert, um zu gewährleisten, dass ausreichend viele Tests in einem vertretbaren Zeitraum ausgeführt werden und um Auswirkungen manueller Aktionen, die im Vergleich damit langsamer sind, auszuschließen.

Die LDRA Tool Suite bietet einen besonders robusten Mechanismus zur Durchführung von Timing-Analysen (Bild 4), indem ein »Wrapper«-Test-Harness zum Ausführen von Modulen im Zielsystem benutzt wird.

Bildschirmfotos der LDRA Tool Suite mit Histogrammen von Verarbeitungszeiten und Timing-Zusammenfassungen
Bild 4. Bildschirmfotos der LDRA Tool Suite mit Histogrammen von Verarbeitungszeiten und Timing-Zusammenfassungen.
© LDRA

Dieser Mechanismus automatisiert die Timing-Messungen und erlaubt Entwicklern die Definition der zu testenden Komponenten – sei es eine einzelne Funktion, ein aus mehreren Komponenten bestehendes Subsystem oder das gesamte System. Überdies können die Entwickler angeben, welche Art von CPU-Stresstests durchgeführt werden sollen, um das Vertrauen in die Ergebnisse zu stärken, ein Beispiel ist der quelloffene Workload-Generator »Stress-ng« [4].

3. Kontroll- und Datenkopplungsanalysen
Mit Kontroll- und Datenkopplungsanalysen wird untersucht, wie sich die Task-Verarbeitung und Datenabhängigkeiten in einem Task auf einen anderen Task auswirken, sodass sich potenzielle Timing-Probleme identifizieren lassen. Sollte beispielsweise ein Task zuerst die Beendigung eines anderen Task abwarten müssen, bevor er weitermachen kann, können sich Probleme einstellen, wenn die Ausführung verzögert wird. Überschreitet der gerade ausgeführte Task seine Deadline, kann dies auch die Einhaltung der Timing-Anforderungen des von ihr abhängigen Tasks beeinflussen.

Auf ähnliche Weise kann es zu Datenkopplungsproblemen kommen, wenn mehrere Tasks gleichzeitig auf eine gemeinsam genutzte Ressource zugreifen wollen, ohne dass es geeignete Synchronisationsmechanismen gibt. Das Resultat sind Data Races oder Ressourcenkonflikte, die wiederum Konsequenzen für das Timing haben.

Datenkopplungs- und Kontrollkopplungs-Analyse in der LDRA Tool Suite
Bild 5. Datenkopplungs- und Kontrollkopplungs-Analyse in der LDRA Tool Suite.
© LDRA

Die LDRA Tool Suite bietet Unterstützung für Kontroll- und Datenkopplungsanalysen [5] bezüglich des Daten- und Kontrollflusses zwischen Softwarekomponenten und Applikationen (Bild 5). Die Ergebnisse dieser Analysen helfen Entwicklern beim Einkreisen kritischer Codeabschnitte, die optimiert oder umstrukturiert werden müssen, um Kontrollfluss-Abhängigkeiten zu minimieren und Datenkonflikte zu entschärfen.

4. Anforderungs-Rückverfolgbarkeit
Die empirische Natur von Timing-Analysen in Multicore-Systemen macht die Interferenzanalyse zu einem iterativen Prozess (Bild 6).

Empfohlenes Feedback-Konzept für die Timing-Analyse in Multicore-Systemen
Bild 6. Empfohlenes Feedback-Konzept für die Timing-Analyse in Multicore-Systemen.
© Wind River Systems | Collins Aerospace | LDRA

Das wiederholte Modifizieren von Tasks und das Nachschärfen von Konfigurationsparametern hat mit großer Wahrscheinlichkeit Folgewirkungen auf andere Testaspekte, die entsprechend zurückgeführt werden müssen. Ebenso können Änderungen an den Anforderungen dazu führen, dass Interferenzkanäle im System entstehen oder sich verändern. Das Wissen, wo welche Einflüsse entstehen können, hilft Entwicklern somit bei der Vermeidung von Problemen im Nachgang.
Für die Entwickler ist es ebenfalls wichtig, die Einhaltung von CAST-32A, A(M)C 20-193, DO-178C und anderen einschlägigen Richtlinien zu dokumentieren und Tests durchzuführen, die deren fortlaufende Erfüllung nachweisen.

Ein automatisierter Mechanismus wie die Requirements Traceability Features [6] der LDRA Tool Suite helfen Entwicklern bei der Verfolgung jener Komponenten, die gemäß den Ergebnissen der Timing-Verifikation und -Validierung noch einmal überarbeitet werden müssen

Sorgfalt und Rückkopplung als Erfolgsfaktoren

In Multicore-Systemen mit strikten Echtzeitanforderungen ist es eine komplexe Aufgabe, die Einhaltung der Timing-Vorgaben zu gewährleisten. Denn die Einflüsse auf das Task-Timing und die entsprechenden Analysen sind zahlreich und verlangen nach einer disziplinierten Vorgehensweise – hinsichtlich des Ausarbeitens und dem Durchführen der Tests. Die enge Kopplung zwischen Task-Ausführungszeit und Softwareanforderungen zwingt die Entwicklungsteams außerdem dazu, eine robuste Rückkoppelschleife einzurichten, die sicherstellt, dass ein nicht bestandener Test sicher eine geeignete Korrekturmaßnahme auslöst.

Wenn sie solche Herausforderungen angehen, sind Entwickler besser in der Lage, die Möglichkeiten von MCPs auf robuste, zuverlässige und zertifizierbare Weise auszuschöpfen.

 

Der Autor

 

Mark Pitchford von LDRA
Mark Pitchford von LDRA.
© LDRA

Mark Pitchford

verfügt über mehr als 30 Jahre Erfahrung in der Softwareentwicklung für technische Anwendungen. Er hat an vielen bedeutenden Industrie- und Handelsprojekten in den Bereichen Entwicklung und Management gearbeitet, sowohl in Großbritannien als auch international.

Seit 2001 arbeitet Pitchford mit Entwicklungsteams zusammen, die eine konforme Softwareentwicklung in sicherheitskritischen Umgebungen anstreben, mit Standards wie DO-178, IEC 61508, ISO 26262, IIRA und RAMI 4.0. Er studierte an der Nottingham Trent University mit dem Abschluss Bachelor of Science und wurde vor mehr als 30 Jahren Chartered Engineer. Pitchford arbeitet zurzeit als technischer Spezialist bei LDRA Software Technology.
mark.pitchford@ldra.com


  1. Interferenzen und Timing meistern
  2. Analyse der Verarbeitungszeit in Echtzeitsystemen

Lesen Sie mehr zum Thema


Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu LDRA Inc.

Weitere Artikel zu Embedded-Systeme