AUTOSAR_EXP_SWArchitecture
FIG-0cf05ecf8a5ab7ef
280 × 298 px
1 Release(s)
Figure 9.3: Interfaces for state reporting
SHA-256 Inhalts-Fingerabdruck:
0cf05ecf8a5ab7effd284e16a60aab592792c6a01183b02653ce6a19470dbed1
✦
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-Komponenten- und Schnittstellendiagramm (AUTOSAR AP Architecture Blueprint).
- Technischer Zweck: Spezifikation des Zustandsmelde-Mechanismus (
State Reporting) zwischen OS-Prozessen und dem Plattform-Daemon des Functional Clusters Execution Management (EM) gemäß AUTOSAR Adaptive Platform R21-11. - Architektonische Einordnung: EM ist für den deterministischen Lebenszyklus aller Prozesse zuständig. Die Schnittstelle entkoppelt den überwachenden Daemon von der überwachten Applikation über eine clientseitige Laufzeitbibliothek.
2. Komponenten, Entitäten & Schnittstellen
Adaptive Application(UML-Komponente):- Repräsentiert den Instanz-Prozess einer Anwendungs- oder Plattform-Software auf der Adaptive Machine.
Execution Management(UML-Komponente):- Stereotyp:
«aapFunctionalCluster», Ausprägung:daemon-based. - Zentraler Hintergrunddienst im User Space zur Prozessverwaltung, Zustandsverifikation und Integritätsprüfung.
- Stereotyp:
ExecutionClient(Schnittstelle):- Stereotypen:
«aapAPI»,«aapNativeInterface». - C++-Laufzeitschnittstelle (
ara::exec::ExecutionClient), lokal in den Prozess der Applikation gelinkt. - Operation:
+ ReportExecutionState(ExecutionState): Result- Parameter:
ExecutionState(Typara::exec::ExecutionState, z. B.kRunning). - Rückgabe:
Result(ara::core::Result<void>für fehlerbasiertes Error-Handling ohne C++-Exceptions).
- Parameter:
- Stereotypen:
- Beziehungen:
Adaptive Application→ExecutionClient:«use»-Abhängigkeit; die Applikation instanziiert und ruft die Client-Klasse auf.Execution Management daemon-based→ExecutionClient: Schnittstellenrealisierung (Interface Realization, gestrichelte Linie mit geschlossener, nicht ausgefüllter Pfeilspitze); der Daemon implementiert die serverseitige Logik hinter der nativen API via Betriebssystem-IPC.
3. Dynamisches Verhalten & Sequenzablauf
- Prozessstart: EM erzeugt den Prozess der
Adaptive Application(via OS-Systemaufrufefork/execgemäß dem zugrundeliegendenExecutionManifest). - Initialisierung: Die Applikation führt ihre interne Initialisierung aus (Plattformbasis, Memory Allocations, Threads,
ara::core::Initialize()). - Zustandsmeldung:
- Sobald die Applikation funktionsbereit ist, ruft sie synchron
ReportExecutionState(ExecutionState::kRunning)am lokalenExecutionClientauf. - Der
ExecutionClientserialisiert die Nachricht und übermittelt sie per schneller OS-Interprozesskommunikation (Unix Domain Sockets, Pipes oder POSIX Message Queues) an den EM-Daemon.
- Sobald die Applikation funktionsbereit ist, ruft sie synchron
- Zustandsübergang in EM:
- Der EM-Daemon empfängt den Report, verifiziert die Prozessidentität (PID/UID) und schaltet den internen Prozessstatus auf Running.
- Die Operation kehrt zur Applikation mit einem erfolgreichen
ara::core::Result<void>zurück.
- Timeout- und Fehlerbehandlung:
- Sendet die Applikation den Status
kRunningnicht innerhalb des im Manifest konfiguriertenstartupTimeout, deklariert EM einen Startup-Fehler. - Mögliche Konsequenzen: Prozess-Terminierung (
SIGTERM/SIGKILL), Restart-Versuch oder Fehlermeldung an das State Management (SM) zur Einleitung von Recovery-Aktionen.
- Sendet die Applikation den Status
4. Normative Relevanz & Entwickler-Hinweise
- Normative Pflicht: Jeder durch EM gestartete Prozess (sowohl
Adaptive Applicationals auch Plattform-Cluster-Dienste) muss seinen Zustand überara::exec::ExecutionClientmelden. Ein Unterlassen führt zum Timeout-Abbruch durch EM. - Native Interface vs.
ara::com:ExecutionClientist bewusst ein«aapNativeInterface»und kein serviceorientierterara::com-Dienst. Dies gewährleistet, dass das State-Reporting ohne Abhängigkeit von Communication Management, IPC-Daemonen oder Service-Discovery in frühesten Boot-Phasen sicher funktioniert. - Timing-Budgetierung: Embedded-Entwickler müssen sicherstellen, dass die Vorinitialisierung (inklusive Blockaden durch Dateizugriffe, Hardware-Initialisierung etc.) vor dem
ReportExecutionState-Aufruf strikt unter dem konfiguriertenstartupTimeoutdesExecutionManifestbleibt. - Aufruf-Position: Der Aufruf von
ReportExecutionState(ExecutionState::kRunning)markiert den Eintritt in die zyklische Arbeitsphase bzw. Service-Bereitschaft und sollte unmittelbar vor Eintritt in die Event-Loop / Worker-Threads erfolgen.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.