rapid prototyping für echtzeitsysteme: tools, scheduling

30
Institut für Angewandte Mikroelektronik und Datentechnik Fachbereich 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- Support Jens Hildebrandt, Dirk Timmermann Universität Rostock

Upload: others

Post on 31-Dec-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

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

Page 2: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

Übersicht

• Motivation• YASA2 Framework• Hardware basiertes Task Scheduling• ELLF Scheduling Algorithmus• Zusammenfassung

Page 3: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

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

Page 4: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

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

Page 5: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

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

Page 6: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

Übersicht

• Motivation• YASA2 Framework• Hardware basiertes Task Scheduling• ELLF Scheduling Algorithmus• Zusammenfassung

Page 7: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

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

Page 8: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

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

Page 9: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

Scheduling-Algorithmus

Task-Set

Simulation mitsynth. Last

Implementierungdes Algorithmusin Betriebssyst.

Evaluierungmit realer Last

Task-Parameter

Task-Code

funktionierendes EZ-System

YASA II Entwicklungszyklus

Page 10: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

YASA II Projektmanager

Task-SetSpezifikation

desZielsystems

verschiedeneLaufzeitsysteme

verschiedeneScheduler

Generierung vonausführbarem Code

Logfile Ausführung

Bedienoberfläche Zielsystem

Interne Struktur von YASA II

Page 11: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

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

Page 12: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

Projekt-Einstellungen

Page 13: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

Task-Parameter-definition

Page 14: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

Task-Quellcode

Page 15: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

„SharedResources“

CPU Auslastung

Task-Ausführung

Page 16: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

Übersicht

• Motivation• YASA2 Framework• Hardware basiertes Task Scheduling• ELLF Scheduling Algorithmus• Zusammenfassung

Page 17: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

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

Page 18: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

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

Page 19: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

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

Page 20: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

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

Page 21: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

Übersicht

• Motivation• YASA2 Framework• Hardware basiertes Task Scheduling• ELLF Scheduling Algorithmus• Zusammenfassung

Page 22: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

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)

Page 23: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

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“)

Page 24: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

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“

Page 25: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

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

Page 26: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

Auswirkung von ELLF

t t +10 t +20 t +30

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

Page 27: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

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

Page 28: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

Übersicht

• Motivation• YASA2 Framework• Hardware basiertes Task Scheduling• ELLF Scheduling Algorithmus• Zusammenfassung

Page 29: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

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

Page 30: Rapid Prototyping für Echtzeitsysteme: Tools, Scheduling

• 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: