AUTOSAR_AP_SWS_ExecutionManagement
FIG-fe9b54c5bad9fdde
887 × 651 px
3 Release(s)
Figure 7.10: State Change Sequence - Start-up Timeout
SHA-256 Inhalts-Fingerabdruck:
fe9b54c5bad9fddea1bd9e9fe188f08549cf40b4504d5dea02db0ebb4a8b5357
✦
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
- Klassifikation: UML-Sequenzdiagramm (Interaktionsdiagramm mit kombinierten Fragmenten
loopundopt). - Funktionale Einordnung: AUTOSAR Adaptive Platform (AP) – Execution Management (gemäß
AUTOSAR_AP_SWS_ExecutionManagement, AnforderungenRS_EM_00101,SWS_EM_02250). - Technischer Zweck: Spezifikation des Fehlerbehandlungs- und Wiederanlaufmechanismus (Recovery) bei Verletzung des Start-up-Timeouts während einer Funktionsgruppen-Zustandstransition (Function Group State Transition).
2. Komponenten, Entitäten & Schnittstellen
- Akteure / Lifelines:
SM(State Management): Plattform-Applikation zur systemweiten Steuerung von Funktionsgruppen und Betriebsmodi.EM(Execution Management): Zentraler Daemon zur Prozess- und Zustandsverwaltung auf dem Adaptive Core.Process B: Instanziierter POSIX-Betriebssystemprozess einer konfigurierten Adaptive Application.
- Schnittstellen & Methoden:
ara::exec::StateClient::SetState(): Asynchrone Methode des State-Client-APIs zur Anforderung eines Funktionsgruppen-Zustandswechsels.ara::core::Future: Asynchrones Rückgabeobjekt anSMzur Status- und Fehlerüberwachung der Transition.- OS-Prozess-APIs:
create()(z. B.posix_spawn()/fork()+exec()) undkill(z. B.SIGKILL) zwischenEMund OS-Prozess. ara::exec::ExecutionClient::ReportExecutionState(kRunning): IPC-basiertes Reporting des Prozesses anEMzur Signalisierung der Betriebsbereitschaft.
- Manifest- / Modell-Entitäten:
Process-StartupConfigs: Zuordnung von Prozessen und Startparametern zum Zielzustand einerFunctionGroup.{Start-up Timeout}(startupTimeout): Zeitgrenze im Metamodell für den Eingang vonReportExecutionState(kRunning).numberOfRestartAttempts: Konfigurierter Zähler für maximal zulässige Neustartversuche vor Abbruch der Transition.
3. Dynamisches Verhalten & Sequenzablauf
- Zustandsanforderung:
SMtriggert die Transition viaStateClient::SetState().EMquittiert synchron mit einemFuture. - Evaluierung der Startkonfigurationen: Über das äußere Fragment
loop For all Process-StartupConfigs which refer to the target FG state[Process Start] ermitteltEMalle im Zielzustand zu aktivierenden Prozesse. - Prozessstart & Timeout-Überwachung (
opt Start-up Timeout/loop For numberOfRestartAttempts times):EMerzeugtProcess Bviacreate().- Zeitgleich startet
EMden internen Timer{Start-up Timeout}. - Trifft
ExecutionClient::ReportExecutionState(kRunning)nicht vor Ablauf des Timeouts ein (oder wie im Diagramm dargestellt erst nach Fristüberschreitung), greift die Timeout-Behandlung. EMterminiertProcess Bforciert viakill (e.g. via SIGKILL).- Dieser Zyklus wiederholt sich bis zum Erreichen von
numberOfRestartAttempts.
- Fehlerextension & Transition-Abbruch:
- Nach Erschöpfung aller Neustartversuche bricht
EMdie gesamte Function Group State Transition ab. EMlöst dasFuturemit dem Fehlerwert:kFailed(bzw.ara::exec::ExecErrc::kFailed) auf.
- Nach Erschöpfung aller Neustartversuche bricht
- Systemfolgezustand:
- Die betroffene Funktionsgruppe verbleibt im Zustand
Undefined Function Group State. - Die Fehlerbehandlung wird explizit an den State Manager delegiert („SM has to react“).
- Die betroffene Funktionsgruppe verbleibt im Zustand
4. Normative Relevanz & Entwickler-Hinweise
- Applikations-Entwickler (
Process B):- Aufruf von
ExecutionClient::ReportExecutionState(ara::exec::ExecutionState::kRunning)muss im Prozesszyklus so früh wie möglich erfolgen; zeitintensive Initialisierungen (z. B. Blockierendes I/O, IPC-Bindungen, große Speicherallokationen) dürfen das Absetzen dieses Reports nicht verzögern. - Da
EMbei Timeout mitSIGKILLterminiert, greifen keine Signal-Handler oder Destruktoren. Persistente Ressourcen (z. B. Shared Memory, POSIX Semaphoren/Mutexes, Temp-Files) müssen crash-konsistent und idempotent initialisiert werden.
- Aufruf von
- System- & Integrations-Konfiguration (ARXML):
startupTimeoutmuss die ungünstigste Systemauslastung (Worst-Case Execution Time beim Bootstrapping, CPU-Scheduling-Latenzen) berücksichtigen, um False-Positive-Timeouts zu verhindern.numberOfRestartAttemptssteuert die Transitionsdauer im Fehlerfall: Ein hoher Wert bindet Rechenzeit und verzögert die Fehlererkennung imSM; ein Wert von0führt sofort zum Abbruch der Funktionsgruppen-Transition.
- State-Management-Entwickler (
SM):- Jeder Aufruf von
StateClient::SetState()muss zwingend auf Fehlerzustände (kFailed) desFutureüberwacht werden. - Für den Eintritt in den
Undefined Function Group Statemuss eine deterministische Notfallstrategie implementiert sein (z. B. Transitionsversuch in einen Fail-Safe State, Degradationsmodus oder Plattform-Reset).
- Jeder Aufruf von
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.