AUTOSAR_AP_SWS_ExecutionManagement
FIG-a598ab554dd6def8
841 × 797 px
1 Release(s)
Figure 7.5: Execution dependencies on Non-reporting Process
SHA-256 Inhalts-Fingerabdruck:
a598ab554dd6def8b2c44e419acc3d12ab0b569569b133788b023d2a52174f90
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08
1. Diagrammtyp & Architektur-Kontext
- Klassifikation: UML-Timing-Diagramm / Zustands-Zeitablauf-Diagramm (State Timeline) kombiniert mit Funktionsgruppen-Zustandsphasen (Function Group State Transition).
- Architektur-Kontext & Zweck:
- AUTOSAR Adaptive Platform (ARA), Spezifikation
AUTOSAR_SWS_ExecutionManagement(Kapitel Execution Management Architecture & Functionality). - Modellierung von Prozesszuständen (
Idle,Running,Terminated) und deren Steuerung während eines Funktionsgruppen-Zustandswechsels (FunctionGroupStateTransition vonFG1:OffnachFG1:Running). - Visualisierung des Lösungsansatzes für Ausführungsabhängigkeiten (
ExecutionDependency) auf nicht-meldende Prozesse (Non-reporting Processes) und selbst-beendende Prozesse (Self-terminating Processes) über das Companion-Process-Muster, um Startup-Race-Conditions zu verhindern.
- AUTOSAR Adaptive Platform (ARA), Spezifikation
2. Komponenten, Entitäten & Schnittstellen
- Entitäten & Metamodell-Elemente:
FunctionGroup/FunctionGroupState(FG1:Off,FG1:Running): Betriebszustände der Machine, verwaltet durch das Execution Management (EM) und getriggert durch den State Management Cluster (ara::sm).Process/ProcessExecution(A, B, C, D): Instanzen vonExecutable, zugeordnet zuFG1:Runningvia Metamodell-Referenz (ProcessToMachineMappingExec/ State Dependent Startup Config).- **Prozess A (Non-reporting Process / Self-terminating Process):** Implementiert keinen
ara::exec::ExecutionClient. Geht gemäß [SWS_EM_01402] unmittelbar nach dem Fork/Exec-Start durch das EM synthetisch in den ZustandRunningüber. Führt eine Initialisierungs- oder Einmalaufgabe aus und beendet sich selbstständig (Terminated). - **Prozess B (Companion Process):** Regulärer AUTOSAR-Adaptive-Prozess (
reportingBehavior = reportsExecutionState). Besitzt eineExecutionDependencyaufProcess A == Running. Dient als Prüfinstanz für die funktionale Betriebsbereitschaft von Prozess A. - **Prozess C (Dependent Process):** Regulärer Reporting-Prozess mit
ExecutionDependencyaufProcess B == Running. - **Prozess D (Post-Termination Process):** Regulärer Prozess mit
ExecutionDependencyaufProcess A == Terminated.
- **Prozess A (Non-reporting Process / Self-terminating Process):** Implementiert keinen
- Schnittstellen & Interaktion:
ExecutionDependency(Kardinalität0..*im MetamodellProcessExecutionStateDependency): Richtungsgebundene Startvorbedingung gekoppelt an Zielzustände (kRunning,kTerminated).ara::exec::ExecutionClient::ReportExecutionState(): IPC-Schnittstelle zwischen Prozess und EM-Daemon. Wird von B, C und D genutzt, entfällt zwingend bei A.- OS-Kernel-Schnittstelle: Signalierung via
SIGCHLD/waitpid()zur zuverlässigen Detektion des ZustandsTerminatedvon Prozess A durch EM.
3. Dynamisches Verhalten & Sequenzablauf
- Trigger des Funktionsgruppenwechsels:
- Anforderung zur Transition von
FG1:OffnachFG1:Running. Eintritt in die Übergangsphase (state transition, schraffierter Bereich).
- Anforderung zur Transition von
- Start von Prozess A (Non-reporting):
- Prozess A besitzt keine eingehenden
ExecutionDependency-Bedingungen und wird vom EM unmittelbar ausIdlegestartet. - Wirkung von SWS_EM_01402: Unmittelbar mit dem Start setzt EM den internen Zustand von A automatisch auf
Running, da keinkRunning-Report über denExecutionClienterwartet wird.
- Prozess A besitzt keine eingehenden
- Trigger und Synchronisation des Companion-Prozesses B:
- Das Erreichen von
A == Runningtriggert dieExecutionDependencyvon Prozess B. EM startet Prozess B ausIdle. - Prozess B nutzt projektspezifische Mechanismen (z. B. IPC-Handshake, Socket-Verbindung, Prüfen von Lockfiles/Pipes), um zu verifizieren, ob Prozess A tatsächlich initialisiert und arbeitsfähig ist.
- Erst nach erfolgreicher Verifikation meldet B aktiv
ExecutionState::kRunningan das EM. B geht inRunningüber.
- Das Erreichen von
- Kaskadierter Start von Prozess C:
- Die
ExecutionDependencyvon Prozess C aufB == Runningwird erfüllt. EM startet Prozess C; C meldetRunning.
- Die
- Terminierung von Prozess A & Start von Prozess D:
- Prozess A schließt seine Aufgabe ab und terminiert. Das OS signalisiert das Prozessende an EM; A wechselt in
Terminated. - Die
ExecutionDependencyvon D aufA == Terminatedwird erfüllt. EM startet Prozess D (WechselIdle→Running).
- Prozess A schließt seine Aufgabe ab und terminiert. Das OS signalisiert das Prozessende an EM; A wechselt in
- Abschluss der Transition:
- Nach Erreichen aller geforderten Zustände wird die Transition beendet und der Zielzustand
FG1:Runningerreicht.
- Nach Erreichen aller geforderten Zustände wird die Transition beendet und der Zielzustand
4. Normative Relevanz & Entwickler-Hinweise
- Spezifikationsanforderung [SWS_EM_01402]:
- Normativer Wortlaut/Inhalt: Wird ein Prozess als Non-reporting Process konfiguriert, betrachtet das Execution Management diesen unmittelbar nach dem Startaufruf als im Zustand
Runningbefindlich.
- Normativer Wortlaut/Inhalt: Wird ein Prozess als Non-reporting Process konfiguriert, betrachtet das Execution Management diesen unmittelbar nach dem Startaufruf als im Zustand
- **Architektur-Pattern (Companion Process):**
- Eine direkte
ExecutionDependencyeines Drittprozesses (C) auf einen Non-reporting-Prozess (A) mit ZielzustandkRunningist ein kritisches Fehlmuster (Race Condition): C würde gestartet, bevor A initialisiert ist. - Das Companion-Muster kapselt die fehlende EM-Reporting-Fähigkeit von Drittanbieter-/Legacy-Binaries durch einen zwischengeschalteten Überwacherprozess B.
- Eine direkte
- Zuverlässigkeit von
Terminated:- Im Gegensatz zum Zustand
Runningerfordert der ZustandTerminatedkeinenExecutionClient-Aufruf, da der Exit-Status direkt vom OS-Kernel an EM gemeldet wird. Abhängigkeiten aufkTerminatedeines Non-reporting Prozesses sind daher ohne Companion-Prozess deterministisch und sicher einsetzbar.
- Im Gegensatz zum Zustand
- Manifest-Konfiguration:
- Im Execution-Manifest muss für Prozess A
reportingBehavior = false/doesNotReportExecutionStategesetzt sein. - Startup-Timeouts zur Überwachung des
kRunning-Eingangs greifen für A nicht. Bleibt A hängen, ohne zu terminieren, muss die Fehlerbehandlung über den Companion-Prozess B oder den Platform Health Management Cluster (ara::phm) erfolgen.
- Im Execution-Manifest muss für Prozess A
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.