AUTOSAR_AP_SWS_ExecutionManagement
FIG-66aef658b5b6965e
480 × 340 px
1 Release(s)
Figure 5.2: Interfaces provided by Execution Management to State Management
SHA-256 Inhalts-Fingerabdruck:
66aef658b5b6965e010087f85643df91714119f38001fcf48624402c2fa1ee68
✦
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: 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.
FunctionGroupState(«aapAPI,aapPortInterface»): Port-basiertes Metamodell-Interface zur typsicheren Repräsentation und Adressierung konfigurierter Funktionsgruppen (FunctionGroup) und deren Zielzustände (FunctionGroupState).
Beziehungen & Abhängigkeiten
- Realisierung (
InterfaceRealization/ gestrichelte Linie mit geschlossener, nicht ausgefüllter Pfeilspitze):Execution ManagementrealisiertStateClient(Native C++ API Provider).Execution ManagementrealisiertFunctionGroupState(Bereitstellung der Port-Interface-Semantik auf Plattformebene).
- Nutzungsabhängigkeit (
«use»/ gestrichelte offene Pfeillinie):State ManagementnutztStateClientfür imperative API-Aufrufe.
- Port-Nutzungsabhängigkeit (
«use»,«aapRequiredPort»/ gestrichelte offene Pfeillinie):State Managementbesitzt einen typisierten Required Port (RPortPrototype) gegen dasFunctionGroupState-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 ruft
SetState(targetState)mit einer gültigenFunctionGroupState-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 ruft
- 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):
- Jede im Code über
FunctionGroupStateadressierte Entität muss zwingend imExecutionManifestdefiniert und mit den Zielprozessen (StartupConfig) verknüpft sein. - Das PortInterface
FunctionGroupStatedefiniert die vertragliche Basis zwischen dem Systementwurf (ARXML) und der C++-Kompilierzeitbindung (ara::exec::FunctionGroupState).
- Jede im Code über
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.