rapid prototyping für echtzeitsysteme: tools, scheduling
TRANSCRIPT
Institut für Angewandte Mikroelektronik und DatentechnikFachbereich Elektrotechnik und Informationstechnik,Universität Rostock
Jens Hildebrandt, „Rapid Prototyping für Echtzeit-Systeme...“
Rapid Prototyping für Echtzeitsysteme:
Tools, Scheduling Algorithmen und Hardware-Scheduling-
SupportJens Hildebrandt, Dirk Timmermann
Universität Rostock
Übersicht
• Motivation• YASA2 Framework• Hardware basiertes Task Scheduling• ELLF Scheduling Algorithmus• Zusammenfassung
Motivation
Echtzeit-Systeme mit sehr engen Echtzeitanforderungen aus Standardkomponenten (HW/SW)
Vorteile:
• geringere Anschaffungskosten
• höhere Lebensdauer des Designs
• kürzere Entwicklungszeiten
aber:
beschränkte Eignung für EZ-Systeme mit engen Zeitvorgaben
Standard-Komponenten zu langsam – Auswege:
Motivation
Schnellere HW VerfügbarkeitKostenEnergieverbrauch
Code-Optimierung Zeitaufwandbegrenzte Wirksamkeit
Dedizierte Hardware Erfordert spezielle Entwicklungs-und Evaluierungs-Tools
•hohe Parallelität•deterministisches Verhalten•hohe Geschwindigkeit
Zielstellung:
Erweiterung von Standard-EZS mit dedizierter Hardware
Erfordert:
• Entwicklung von Coprozessoren für zeitkritische Funktionen
• Entwicklung von dedizierten Hardware-Algorithmen
• Entwicklung von Werkzeugen zur Analyse und Evaluierung
Beispiel: Task Scheduling
Beispiel: dynamische Scheduling Algorithmen
Beispiel: YASA2 Framework
Übersicht
• Motivation• YASA2 Framework• Hardware basiertes Task Scheduling• ELLF Scheduling Algorithmus• Zusammenfassung
Analyse des Echtzeitverhaltens von Echtzeit-Systemen
aktuell:
Code-Generierung Ausführung
Modifikation
Nur wenig Rückschlüsse auf Echtzeitverhalten des Systems
Code-Generierung
Ausführung/ Simulation
EvaluierungModifikation
Unser Ziel:
Verbesserte Feedback- und Simulationsmöglichkeiten
Entwicklungs- und Analyse-Tool für Echtzeitsysteme
Funktionen:
• Simulation des Systems mit diversen Scheduling-Algorithmen und synthetischer Last
• Evaluierung von Scheduler-Implementationen und Anwendungs-Tasks im realen System
• Visualisierung und Statistik
YASA* II
*) YASA – Yet Another Scheduling Analyzer
Scheduling-Algorithmus
Task-Set
Simulation mitsynth. Last
Implementierungdes Algorithmusin Betriebssyst.
Evaluierungmit realer Last
Task-Parameter
Task-Code
funktionierendes EZ-System
YASA II Entwicklungszyklus
YASA II Projektmanager
Task-SetSpezifikation
desZielsystems
verschiedeneLaufzeitsysteme
verschiedeneScheduler
Generierung vonausführbarem Code
Logfile Ausführung
Bedienoberfläche Zielsystem
Interne Struktur von YASA II
YASA II - Leistungsmerkmale
• lauffähig auf Windows- und Linux-Plattformen
• Konfiguration und Auswertung über grafische Bedienoberfläche
• aktuell unterstützte Laufzeitsysteme: Task-Simulator und RTLinux
• Evaluierung des realen Systemverhaltens für RTLinux
• unterstützt Scheduling-Coprozessoren
Projekt-Einstellungen
Task-Parameter-definition
Task-Quellcode
„SharedResources“
CPU Auslastung
Task-Ausführung
Übersicht
• Motivation• YASA2 Framework• Hardware basiertes Task Scheduling• ELLF Scheduling Algorithmus• Zusammenfassung
Scheduler in Hardware – warum?Auswirkung des Schedulers auf das Echtzeitverhalten:
Algorithmus Implementierung
• bestimmt generelle Zuteilbarkeitdes Task-Sets
• bestimmt Reaktionszeiten der Tasks
• beeinflusst Aufruf-Häufigkeit der Scheduler-Funktion
• beeinflusst Analysierbarkeit des Echtzeit-Systems
• bestimmt Ausführungszeit der Scheduler-Funktion
• beeinflusst Aufruf-Häufigkeit der Scheduler-Funktion
Betriebssystem-Overhead durch SchedulerVerzögert Ausführung aller Tasks
Scheduler in Hardware – was ist sinnvoll?Kriterien für Auslagerung von Teilen der Scheduler-Funktion in Hardware:
schneller in HW (brutto)
schneller in HW (netto)
realisierbar in HW
Resourcen-Verwaltung
Task-Wechsel
Task-Auswahl
Prioritäts-berechnung
Speicherung von Task-Parametern
netto – reine Funktion, brutto – Funktion im Gesamtkontext
++ ++
++ ++
++ ++
++
++
+ +
-
o
o
o
Scheduler in Hardware – wie?Universelle Architektur für Scheduling-Coprozessoren:
Task-Modul
Task-Modul
Task-Modul
Task-Modul
Bus-Interface
Vergleicher/
Selektor
Steuer-
Logik
Task-Zustand, Parameter- und
Prioritätsberechnung/-speicherung
Prioritätsvergleich,
Task-Auswahl
Ablaufsteuerung, Statusanzeige
Scheduler in Hardware – Ergebnisse
• Komplexität der Scheduling-Funktion von O(n) auf praktisch O(1) gesenkt
• Konstante Ausführungszeit, unabhängig von Anzahl aktiver Tasks
16,531,140ELLFHW
28,550,660EDFHW
0,6728,24356,7682,816ELLFSW
0,8921,08629,0882,304EDFSW
118,84229,3122,272Fixed Prio.SW
MittelMax.Min.
1/ta , relativAusführungszeit ta, µsAlgorithmusRealisiert in
Vergleichsdaten:
SW: RTLinux 3.0 auf Pentium 233, 16 Tasks
HW: FPGA-Implementierung, 33MHz, 16 Tasks
Übersicht
• Motivation• YASA2 Framework• Hardware basiertes Task Scheduling• ELLF Scheduling Algorithmus• Zusammenfassung
Dynamische Scheduling-Algorithmen
• Task-Prioritäten ändern sich zur Laufzeit des Systems
• Prioritätenberechnung erfolg i.A. zum Scheduling-Zeitpunkt („Best Effort Scheduler“)
• theoretisch höhere Systemauslastungen als mit fester Priorität möglich
• bessere Behandlung aperiodischer/sporadischer Tasks
• optimale Algorithmen für Ein-Prozessor-Systeme:
Earliest-Deadline-First (EDF)
Least-Laxity-First (LLF)
Unzulänglichkeiten existierender dynamischer Algorithmen
Generell: Berechnungsaufwand zur Laufzeit erhöht Betriebssystem-Overhead
Speziell EDF: keine Früherkennung von Endtermin-Überschreitungen
schlechtes Überlast-Verhalten („Domino-Effekt“)
Speziell LLF: hoher Rechenaufwand zur Laufzeit
hohe Kontextwechsel-Häufigkeit in Situationen mit mehreren Task mit höchster Priorität („Thrashing“)
Abhilfe: Enhanced LLF-Algorithmus (ELLF)
Vereint Vorzüge von EDF und LLF, behebt ihre Hauptmängel:
• optimales Verfahren
• Endtermin-Überschreitungen vor ihrem Auftreten erkennbar
• Kontextwechsel-Häufigkeit vergleichbar EDF
• kein „Domino-Effekt“
• kein „Thrashing“
ELLF - Formale Beschreibung
τN – nächster auszuführender Task aus Task-Set T = {τ1 ... τm }
τi ∈T charakterisiert durch: Di(t) – relativer Endtermin zum Zeitpunkt tCi(t) – verbleibende RechenzeitLi(t)= Di(t)-Ci(t) – Schlupf zum Zeitpunkt tSi(t) ∈ {Susp, Rdy, Run, Excl } – Task-Zustand
τi = τN , wenn gilt:
τ ∈Λ = ∀τ ∈ =
τ ∈∆ = ∀τ ∈Λ =
τ = ∆
≠
i l l
i d d
i select
i
t T:L t min L t
t (t):D t min D t
f t
S t Excl
Auswirkung von ELLF
1τ
2τ
3τ
4τ
5τ
t t +10 t +20 t +30
1τ
2τ
3τ
4τ
5τ
t t +10 t +20 t +30
a)
b)
Legend: Task running
Task excluded
Task finished
Task deadline
9
5
2
3
5
C(t)
1524τ5
1823τ4
2022τ3
1518τ2
1520τ1
L(t)D(t)
a) LLF – „Thrashing“, insges. 24 Kontextwechsel
b) ELLF – insges. nur 7 Kontextwechsel
ELLF - Implementierungen
Software: für n Tasks insgesamt vier Schleifen mit je bis zu n Durchläufen
Ausführungszeit schwankt stark in Abhängigkeit von Anzahl aktiver Tasks
Hardware: für n Tasks eine Subtraktionsoperation, parallel für n Tasks, gefolgt von einem bitseriellen (*) Vergleich
Ausführungszeit konstant
→ 2,816...56,768 µs , ∅ 28,243 µs (@ 233MHz)
→ 1,14 µs (@ 33MHz)
ELLF erst durch Hardware-Implementierung effektiv nutzbar !
(*) aus Aufwandsgründen so realisiert
Übersicht
• Motivation• YASA2 Framework• Hardware basiertes Task Scheduling• ELLF Scheduling Algorithmus• Zusammenfassung
Zusammenfassung
Ergebnisse des Projektes:
• Entwicklungs- und Analysewerkzeug für Echtzeit-Systeme YASA2
• Scheduler-Funktion durch Auslagerung in Hardware um Größenordnungen beschleunigt
• Verbesserter Scheduling-Algorithmus ELLF entwickelt und durch Hardware-Implementierung praktisch nutzbar gemacht
Ausblick:
• Weiterentwicklung von YASA2 für andere Zielsysteme und Cross-Development
• Architektur- Optimierung des ELLF-Scheduling-Coprozessors
• Optimierung der Rechner-Anbindung von Scheduling-Coprozessoren
• Golatowski, F., Hildebrandt, J., Blumenthal, J., Timmermann, D.: Framework for Validation, Test and Analysis of Real-Time Scheduling Algorithms and Scheduler Implementations. Proceedings of the 13th IEEE International Workshop on Rapid System Prototyping, S.146-152, Darmstadt, 2002
• Hildebrandt, J., Timmermann, D.: Hardwarebasiertes Task-Scheduling für Betriebssysteme mit harten Echtzeitanforderungen. 10. Symposium Maritime Elektronik, Tagungsband, S.23-26, Rostock, 2001
• Hildebrandt, J.; Timmermann, D.: An FPGA Based Scheduling Coprocessor for Dynamic Priority Scheduling in Hard Real-Time Systems. 10th International Conference on Field-Programmable Logic and Applications,Villach, Österreich, August 2000, erschienen in: Lecture Notes in Computer Science #1896, Field-Programmable Logic and Applications, S.777-780, Springer Verlag, Heidelberg 2000
• Rachui, T.; Ploog, H.; Hildebrandt, J.: HW/SW-Codesign ressourcenminimaler Systeme – Eine Simulations-und Online-Debugumgebung. 2. Wismarer Automatisierungskolloquium, Tagungsband, Wismar, 1999
• Golatowski, F.; Hildebrandt, J.; Timmermann, D.: Rapid-Prototyping integrierter Steuerungssysteme. 2. Wismarer Automatisierungskolloquium, Tagungsband, Wismar, 1999
• Hildebrandt, J., Golatowski, F., Timmermann, D.: Scheduling Coprocessor for Enhanced Least-Laxity-First Scheduling in Hard Real-Time Systems. Proceedings of the 11th Euromicro Conference on Real Time Systems. S.208-215, York, 1999
• Golatowski, F.; Hildebrandt, J.; Timmermann, D.: Rapid Prototyping with Reconfigurable Hardware for Embedded Hard Real-Time Systems. Proceedings of the 19th IEEE Real-Time Systems Symposium, Tagungsband WIP -Session, S.55-58, Madrid, 1998
Veröffentlichungen: