AUTOSAR_AP_SWS_ExecutionManagement
FIG-8b2cbea8e7a839d0
887 × 645 px
3 Release(s)
Figure 7.9: State Change Sequence - Termination Timeout
SHA-256 Inhalts-Fingerabdruck:
8b2cbea8e7a839d0fad2b8c2daca23d18460332956eb011a9f380892ae4fc368
✦
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 2.x Sequenzdiagramm (Sequence Diagram) mit kombinierten Fragmenten (
loop,opt) und Zeitdauer-Constraint ({Start-up Timeout}). - Architektur-Kontext: AUTOSAR Adaptive Platform (AP), Functional Cluster Execution Management (
ara::exec, EM) in Interaktion mit State Management (SM) und einer verwalteten Prozessinstanz (Process B). - Funktionale Einordnung: Dargestellt ist die Fehlerbehandlung während eines Function-Group-Zustandswechsels (FG State Change). Trotz der Dokumenten-Bildunterschrift (Termination Timeout) zeigt das Vektordiagramm normativ die Behandlung eines Start-up Timeouts: Ein startender Prozess meldet seinen Zustand nicht fristgerecht, woraufhin EM den Prozess zwangsweise beendet (
SIGKILL) und konfigurierte Neustartversuche abarbeitet.
2. Komponenten, Entitäten & Schnittstellen
- Lebenslinien & Akteure:
SM(State Management): Steuernde funktionale Instanz, die über denStateClientSoll-Zustände für Function Groups anfordert.EM(Execution Management): Zentraler Plattform-Dienst zur Prozess- und Zustandssteuerung, verantwortlich für Prozess-Erzeugung, Überwachung und Signalübermittlung.Process B: OS-Prozess einer Adaptive Application, definiert über ein Execution Manifest.
- Schnittstellen & Interaktionspunkte:
ara::exec::StateClient::SetState(): Asynchrone C++-API-Methode zur Initiierung des Function-Group-Zustandswechsels; liefert einara::core::Futurean SM zurück.create(): Interne/OS-spezifische Prozesserzeugung durch EM (z. B.posix_spawn()/fork()+execve()).ara::exec::ExecutionClient::ReportExecutionState(kRunning): Asynchrone IPC-Meldung der Applikation an EM zur Bestätigung der abgeschlossenen Initialisierung.kill (e.g. via SIGKILL): POSIX-Betriebssystem-Signal zur unbedingten Terminierung des Prozesses.
- Kombinierte Fragmente & Constraints:
loop For all Process-StartupConfigs which refer to the target FG state: Iteration über alle im Manifest für den Zielzustand hinterlegtenProcessStartupConfig-Instanzen.[Process Start]: Sequenzabschnitt zur Prozessaktivierung.opt Start-up Timeout: Bedingter Block für den Fall, dass die Prozessmeldung das Zeitfenster überschreitet.loop For numberOfRestartAttempts times: Schleife über die im Manifest konfigurierte Anzahl erlaubter Wiederanläufe.{Start-up Timeout}: Zeitgrenze zwischencreate()und dem Empfang vonReportExecutionState(kRunning).
3. Dynamisches Verhalten & Sequenzablauf
- Zustandsanforderung:
SMtriggert viaStateClient::SetState()den Zustandswechsel einer Function Group. - Asynchrone Quittierung:
EMantwortet unmittelbar mit einem:FutureanSM, um non-blocking Execution zu gewährleisten. - Prozessstart:
EMinstanziiertProcess Bviacreate()gemäß der zugehörigenProcessStartupConfigund startet den internen Timer{Start-up Timeout}. - Timeout-Verletzung: Der Timer
{Start-up Timeout}läuft ab, bevorProcess Bden Status meldet. Die nachfolgende MeldungExecutionClient::ReportExecutionState(kRunning)trifft verspätet beiEMein und wird als ungültig verworfen. - Eskalation:
EMsendet ein hartes Abbruchsignal (kill (e.g. via SIGKILL)) anProcess B. Der Prozess wird unverzüglich durch das Betriebssystem zerstört (gekennzeichnet durch das Terminations-SymbolX). - Wiederhollogik: Sofern konfiguriert, wird die Erzeugung und Überwachung bis zu
numberOfRestartAttemptsMal wiederholt. - Transition-Abschluss: Nach Erschöpfung oder Auflösung der Fehlerbehandlung erfüllt
EMdasFuturein RichtungSMmit:Success(sofern die Gesamtstrategie des FG-Wechsels die Fortführung erlaubt).
4. Normative Relevanz & Entwickler-Hinweise
- **ARXML-Konfiguration (Execution Manifest):**
- Parameter
startupTimeout: Definiert die harte Obergrenze für die Initialisierungsphase. Ist kein Timeout modelliert, blockiert EM unbegrenzt aufkRunning. - Parameter
numberOfRestartAttempts: Steuert die maximale Re-try-Anzahl vor Eintritt in einen Fehlerzustand der Function Group.
- Parameter
- **Applikations-Implementierung (Adaptive Application):**
- Entwickler müssen
ara::exec::ExecutionClient::ReportExecutionState(ara::exec::ExecutionState::kRunning)unmittelbar nach Abschluss aller minimal notwendigen Start-Routinen (z. B. Signal-Handler-Setup, Grundinitialisierung) aufrufen. - Zeitaufwändige Aufgaben (z. B. Laden großer Datenstrukturen, Aufbau externer Kommunikationsbeziehungen) dürfen den Aufruf nicht verzögern; sie müssen entweder asynchron nach
kRunningverlagert oder über ein ausreichend großesstartupTimeoutabgesichert werden.
- Entwickler müssen
- OS- & Ressourcenebene:
- Die Zwangsterminierung via
SIGKILLverhindert den Aufruf vonexit()-Handlern, Destruktoren oder Signal-Handlern in der Applikation. - Nicht-flüchtige Ressourcen (Shared Memory, POSIX-Semaphoren, Dateilocks) können im OS verwaist zurückbleiben, sofern sie nicht vom Betriebssystemkernel automatisch beim Prozess-Cleanup freigegeben werden. Applikationen müssen auf Crash-Recovery nach unsauberer Terminierung ausgelegt sein.
- Die Zwangsterminierung via
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.