AUTOSAR_AP_SWS_OperatingSystemInterface
FIG-086a62f2d6202511
592 × 401 px
1 Release(s)
Figure 7.3: minimal state machine of a task
SHA-256 Inhalts-Fingerabdruck:
086a62f2d620251114b454d03ed621168999f843dc76738a7b45572f88c5cb6f
✦
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) zur Darstellung des minimalen Task-Lebenszyklus.
- Technischer Zweck: Definition des normativen Referenz-Zustandsautomaten für Tasks im Rahmen des AUTOSAR Adaptive Platform (AP) Operating System Interface (
AUTOSAR_AP_SWS_OperatingSystemInterface) und der ARTI-Tracing-Schnittstelle (AUTOSAR Run-Time Interface). - Architektur-Einordnung: Ein Task bildet die kleinste durch das Betriebssystem schedulbare Einheit (analog zu Threads unter POSIX/OS-Ebene). Das Diagramm harmonisiert heterogene OS-Implementierungen (z. B. Linux, QNX, PikeOS), indem es eine einheitliche Abstraktion für Run-Time-Tracing, Scheduling-Analyse und Profiling bereitstellt.
2. Komponenten, Entitäten & Schnittstellen
- Zustände (States):
Non-existent: Pseudo-Initialzustand vor der Allokation/Instanziierung des Tasks durch das OS.Ready: Der Task ist ausführungsbereit und befindet sich in der Scheduling-Warteschlange des Kernels.Running: Der Task belegt aktuell eine CPU-Core-Ressource und führt Instruktionen aus.Waiting: Der Task ist blockiert und wartet auf ein externes Ereignis, eine OS-Ressource (z. B. Semaphor, Mutex, Condition Variable) oder einen anderen Thread; er ist nicht schedulbar.Terminated: Finaler Zustand; der Task hat die Ausführung beendet und Ressourcen werden freigegeben.
- Transitionstrigger / Trace-Punkte:
Create: Übergang vonNon-existentnachReady(Task-Erzeugung).Schedule: Zuweisung von CPU-Rechenzeit an den Task (Ready→Runningbzw. Self-TransitionRunning→Running).Preempt: Verdrängung des Tasks durch einen höherpriorisierten Task oder Ablauf des Time-Slices (Running→Ready).Wait: Blockierender Aufruf oder Warten auf OS-Synchronisationsobjekte (Running→Waiting).Release: Eintreffen des erwarteten Events / Entsperren des Synchronisationsobjekts (Waiting→Ready).Terminate: Beendigung des Tasks (Running→Terminated).
3. Dynamisches Verhalten & Sequenzablauf
- Initialisierung & Dispatching:
Non-existent$\xrightarrow{\text{Create}}$Ready: Das OS instanziiert den Task-Kontrollblock und reiht den Task in die Ready-Queue ein.Ready$\xrightarrow{\text{Schedule}}$Running: Der Scheduler wählt den Task aus; Kontextwechsel auf die CPU.
- Laufzeit-Scheduling & Verdrängung:
Running$\xrightarrow{\text{Preempt}}$Ready: Preemption durch Prioritätsinversion-Auflösung, höherpriore Threads oder Round-Robin-Zeitscheibenablauf.Running$\xrightarrow{\text{Schedule}}$Running: Self-Transition; signalisiert Scheduling-Ereignisse ohne Zustandswechsel (z. B. Quell-/Zielkernwechsel bei SMP-Migration oder Erneuerung des Scheduling-Budgets).
- Blockierung & Reaktivierung:
Running$\xrightarrow{\text{Wait}}$Waiting: Eintritt in den blockierenden Wartezustand durch Synchronisationsprimitive (POSIXpthread_mutex_lock,pthread_cond_wait, Semaphore).Waiting$\xrightarrow{\text{Release}}$Ready: Reaktivierung nach Event-Eintreffen. Ein direkter Übergang vonWaitingnachRunningist ausgeschlossen; der Task muss stets überReadydie Scheduler-Warteschlange passieren.
- Terminierung:
Running$\xrightarrow{\text{Terminate}}$Terminated: Geordnetes Beenden (pthread_exit, Rücksprung der Task-Funktion) oder Abbruch.
4. Normative Relevanz & Entwickler-Hinweise
- ARTI-Tracing-Konformität:
- Die Trace-Events zwischen
ReadyundRunning(Schedule,Preempt) sind für konforme AP-OS-Adaptionen zwingend verpflichtend (mandatory). - Für Betriebssysteme, die nicht explizit zwischen
ReadyundWaitingdifferenzieren (oder deren Kernel-Hooks dies nicht isolieren), sind die ARTI-Trace-Events für denWaiting-Zustand optional.
- Die Trace-Events zwischen
- Trace-Decoder & Profiler-Implementierung:
- Trace-Analysewerkzeuge müssen tolerant gegenüber schwach geordneten Declarations/Log-Outputs sein, da Erzeugung, Modifikation und Destruktion in Multicore-/Multiprozess-Umgebungen nicht zwingend strikt synchron serialisiert erfasst werden.
- Einschränkungen für Plattform- & OS-Integratoren:
- Direkte Übergänge wie
Waiting→Runningsind semantisch unzulässig und führen bei ARTI-Validatoren zu Protokollverletzungen. - POSIX-Thread-Zustände der zugrundeliegenden OS-Schicht müssen deterministisch auf diese minimale Zustandsmenge abgebildet werden.
- Direkte Übergänge wie
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.