AUTOSAR_AP_SWS_ExecutionManagement
FIG-f89e84391d8711ac
702 × 340 px
1 Release(s)
Figure 5.2: Interfaces provided by Execution Management to State Management
SHA-256 Inhalts-Fingerabdruck:
f89e84391d8711ac69c9400655ef9b310d8f4cd75e62d6fe48cb7e33d7a2598e
✦
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
- Diagrammtyp: UML-Klassendiagramm / Schnittstellendiagramm (AUTOSAR Adaptive Platform Metamodell-Mapping).
- Technischer Zweck: Spezifikation der Schnittstellenbeziehung zwischen den beiden daemon-basierten funktionalen Clustern State Management (SM) und Execution Management (EM) gemäß
AUTOSAR_AP_SWS_ExecutionManagement(R23-11). - Architektonische Einordnung: EM stellt den Ausführungsmechanismus bereit (Prozess-Lifecycle, Ressourcenüberwachung, Zustandswechselausführung), während SM die deterministische Kontrollinstanz (Policy Manager) darstellt. SM triggert Zustandswechsel für Funktionsgruppen und Maschinenstati ausschließlich über die von EM bereitgestellten Schnittstellen.
2. Komponenten, Entitäten & Schnittstellen
Entitäten & Stereotypen
State Management(«aapFunctionalCluster»,daemon-based): Konsument der Steuerungsschnittstellen; initiiert Transitionen und wertet Fehlerzustände aus.Execution Management(«aapFunctionalCluster»,daemon-based): Anbieter und Implementierer der Schnittstellen; kontrolliert Betriebssystemprozesse (Process,ProcessExecutionManifest).StateClient(«aapAPI,aapNativeInterface»): C++-API (ara::exec::StateClient) mit folgenden Methoden:+ Create(function)(statische Factory-Methode): Instanziierung des Clients mit Übergabe eines Callback-Funktors (z. B. für asynchrone Transition-Notifications / Error-Handling).+ GetExecutionError(): Synchrone Statusabfrage des letzten aufgetretenen Ausführungsfehlers im Funktionsgruppenkontext.+ GetInitialMachineStateTransitionResult(): Liefert das Ergebnis der initialen Maschinenstatus-Transition nach Plattform-Boot.+ SetState(FunctionGroupState): Future: Asynchrone Anforderung eines Wechsels in den spezifizierten Zustand einer Funktionsgruppe.
FunctionGroup(«aapAPI,aapPortInterface»): Port-basiertes Metamodell-Interface zur Repräsentation konfigurierter Funktionsgruppen mit folgender Methode:+ Create()(statische Factory-Methode): Instanziierung bzw. Auflösung des Funktionsgruppen-Repräsentanten.
FunctionGroupState(«aapAPI,aapNativeInterface»): Native C++-Programmierschnittstelle (ara::exec::FunctionGroupState) zur Adressierung von Zielzuständen einer Funktionsgruppe mit folgender Methode:+ Create()(statische Factory-Methode): Typsichere Erzeugung einer Zielzustandskonfiguration.
Beziehungen & Abhängigkeiten
- Realisierung (
InterfaceRealization/ gestrichelte Linie mit geschlossener, nicht ausgefüllter Pfeilspitze):Execution ManagementrealisiertStateClient(Native C++ API Provider).Execution ManagementrealisiertFunctionGroup(Bereitstellung der Port-Interface-Semantik auf Plattformebene).Execution ManagementrealisiertFunctionGroupState(Bereitstellung der nativen C++-Implementierung).
- Nutzungsabhängigkeit (
«use»/ gestrichelte offene Pfeillinie):State ManagementnutztStateClientfür imperative Steuerungsaufrufe.State ManagementnutztFunctionGroupStateals native Programmierschnittstelle.
- Port-Nutzungsabhängigkeit (
«use»,«aapRequiredPort»/ gestrichelte offene Pfeillinie):State Managementbesitzt einen typisierten Required Port (RPortPrototype) gegen dasFunctionGroup-PortInterface zur modellbasierten Bindung.
3. Dynamisches Verhalten & Sequenzablauf
- Initialisierung:
- SM instanziiert den Client über
ara::exec::StateClient::Create(callback). - SM prüft via
GetInitialMachineStateTransitionResult(), ob der initiale Systemboot (z. B.MachineState = Startup) durch EM erfolgreich abgeschlossen wurde.
- SM instanziiert den Client über
- Zustandsübergang (Asynchroner Pfad):
- SM instanziiert bzw. adressiert die Ziel-Funktionsgruppe über
FunctionGroup::Create(). - SM erzeugt die Zielzustands-Instanz über
FunctionGroupState::Create(). - SM ruft
SetState(targetState)mit der erzeugtenFunctionGroupState-Referenz auf. - Der Aufruf blockiert nicht, sondern liefert sofort ein
ara::core::Future<void>. - EM bestimmt alle abhängigen Prozesse, terminiert veraltete Prozesse (
SIGTERM/SIGKILLnach Timeout), startet neu erforderliche Prozesse und wartet auf derenReportExecutionState(kRunning). - Sobald die Transition vollständig abgeschlossen oder fehlgeschlagen ist, setzt EM das korrespondierende
ara::core::Promise.
- SM instanziiert bzw. adressiert die Ziel-Funktionsgruppe über
- Fehlerbehandlung:
- Scheitert ein Prozessstart oder die Zustandsverifikation, wird das
Futurefehlerhaft aufgelöst. SM ermittelt überGetExecutionError()bzw. den registrierten Callback die Fehlerursache (ExecErrc) und initiiert Fail-Safe- oder Degradations-Strategien.
- Scheitert ein Prozessstart oder die Zustandsverifikation, wird das
4. Normative Relevanz & Entwickler-Hinweise
- Zugriffsbeschränkung & IAM:
StateClientist ein geschütztes Systeminterface. In der Manifest-Modellierung muss dem SM-Prozess über Prozess-Rechte (ExecutionClientPermissionbzw.StateClientAuthorization) das exklusive Recht zur Instanziierung eingeräumt werden. Standard-Applikationen (AdaptiveApplications) dürfenStateClientnicht einbinden. - Asynchronitäts-Paradigma (
ara::core::Future):SetState()darf innerhalb des SM-Haupt-Eventloops niemals blockierend (Future::get()/Future::wait()) behandelt werden, um Deadlocks bei mehrstufigen Transitionen und Timeout-Überwachungen im SM-Daemon zu verhindern. Verwendung von.then()-Continuations oder Polling viawait_for(). - Modellierungs-Konsistenz (ARXML) & Schnittstellentrennung:
FunctionGroupfungiert als«aapPortInterface»und definiert die vertragliche Basis zwischen dem Systementwurf (ARXML) und der Bindung an State Management via«aapRequiredPort».FunctionGroupStateist als native C++-Schnittstelle («aapNativeInterface») modelliert; Instanzen werden typsicher überCreate()erzeugt und demStateClientübergeben, anstatt als separates Metamodell-PortInterface modelliert zu sein.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.