AUTOSAR_AP_EXP_SWArchitecture
FIG-55aeba189ab7aaae
607 × 341 px
1 Release(s)
Figure 9.15: Interfaces of Execution Management required by State Management
SHA-256 Inhalts-Fingerabdruck:
55aeba189ab7aaae065c91588bf7fcb571a2e3d2a9028065adda610532e49cbe
✦
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-Klassendiagramm / Komponentenschnittstellen-Diagramm (AUTOSAR Adaptive Platform Interface- & Architektursicht).
- Technischer Zweck & Einordnung:
- Darstellung der architektonischen Entkopplung und Interaktionsschnittstellen zwischen den beiden zentralen Dämonen State Management (SM) und Execution Management (EM) gemäß
AUTOSAR_EXP_SWArchitecture(Release R21-11). - Realisiert das Architekturprinzip „Separation of Mechanism and Policy“: State Management definiert und triggert die systemspezifische Zustandspolitik (Policy), während Execution Management die prozessuale und POSIX-bezogene Umsetzung (Mechanismus: Prozessstart, Termination, Ressourcen-/Budgetüberwachung) erzwingt.
- Darstellung der architektonischen Entkopplung und Interaktionsschnittstellen zwischen den beiden zentralen Dämonen State Management (SM) und Execution Management (EM) gemäß
2. Komponenten, Entitäten & Schnittstellen
Akteure & Functional Cluster
«aapFunctionalCluster» State Management(daemon-based):- Aggregiert systemweite Zustandsanforderungen (z. B. von Diagnostics, Power Management, Vehicle Communication) und fordert Zustandsübergänge an.
«aapFunctionalCluster» Execution Management(daemon-based):- Kernkomponente der Adaptive Platform; verwaltet den gesamten Lebenszyklus aller Prozesse und Maschinen-/Funktionsgruppen-Zustände.
Schnittstellen & Entitäten
«aapAPI,aapNativeInterface» StateClient:- C++ Native Interface (Namespace
ara::exec::StateClient). - Operationen:
+ Create(function): Statische Factory-Methode zur Erzeugung der Client-Instanz; bindet Handler/Callbacks für asynchrone Fehlermeldungen (z. B. undefinierte Prozessabstürze, Verletzungen von Prozessabhängigkeiten).+ SetState(FunctionGroupState): Future: Asynchrone Anforderung eines Zustandswechsels für eine spezifizierte Funktionsgruppe; Rückgabetyp ist einara::core::Future<void>zur Synchronisation.+ GetInitialMachineStateTransitionResult(): Ermittelt das synchrone/gecachte Ergebnis des initialen Übergangs in den Maschinen-Grundzustand (MachineState) nach dem Bootstrapping.+ GetExecutionError(): Fragt detaillierte Fehlerursachen ab, falls ein Zustandsübergang fehlschlägt oder Prozesse abnormal terminieren.
- Beziehung:
State Managementbesitzt eine gerichtete Abhängigkeit («use») aufStateClient.Execution Managementimplementiert/realisiert (Realization, gestrichelte Kante mit geschlossener Dreiecksspitze) die native SchnittstelleStateClient.
- C++ Native Interface (Namespace
«aapAPI,aapPortInterface» FunctionGroup:- Modelliertes Port-Interface zur Adressierung einer logischen Funktionsgruppe.
- Operationen:
+ Create(): Statische Factory-Methode zur Erzeugung bzw. Bindung eines Funktionsgruppen-Handles.
- Beziehung:
State Managementgreift über«use»und«aapRequiredPort»auf die Schnittstelle zu.Execution Managementimplementiert/realisiert das Port-Interface (Realization).
«aapAPI,aapNativeInterface» FunctionGroupState:- C++ Native Interface zur Repräsentation des diskreten Zielzustands einer Funktionsgruppe (dient als typisierter Parameter für
SetState). - Operationen:
+ Create(): Statische Factory-Methode zur Erzeugung einesFunctionGroupState-Objekts.
- Beziehung:
State Managementgreift über eine direkte«use»-Abhängigkeit auf die Schnittstelle zu.Execution Managementimplementiert/realisiert die Schnittstelle (Realization).
- C++ Native Interface zur Repräsentation des diskreten Zielzustands einer Funktionsgruppe (dient als typisierter Parameter für
3. Dynamisches Verhalten & Sequenzablauf
- System-Bootstrap:
- EM startet unmittelbar nach dem OS-Kernel und dem Platform-Init als primärer Dämon.
- EM aktiviert die initiale
MachineState(gemäß Machine Manifest) und startet grundlegende Cluster, darunter State Management.
- Initialisierung des State Management:
- SM instanziiert
ara::exec::StateClient(errorHandlerCallback). - SM verifiziert den korrekten Initialisierungszustand der Maschine über
GetInitialMachineStateTransitionResult().
- SM instanziiert
- Zustandstransition (Runtime-Phase):
- Ein externes oder internes Ereignis triggert im SM eine Zustandsänderung.
- SM ruft nicht-blockierend
SetState(targetFunctionGroupState)auf. - EM empfängt den Request via IPC, identifiziert alle im Execution Manifest betroffenen Prozesse und führt Transitionsaktionen durch (Start via
fork/exec, Termination viaSIGTERM/SIGKILL, Timeout-Überwachung, Ressourcenlimits). - EM erfüllt das zugehörige
ara::core::Promise; SM wertet den zurückgegebenenara::core::Futureaus (z. B. über.wait(),.get()oder Polling via Future-Status).
- Fehlerbehandlung:
- Schlägt der Start eines deterministischen Prozesses fehl oder antwortet ein Prozess nicht rechtzeitig, setzt EM den Future auf einen Fehlerzustand (
ara::exec::ExecErrc). - SM ruft
GetExecutionError()auf oder empfängt die Fehlerdetails im vorab registrierten Callback und leitet Sicherheits- oder Degradierungsmaßnahmen (Safe State Transition, Restart) ein.
- Schlägt der Start eines deterministischen Prozesses fehl oder antwortet ein Prozess nicht rechtzeitig, setzt EM den Future auf einen Fehlerzustand (
4. Normative Relevanz & Entwickler-Hinweise
- Entkopplung & Zuständigkeit:
- Applikations- und SM-Entwickler dürfen keine Low-Level-OS-Operationen (
kill,system, POSIX-Signalbehandlung) für adaptive Anwendungen durchführen. Die Prozesssteuerung obliegt ausschließlich EM über dieStateClient-API.
- Applikations- und SM-Entwickler dürfen keine Low-Level-OS-Operationen (
- Asynchrone Non-Blocking-Architektur:
SetState()arbeitet asynchron und liefert einenara::core::Future. Der aufrufende Thread im State Management darf nicht unkontrolliert blockieren, um die Reaktionsfähigkeit auf Diagnose- oder Netzwerkereignisse nicht zu gefährden.
- Serialisierung & Concurrency:
- Für dieselbe
FunctionGroupdarf zu jedem Zeitpunkt nur genau einSetState()-Übergang aktiv sein. Ein erneuter Aufruf während einer laufenden Transition wird von EM mit einem Fehler quittiert. SM muss Transitions-Queues intern verwalten.
- Für dieselbe
- Manifest-Konsistenz:
- Die via
FunctionGroupundFunctionGroupStateadressierten Bezeichner müssen bitgenau mit den Identifikatoren im Execution- und Machine-Manifest (ARXML) übereinstimmen. Mismatches führen zu Laufzeitfehlern bei der Initialisierung vonFunctionGroupState-Handles.
- Die via
- Sicherheits- & Zugriffskonfiguration:
StateClienterfordert zwingend spezifische OS-Rechte (UID/GID, SELinux/AppArmor-Kontext), damit nur der autorisierteState Management-Prozess IPC-Nachrichten an den EM-Dämon absetzen darf.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.