AUTOSAR_AP_SWS_ExecutionManagement
FIG-99a84c70dca495a7
932 × 870 px
2 Release(s)
Figure 7.11: State dependent Process control
SHA-256 Inhalts-Fingerabdruck:
99a84c70dca495a77b22654f967a34550a05a9a7be717e0aa413589962d09265
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07
1. Diagrammtyp & Architektur-Kontext
- Diagrammtyp: Zeitablauf- und Zustandsübergangsdiagramm (Timing/State-Transition-Diagramm) über einer gemeinsamen horizontalen Zeitachse t.
- Architektur-Kontext: AUTOSAR Adaptive Platform (AP), Functional Cluster Execution Management (
ara::exec, SWS Document ID 721). - Technischer Zweck: Veranschaulichung der deterministischen Lebenszyklussteuerung von Prozessen (
Process) in Abhängigkeit von übergeordneten Zustandsumschaltungen der Funktionsgruppen (FunctionGroupState) und der Maschinen-Zustände (MachineFG). Dargestellt wird die Kopplung zwischen Zustandswechseln, Prozess-Abhängigkeiten (ExecutionDependency) und der Wiederverwendung bzw. Reinitialisierung von Startkonfigurationen (StateDependentStartupConfig).
2. Komponenten, Entitäten & Schnittstellen
- Function Groups & States (Zustandsdomänen):
MachineFG: Dedizierte, plattformweite Funktionsgruppe für den Lebenszyklus der Maschine/Plattform-Instanz (Zustände:Off,Startup,Running,Diagnostics,Shutdown).Function Group 1 (FG1): Applikative Funktionsgruppe (Zustände:FG1:Off,FG1:Running).Function Group 2 (FG2): Applikative Funktionsgruppe mit multiplen Betriebsmodi (Zustände:FG2:Off,FG2:Running,FG2:Fallback,FG2:Diag).- Schraffierte Übergangsphasen: Transiente Phasen (Transition State), in denen Execution Management die Ein- und Ausphasung der zugeordneten Prozesse koordiniert.
- Prozess-Entitäten (
Process/ Manifest-Modell):- Prozesse A bis G mit jeweils den drei diskreten statischen Lebenszyklus-Zuständen:
Idle,Running,Terminated.
- Prozesse A bis G mit jeweils den drei diskreten statischen Lebenszyklus-Zuständen:
- Metamodell-Elemente & Abhängigkeitsstrukturen:
StateDependentStartupConfig[Kardinalität 1..\*]: Mappt einenProcessauf einen oder mehrereFunctionGroupStates.StartupConfig: Spezifiziert Startparameter, Umgebungsvariablen, Resource Limits und Scheduling-Attribute.ExecutionDependency: Deklarative Startbedingung (hier: Ende von Prozess A schaltet Start von Prozess B frei).
- Relevante Schnittstellen & Akteure:
State Management(ara::sm): Trigger für Funktionsgruppen-Zustandswechsel überFunctionGroup::SetState().Execution Management(ara::exec): Realisiert Prozessspawns (posix_spawn/fork+execve), Signalüberwachung (SIGTERM/SIGKILL) und Auswertung des Reportings viaApplicationClient::ReportExecutionState().
3. Dynamisches Verhalten & Sequenzablauf
- Phase
Startup(MachineFG):- Prozess A: Startet aus
IdleinRunningbei Aktivierung vonStartup. Es handelt sich um einen Self-terminating Process (Initialisierungs-/Flash-Check-Aufgabe), der sich regulär selbst beendet und inTerminatedwechselt. - Prozess B: Konfiguriert mit
ExecutionDependencyauf Prozess A. Bleibt inIdle, bis A den ZustandTerminatedmeldet (gestrichelter Kausalitäts-Pfeil). Erst danach erfolgt der Zustandsübergang nachRunning.
- Prozess A: Startet aus
- Phase
Running(MachineFG) &different StartupConfigs:- Prozess B: Ist sowohl für
Startupals auch fürRunningkonfiguriert, jedoch mit unterschiedlichenStateDependentStartupConfigs[constr_10411]. Execution Management terminiert B beim Verlassen vonStartupund startet die Instanz inRunningmit neuen Parametern neu (symbolisiert durch die Zickzack-Bruchkante). - Prozess C: Referenziert ausschließlich
MachineFG:Running. VerlässtIdleund wechselt synchron mit Erreichen des Zielzustands inRunning.
- Prozess B: Ist sowohl für
- Applikative Function Groups (FG1 & FG2):
- FG1: Beim Eintritt in
FG1:Runningstarten Prozesse D und E parallel inRunning. Mit Transition nachFG1:Offwerden beide kontrolliert nachTerminatedüberführt. - FG2: Beim Wechsel von
FG2:OffnachFG2:Runningstarten Prozesse F und G. - Zustandswechsel
FG2:Running→FG2:Fallback:- Prozess F (
different StartupConfigs): Wird gestoppt und mit veränderter Startkonfiguration fürFG2:Fallbackneu instanziiert (Re-Execution / Bruchlinie). - Prozess G (
same StartupConfig): Referenziert beide Zustände über dieselbeStartupConfig. Prozess G läuft während der gesamten Transition unterbrechungsfrei inRunningweiter (kein Restart-Overhead).
- Prozess F (
- FG1: Beim Eintritt in
- Phase
Diagnostics& Deaktivierung:- Anforderung von
MachineFG:DiagnosticsdurchState Management. - Nicht für
Diagnosticskonfigurierte Prozesse (wie B und C) werden durch EM über den regulären De-Escalation-Pfad (SIGTERM→ Termination Timeout → ggf.SIGKILL) in den ZustandTerminatedüberführt.
- Anforderung von
4. Normative Relevanz & Entwickler-Hinweise
- Vermeidung unnötiger Prozessneustarts: Referenzieren mehrere aufeinanderfolgende States einer Funktionsgruppe dieselbe Prozessinstanz, muss im Execution Manifest (
ExecutionManifest.arxml) zwingend dieselbeStartupConfigreferenziert werden (Verhalten wie Prozess G). Unterschiedliche Konfigurationen (wie bei B und F) erzwingen zwingend Termination und POSIX-Neustart mit Verlust von flüchtigem Prozesskontext und Re-Initialisierungslatenz. - Synchronisation über
ExecutionDependency: Abhängigkeiten zwischen Prozessen innerhalb derselben Phase dürfen nicht über Heuristiken (z. B. Polling, Sleeps), sondern müssen deklarativ überExecutionDependencymodelliert werden. EM blockiert den Startfolgeprozess deterministisch, bis der Vorgänger den geforderten Zustand (z. B.kTerminatedoderkRunningviaApplicationClient) erreicht hat. - Transition State Semantik: Ein Function-Group-Zustandswechsel gilt erst dann als erfolgreich abgeschlossen (
ara::core::FutureausSetStateresolved), wenn:- Alle Prozesse des vorherigen Zustands, die im Zielzustand nicht mehr aktiv sind, sauber terminiert wurden.
- Alle neu zu startenden Prozesse des Zielzustands erfolgreich gestartet sind und ihren Zustand gemeldet haben.
- Applikationsdesign für Self-terminating Processes: Prozesse mit deterministischem Einmal-Ablauf (Prozess A) müssen ihren Exit-Code sauber zurückliefern (
exit(0)) und dürfen keine Recovery Actions (z. B. Restart on Non-Zero) auslösen.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.