osek / osektime ausgewählte kapitel eingebetteter systeme · 2006. 7. 17. · einführung osek-os...
TRANSCRIPT
Einführung OSEK-OS OSEKtime-OS Zusammenfassung
OSEK / OSEKtimeAusgewählte Kapitel eingebetteter Systeme
Wilhelm [email protected]
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