OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme · 2006. 7. 17. · Einführung OSEK-OS...

Post on 06-Mar-2021

3 views 0 download

transcript

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

OSEK / OSEKtimeAusgewählte Kapitel eingebetteter Systeme

Wilhelm HaasWilhelm.Haas@informatik.stud.uni-erlangen.de

Friedrich-Alexander-Universität Erlangen-NürnbergInstitut für Informatik

Lehrstuhl 4

15. Juli 2006

1 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Überblick

1 EinführungOSEK-GremiumOSEK-Standards

2 OSEK-OS

3 OSEKtime-OS

4 Zusammenfassung

2 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

OSEK-Gremium

OSEK-Gremium

OSEK = Offene Systeme und deren Schnittstellen für dieElektronik im Kraftfahrzeug1993 gegründetindustrielles StandardisierungsgremiumGründungsmitglieder:

BMW AGSiemens AGDaimler-Benz AG...

1994 Zusammenschluss mit VDX1-Initiative zu OSEK/VDX

1Vehicle Distributed Executive3 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

OSEK-Standards

OSEK-Standards

Geschaffene Standards:OSEK-OS: Event Triggered Realtime Operating SystemOSEKtime-OS: Time Driven Realtime Operating SystemOSEK-OIL: OSEK Implementation LanguageOSEK-ORTI: OSEK RunTime InterfaceOSEK-COM: COMmunicationOSEK-NM: OSEK Network Management

4 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Überblick

1 Einführung

2 OSEK-OSArchitekturTask-ManagementInterrupt-BehandlungEreignismechanismusBetriebsmittelverwaltungFehlerbehandlung

3 OSEKtime-OS

4 Zusammenfassung

5 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Architektur

Architektur

OSEK-OS:statisches, ereignisgesteuertes Betriebssystem

Betriebsmittel und Tasks müssen noch während derEntwicklung konfiguriert werden

4 Konformitätsklassen legen fest:welche Task-Typen verwendet werdenAnzahl der Aktivierungen eines TasksAnzahl Tasks pro Prioritätsebene

6 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Architektur

Interrupt-Ebene Kategorie 2Kategorie 1

Logische Ebene für Scheduling-Aktivitäten

Task-Ebene Einfache-Tasks

Komplexe-Tasks

Priorität

3 Prozesse:Prozess für die Interrupt-Behandlung (höchste Priorität)Prozess für den SchedulerProzess für die Abarbeitung der Tasks (niedrigste Priorität)

7 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Task-Management

Task-Management

OSEK unterscheidet zwischen zwei Task-Typen:Komplexe Tasks

erwarten die Zuteilung von Betriebsmittelndürfen auf Ereignise wartenkönnen blockieren⇒ mehrere Synchronisationspunkte

Einfache Taskslaufen durch ohne zu blockieren⇒ zwei Synchronisationspunkte

8 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Task-Management

Komplexe TasksEinfache-TasksKomplexe-Tasks

laufend

suspendiert

bereit

terminiere

aktiv

iere

verd

räng

e

star

te

laufend

suspendiert

bereit

terminiere

aktiv

iere

verd

räng

e

star

tewartend

warte

signalisieren

9 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Task-Management

Einfache TasksEinfache-TasksKomplexe-Tasks

laufend

suspendiert

bereit

terminiere

aktiv

iere

verd

räng

e

star

te

laufend

suspendiert

bereit

terminiere

aktiv

iere

verd

räng

e

star

tewartend

warte

signalisieren

10 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Task-Management

Scheduling:Task werden nach ihren Prioritäten eingeplantScheduling-Arten:

verdrängendes Schedulingnichtverdrängendes SchedulingMischbetrieb (Mischung aus verdrängendem undnichtverdrängendem Scheduling)

11 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Interrupt-Behandlung

Interrupt-Behandlung

Es existieren zwei Interrupt-Behandlungs (ISR) Kategorien :ISR der Kategorie 1

verwendet keine Systemfunktionenhat keinen Einfluss auf den unterbrochenen Task

ISR der Kategorie 2sind für die Behandlungsroutinen des Benutzers vorgeseheneingeschränkte nutzung von Systemfunktionen

12 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Interrupt-Behandlung

Hardware kümmert sich um die PrioritätenvergabeHardware ist auch für die Einplanung zuständigAktivierung und Deaktivierung der Interrupts möglichFehler führen zu einem undefinierten Verhalten

13 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Ereignismechanismus

Ereignismechanismus

Ereignise sind Objektedürfen nur von den komplexen Tasks verwendet werdensind Träger von binären Informationennur vom Besitzer zurücksetzbarBÖSE (erschwerte Antwortzeitanalyse)

14 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Betriebsmittelverwaltung

Betriebsmittelverwaltung

Koordinierung des Zugriffs konkurierender Tasks verschiedenerPrioritäten auf gemeinsame Betriebsmittelauch auf ISR erweiterbarstellt sicher, dass keine zwei Tasks zur selben Zeit die selbeRessource besitzen

15 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Betriebsmittelverwaltung

Wann ist dieser Mechanismus nützlich?bei verdrängbaren Tasksbei gemeinsamer Betriebsmittelnutzung zwischen Tasks undISRsbei gemeinsamer Betriebsmittelnutzung zwischen ISRs

16 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Betriebsmittelverwaltung

Probleme:blockierende Synchronisation

Deadlock(unkontrollierte) Prioritätsumkehr

17 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Betriebsmittelverwaltung

Beispiel für einen Deadlock

TASK 2

TASK 1

t1 t2 t3 t4 t5 t6 t

PRIORITÄT

Ressource 1 (R1) Ressource 2 (R2)

Zeit (t) TASK 1 TASK 2

1 wird aktiviert und gestartet2 belegt Ressource 1 (R1)3 wird verdrängt wird aktiviert und gestartet4 belegt Ressource 2 (R2)5 wird gestartet möchte R1, wird blockiert6 möchte R2, wird blockiert

18 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Betriebsmittelverwaltung

Beispiel für eine (unkontrollierte) Prioritäsumkehr

TASK 2

TASK 1

t

PRIORITÄT

TASK 3

t1 t2 t3 t4 t5 t6 t7 t8 t9 t10

Ressource

Zeit (t) TASK 1 TASK 2 TASK 3

1 wird aktiviert und gestartet2 belegt Ressource 1 (R1)3 wird verdrängt wird aktiviert und gestartet4 wird gestartet möchte R1, wird blockiert5 wird aktiviert und gestartet6 wird gestartet terminiert7 gibt R1 frei, wird verdrängt wird gestartet und belegt R18 gibt R1 frei9 wird gestartet terminiert10 terminiert

19 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Betriebsmittelverwaltung

Lösung: OSEK Priority-Ceiling-Protokoll

Vier Regeln sind einzuhalten:1 Prioritatsobergrenze (r) = max (T .Prioritat : T .belegt (r))∀T ∈ Tasks, ∀r ∈ Betriebsmittel

2 Ein Task darf ein Betriebsmittel nur belegen wenn seinePriorität ≤ der Prioritätsobergrenze des Betriebsmittels ist.

3 Die Priorität des Tasks wird auf die Prioritätsobergrenzeangehoben.

4 Freigabe der Betriebsmittel in der LIFO-Reihenfolge. Dabeiwird die Priorität des Tasks herabgesetzt.

20 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Betriebsmittelverwaltung

Lösung: OSEK Priority-Ceiling-Protokoll

Vier Regeln sind einzuhalten:1 Prioritatsobergrenze (r) = max (T .Prioritat : T .belegt (r))∀T ∈ Tasks, ∀r ∈ Betriebsmittel

2 Ein Task darf ein Betriebsmittel nur belegen wenn seinePriorität ≤ der Prioritätsobergrenze des Betriebsmittels ist.

3 Die Priorität des Tasks wird auf die Prioritätsobergrenzeangehoben.

4 Freigabe der Betriebsmittel in der LIFO-Reihenfolge. Dabeiwird die Priorität des Tasks herabgesetzt.

20 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Betriebsmittelverwaltung

Lösung: OSEK Priority-Ceiling-Protokoll

Vier Regeln sind einzuhalten:1 Prioritatsobergrenze (r) = max (T .Prioritat : T .belegt (r))∀T ∈ Tasks, ∀r ∈ Betriebsmittel

2 Ein Task darf ein Betriebsmittel nur belegen wenn seinePriorität ≤ der Prioritätsobergrenze des Betriebsmittels ist.

3 Die Priorität des Tasks wird auf die Prioritätsobergrenzeangehoben.

4 Freigabe der Betriebsmittel in der LIFO-Reihenfolge. Dabeiwird die Priorität des Tasks herabgesetzt.

20 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Betriebsmittelverwaltung

Lösung: OSEK Priority-Ceiling-Protokoll

Vier Regeln sind einzuhalten:1 Prioritatsobergrenze (r) = max (T .Prioritat : T .belegt (r))∀T ∈ Tasks, ∀r ∈ Betriebsmittel

2 Ein Task darf ein Betriebsmittel nur belegen wenn seinePriorität ≤ der Prioritätsobergrenze des Betriebsmittels ist.

