AUTOSAR_AP_EXP_SWArchitecture
FIG-aa102024e40b7d7b
450 × 170 px
2 Release(s)
Figure 11.18: Scenario: Get FileStorage Size
SHA-256 Inhalts-Fingerabdruck:
aa102024e40b7d7b3ded876815f1920a835eb095b04670ac4762ef8c3b01b240
✦
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-Sequenzdiagramm (Interaktionsdiagramm).
- Technischer Zweck: Spezifikation des Kontrollflusses zur Abfrage der aggregierten Belegungsgröße eines Datei-Containers (
FileStorage) im Kontext der AUTOSAR Adaptive Platform (AP). - Architektur-Kontext: Funktionaler Cluster Persistency (
ara::per). Das Szenario demonstriert die Kapselung und Abstraktion des zugrundeliegenden Host-/POSIX-Dateisystems gegenüber der Anwendungsebene zwecks Einhaltung der Resource-Quota- und Sandbox-Grenzen.
2. Komponenten, Entitäten & Schnittstellen
:Adaptive Application(Akteur / Lifeline):- Anwendungsinstanz/Prozess im User Space, agiert als Service-Consumer.
«aapFunctionalCluster» :Persistency(Architekturbaustein / Lifeline):- Standardisierter AUTOSAR Adaptive Platform Functional Cluster (
ara::per). - Kapselt Persistenzstrategien (Key-Value-Storage und File-Storage).
- Bereitgestellte Schnittstelle:
ara::per::FileStorage::GetCurrentFileStorageSize().
- Standardisierter AUTOSAR Adaptive Platform Functional Cluster (
:Operating System(Akteur / Lifeline):- POSIX-konformes Betriebssystem (z. B. QNX Neutrino, Linux RT).
- Verwaltet Virtual File System (VFS), Inodes und Blocktreiber.
- Schnittstelle: Native OS-Systemaufrufe, im Diagramm als informativer Aufruf (
getSize()mit Stereotyp«aapInformative») abstrahiert.
3. Dynamisches Verhalten & Sequenzablauf
- Trigger: Die
:Adaptive Applicationsetzt den synchronen AufrufGetCurrentFileStorageSize()auf einer geöffneten Instanz vonara::per::FileStorageab. - OS-Delegation: Der Cluster
:Persistencyinitiiert intern den AufrufgetSize()an das:Operating System. Dies entspricht OS-seitig der Abfrage der physischen Dateigrößen bzw. Verzeichniseinträge (z. B. viastat()/fstat()/statvfs()oder Verzeichnistraversierung überreaddir()). - Ergebniserfassung & Rückkehr:
- Das Betriebssystem liefert die File-Metadaten an
:Persistencyzurück. :Persistencyaggregiert die Bytegrößen aller zugeordneten persistenten Dateien und terminiert die synchrone Ausführung mit Rückgabe des akkumulierten Werts alsara::core::Result<std::uint64_t>.- Tritt während des OS-Zugriffs ein Fehler auf (z. B. I/O-Fault, unvollständige Metadaten), bricht die Sequenz ab und transformiert den Fehler in einen
ara::per::PerErrc(z. B.kPhysicalStorageFailure).
- Das Betriebssystem liefert die File-Metadaten an
4. Normative Relevanz & Entwickler-Hinweise
- API-Vertrag (Applikationsebene):
- Aufruf ist blockierend/synchron. Entwickler dürfen
GetCurrentFileStorageSize()nicht in zeitkritischen Thread-Kontexten oder harten Echtzeitschleifen ausführen, da je nach Dateianzahl und Storage-Typ signifikante I/O-Latenzen entstehen. - Der Rückgabewert ist typisiert als
ara::core::Result<std::uint64_t>und erzwingt zwingend eine Fehlerbehandlung vor dem Dereferenzieren des Werts.
- Aufruf ist blockierend/synchron. Entwickler dürfen
- Platform- & Stack-Implementierung:
- Der Persistency-Stack muss sicherstellen, dass nur Dateien erfasst werden, die zum Namespace und Scope des jeweiligen
PersistencyFileStoragegehören (Vermeidung von Information Leakage). - Zur Latenzoptimierung empfiehlt sich stack-intern ein aggregiertes Tracking bei Schreiboperationen oder Caching der Dateigrößen, um wiederholte Traversierungen des VFS zu minimieren.
- Der Persistency-Stack muss sicherstellen, dass nur Dateien erfasst werden, die zum Namespace und Scope des jeweiligen
- Konfigurationsbezug (Manifeste):
- Die ermittelte Größe korreliert direkt mit dem im Execution/Platform-Manifest definierten Parameter
PersistencyFileStorage.maximumAllowedSize. - Dient typischerweise dem präventiven Quota-Monitoring der Applikation, bevor Schreiboperationen via
OpenFileWrite()oderWrite()mit Quota-Exceeded-Fehlern fehlschlagen.
- Die ermittelte Größe korreliert direkt mit dem im Execution/Platform-Manifest definierten Parameter
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.