AUTOSAR_AP_SWS_OperatingSystemInterface
FIG-22eeb009104cbc4c
592 × 402 px
1 Release(s)
Figure 4.3: Minimal state machine of a task
SHA-256 Inhalts-Fingerabdruck:
22eeb009104cbc4c4ba817b6bb38a76fab7675c263de909a0622c4e992e36a20
✦
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
- Klassifikation: UML-Zustandsdiagramm (State Machine Diagram) nach AUTOSAR-Metamodell-Konvention zur Spezifikation des minimalen Task-Lebenszyklus.
- Architektur-Kontext: Definiert im AUTOSAR AP Technical Report on Operating System Tracing Interface (
AUTOSAR_AP_TR_OperatingSystemTracingInterface, Document ID 1083, R23-11; referenziert viaRS_OSI_00210). - Funktionale Einordnung: Dient als normative Referenz-Zustandsmaschine für ARTI (AUTOSAR Run-Time Interface). Sie standardisiert die Trace-Punkte und Statusübergänge des OS-Schedulers auf der Adaptive Platform (POSIX-/RTOS-Ebene), um Scheduling-Vorgänge deterministisch für externe Timing- und Profiling-Tools observierbar zu machen.
2. Komponenten, Entitäten & Schnittstellen
- Entität:
- Task: Kleinste schedulbare Ausführungseinheit des Betriebssystems (im Kontext der Adaptive Platform typischerweise ein POSIX-Thread/OS-Thread).
- Zustände (States & Pseudo-States):
Non-existent(Initialer Pseudozustand): Task ist dem Scheduler noch nicht bekannt bzw. Ressourcen sind nicht allokiert.Ready: Task ist lauffähig, befindet sich in der Run-Queue des Schedulers und wartet auf CPU-Zuteilung.Running: Task wird aktiv auf einem Prozessorkern ausgeführt.Waiting: Task ist blockiert (wartet auf Synchronisationsobjekte, Events, I/O, Timer oder fremde Threads); nicht schedulbar.Terminated(Endzustand): Task-Ausführung ist abgeschlossen, Deallokation der Thread-Ressourcen eingeleitet.
- Trace-Ereignisse / Trigger (ARTI-Schnittstellenpunkte):
Create,Schedule,Preempt,Wait,Release,Terminate.
3. Dynamisches Verhalten & Sequenzablauf
- Erzeugung & Einreihung:
Non-existent→Readyüber TriggerCreate: Task-Erzeugung (z. B.pthread_create()). Der Task wird initialisiert und direkt in die Ready-Queue eingereiht.
- Scheduling & Verdrängung (Hot-Path):
Ready→Runningüber TriggerSchedule: Der OS-Scheduler selektiert den Task und vollzieht den Context-Switch-In.Running→Readyüber TriggerPreempt: Verdrängung durch einen höherprioren Task oder Ablauf der Time-Slice-Periode (Context-Switch-Out).Running→Runningüber TriggerSchedule(Self-Loop): Re-Scheduling auf demselben Core (z. B. Bestätigung des Zeitschlitzes, Prioritätsänderung zur Laufzeit oder Yield ohne Task-Wechsel).
- Blockierung & Entsperrung (Synchronisation):
Running→Waitingüber TriggerWait: Synchrone Blockade durch Aufruf blockierender Primitiven (z. B. Mutex, Semaphor, Condition Variable, Message Queue oder Sleep).Waiting→Readyüber TriggerRelease: Asynchrones oder synchrones Erfüllen der Wartebedingung (Signal, Event, Semaphor-Freigabe). Wichtig: Kein direkter Übergang nachRunning; der Task muss stets überReadyneu disponiert werden.
- Beendigung:
Running→Terminatedüber TriggerTerminate: Beendigung des Threads (z. B.pthread_exit()oder reguläres Verlassen der Startroutine).
4. Normative Relevanz & Entwickler-Hinweise
- ARTI-Adapter-Implementierung:
- Betriebssystem- und Adapter-Entwickler müssen native Kernel- bzw. POSIX-Hooks strikt auf diesen Zustandsautomaten abbilden.
- Ungültige Übergänge (z. B.
Waiting→Runningohne dazwischenliegendesRelease/Schedule) verletzen die ARTI-Konformität und führen zu Inkonsistenzen in Analyse-Tools (z. B. fehlerhafte Berechnungen der CPU-Last oder Blockadezeiten).
- Abstraktion proprietärer RTOS-Zustände:
- Das Modell stellt die minimale gemeinsame Schnittstelle dar (Minimal state machine). Kernel-spezifische Zwischenzustände (z. B. Linux Uninterruptible Sleep/D-State, Zombie, QNX Reply-Blocked) müssen deterministisch in die Zustände
WaitingoderReadyprojiziert werden.
- Das Modell stellt die minimale gemeinsame Schnittstelle dar (Minimal state machine). Kernel-spezifische Zwischenzustände (z. B. Linux Uninterruptible Sleep/D-State, Zombie, QNX Reply-Blocked) müssen deterministisch in die Zustände
- Echtzeitanforderungen an Trace-Hooks:
- Da die Trigger
Schedule,PreemptundReleasedirekt im Dispatcher- und Interrupt-Kontext des Betriebssystems aufgerufen werden, müssen die entsprechenden Trace-Adapter lock-free, reentrant und mit minimalem Ausführungs-Overhead (Zero-Copy) implementiert sein, um Scheduling-Jitter zu verhindern.
- Da die Trigger
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.