AUTOSAR_AP_SWS_OperatingSystemInterface
FIG-95da84422953794d
478 × 561 px
1 Release(s)
Figure 7.1: Process - Task/Thread Model
SHA-256 Inhalts-Fingerabdruck:
95da84422953794d08166ada97be35a471b1c3b33a7d98a90d4600f72ea61dcd
✦
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: Strukturelles Hierarchie- und Ausführungsmodell (Process-Task/Thread Tree).
- Technischer Zweck & Einordnung: Spezifikation des Ausführungs- und Abstraktionsmodells im AUTOSAR Adaptive Platform (AP) Operating System Interface (
ara::exec/ OS). Das Diagramm definiert das fundamentale Mapping von OS-Instanzen auf geschützte Prozesse (Processes) sowie die Kapselung von leichtgewichtigen Ausführungseinheiten (Tasks/Threads, POSIX-Threadspthread) innerhalb dieser Prozesse.
2. Komponenten, Entitäten & Schnittstellen
- Entitäten:
- OS (Operating System): Unterlagerter POSIX-konformer Echtzeit-Kernel der Adaptive Platform.
- Process (
Process 1,Process 3,Process 5,Process 10): Unabhängige Betriebssystem-Prozessinstanzen. Repräsentieren getrennte virtuelle Adressräume (MMU-Isolation, Ressourcenkontingente, User/Group-IDs). - Task / Thread (
Task 1…Task 10): Schedulbare Ausführungseinheiten (Threads) innerhalb des virtuellen Adressraums eines Prozesses.
- Beziehungen & Kardinalitäten:
- OS → Process: 1 : N (Relation
create Process). Das OS hostet und verwaltet mehrere isolierte Prozesse. - Process → Task/Thread: 1 : N bzw. 1 : 1 (Relation
create Thread).- Multithreaded:
Process 1kapselt 5 Threads (Task 1, 2, 4, 6, 7);Process 5kapselt 3 Threads (Task 5, 8, 9). - Single-Threaded:
Process 3(Task 3) undProcess 10(Task 10) kapseln jeweils genau einen Thread (Initial-/Main-Thread).
- Multithreaded:
- OS → Process: 1 : N (Relation
- Kopplung & Adressierung:
- Threads innerhalb desselben Prozesses teilen sich globalen Speicher, Heap und Dateideskriptoren.
- Prozesse sind gegeneinander vollständig memory-isoliert.
3. Dynamisches Verhalten & Sequenzablauf
- Prozessinitialisierung (
create Process):- Das OS bzw. das Execution Management (
ara::exec) instanziiert Prozesse typischerweise via POSIX-Mechanismen (z. B.posix_spawn()/ Loader-Instanziierung;fork()ist in sicherheitskritischen AP-POSIX-Profilen wie PSE51 restriktiert/untersagt).
- Das OS bzw. das Execution Management (
- Thread-Erzeugung (
create Thread):- Nach Initialisierung des initialen Threads durch das OS erzeugt der jeweilige Prozess bei Bedarf weitere Threads via POSIX-Threading-API (
pthread_create()).
- Nach Initialisierung des initialen Threads durch das OS erzeugt der jeweilige Prozess bei Bedarf weitere Threads via POSIX-Threading-API (
- Scheduling & Nebenläufigkeit:
- Jeder
Taskwird vom OS-Scheduler als eigene Scheduling-Entity behandelt (präemptives Echtzeit-Scheduling, z. B.SCHED_FIFOoderSCHED_RRmit zugeordneter Priorität).
- Jeder
- Synchronisation & Interprozesskommunikation:
- Prozessintern: Synchronisation über
pthread_mutex_*,pthread_cond_*oder atomare C++11/14/17-Primitive. - Prozessübergreifend: Kommunikation erfordert explizite IPC bzw. das AUTOSAR-Kommunikations-Framework (
ara::comvia Shared Memory oder Socket-Bindings).
- Prozessintern: Synchronisation über
4. Normative Relevanz & Entwickler-Hinweise
- POSIX-Schnittstellenprofil (PSE51/PSE52): Entwickler greifen für Threading auf standardisierte POSIX-C-APIs oder standardkonforme C++-Threading-Klassen (
std::thread) zu, welche vom unterlagerten AP-OS unterstützt werden müssen. - Konfiguration via Execution Manifest:
- Prozessinstanziierung, CPU-Affinität (Core Pinning), Resource Groups, Scheduling-Policies (
SCHED_FIFO, etc.) und Basis-Prioritäten werden deklarativ im Execution Manifest hinterlegt und durchara::execzur Startup-Phase umgesetzt.
- Prozessinstanziierung, CPU-Affinität (Core Pinning), Resource Groups, Scheduling-Policies (
- Safety & Determinismus (ISO 26262):
- Dynamische Thread-Erzeugung zur Laufzeit nach der Startphase verletzt häufig deterministische Safety-Anforderungen. Thread-Pools und Task-Instanziierungen sollten in der Initialisierungsphase (
kRunning) abgeschlossen sein. - Stack-Größen (
pthread_attr_setstacksize) müssen zur Vermeidung von Stack-Overflows applikationsspezifisch vorkonfiguriert und überwacht werden.
- Dynamische Thread-Erzeugung zur Laufzeit nach der Startphase verletzt häufig deterministische Safety-Anforderungen. Thread-Pools und Task-Instanziierungen sollten in der Initialisierungsphase (
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.