3 Die Priorität des Tasks wird auf die Prioritätsobergrenzeangehoben.

4 Freigabe der Betriebsmittel in der LIFO-Reihenfolge. Dabeiwird die Priorität des Tasks herabgesetzt.

20 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Betriebsmittelverwaltung

Beispiel für Priority-Ceiling-Protokoll

TASK 2

TASK 1

t1

t2 t3 t4 t5 t6

t

TASKS

TASK 3

t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12

PRIORITÄTVON TASK 1

3

2

1

t1 t2 t6 t8 t10 t12 tRessource 1 (R1) Ressource 2 (R2)

Zeit (t) TASK 1 TASK 2 TASK 3

1 wird aktiviert und gestartet2 belegt R1, hat Priorität 23 wird verdrängt wird aktiviert und gestartet4 wird aktiviert5 startet wird terminiert6 belegt R2, bekommt Priorität 37 wird aktiviert8 gibt R2 frei, hat Priorität 2 startet9 startet terminiert10 gibt R1 frei, hat Priorität 1 wird gestartet11 terminiert12 terminiert

21 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Fehlerbehandlung

Fehlerbehandlung

verschiedene Hook-Routinen stehen zur Verfügungwerden in abhängigkeit vom Systemzustand ausgelöstHook-Routinen haben höhere Prioritäten als alle Tasks desSystemswerden nicht von ISR der Kategorie 2 unterbrocheneingeschränkte Systemfunktionnutzung

22 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Fehlerbehandlung

Einsatzarten:beim Systemstart (StartupHook)vor dem Herunterfahren des Systems (ShutdownHook)zum Debuggen und für Zeitmessungen (PreTaskHook,PostTaskHook)im Fehlerfall (ErrorHook)

23 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Überblick

1 Einführung

2 OSEK-OS

3 OSEKtime-OSArchitekturTask-ManagementInterrupt-BehandlungUhrensynchronisation

4 Zusammenfassung

24 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Architektur

Architektur

statisches, zeitgesteuertes Echtzeitsystemalle Parameter bekannt

AktivierungspunkteDeadlinesAusführungszeiten

Abarbeitung einer vorher berechneten Ablauftabelle

25 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Architektur

Nichtmaskierbare Interrupts

OSEKtime Dispatcher

Maskierbare Interrupts

Time-Triggered Tasks

Idle Task

OSEKInterruptbehandlung

OSEKScheduler

OSEKTasks

Priorität

26 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Task-Management

Task-Management

sequenzielle Ausführung nach einem statischen Ablaufplanlaufen durch ohne zu blockierenverdrängbares SchedulingTerminierung nur durch sich selbst

27 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Task-Management

laufend

suspendiert

verdrängt

terminiere

verd

räng

e

wie

der a

ufne

hmen

aktiviere

28 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Task-Management

Deadlines

Strenge-Task-Deadline-BeobachtungBeobachter wird direkt zum Zeitpunkt der Deadline aktiviert.Keine-Strenge-Task-Deadline-BeobachtungBeobachter wird an einer beliebigen Stelle, nach der Deadlineaber vor dem Rundenende, positioniert.

29 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Interrupt-Behandlung

Interrupt-Behandlung

jeder Interrupt hat sein Intervall, in dem dieser nur maximaleinmal behandelt wirdReaktivierungszeitpunkte werden in der Ablauftabelle definiertnichtmaskierbare Interrupts können zu unvorhersagbarenVerzögerungen führenkeine Möglichkeit Interrupts manuell zu deaktivieren

30 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Interrupt-Behandlung

IE1,1 IE2,1 IE1,2 IE2,2 IE1,3t

Interrupt 1

Interrupt 2

tn tn+1 tn+2 tn+3 tn+4 tn+5

31 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Uhrensynchronisation

Uhrensynchronisation

jede ECU besitzt eine lokale Zeitbei Existenz einer globalen Zeit, muss die Lokale mit derGlobalen synchronisiert werden3 Synchronisationsarten:

Synchroner StartAsynchroner Start - harte SynchronisationAsynchroner Start - weiche Synchronisation

32 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Überblick

1 Einführung

2 OSEK-OS

3 OSEKtime-OS

4 Zusammenfassung

33 / 34

Einführung OSEK-OS OSEKtime-OS Zusammenfassung

Zusammenfassung

Zusammenfassung

OSEK / OSEKtime sind statische Betriebssystemeereignisgesteuert vs. zeitgesteuertkomplexe Tasks vs. einfache Tasksunterschiedliche Interrupt-Behandlung

34 / 34