Aufgabe: Zuteilung der auf die CPU Automatisches Entwurfs- und Entwicklungssystem für harte Echtzeitsysteme Zuteilungsstrategien: Satz Jan Blumenthal 20.02.2003 Zyklisch 4 Gliederung Optimierung des Schedulings Einführung Bestandsaufnahme Konzept des Frameworks YASA Vorstellung einzelner Komponenten s Zusammenfassung Prioritätsbasiert: System P H P M P L 0 5 10 15 Earliest Deadline First: System P H P M P L 0 5 10 15 Analyse des Verhaltens nötig Austausch des s erforderlich 2 5 Allgemeine Ziele Echtzeitsysteme: funktionaler Nachweis nicht-funktionaler (zeitlicher) Nachweis Ökonomischer Verpassen von Zeitschranken Sachlicher Menschlicher Semaphoren: Datenaustausch von n Absicherung von kritischen Abschnitten Betriebsmittelanforderungen : Vermeidung von Effekten bei Belegung von Semaphoren - Prioritäteninversion - Deadlocks Enge Kopplung an Konzentration auf Optimierung des Schedulingverhaltens Austausch der erforderlich 3 6
Aktuelle Systeme Gliederung von YASA Benutzeroberfläche Zielsystem Systemumgebung s Projekterzeugung / Satz YASA 2 - Arbeitsbereich Nachteile: fest mit verbunden Keine dynamischen bzw. Schedulingverlauf nicht überprüfbar Analyse Projektverwaltung & Konfiguration Quelltextgenerierung Auswertung Kompilierung -Erstellung 7 10 Spezielle Ziele Zyklus eines Projekts Optimierung des Schedulingverhaltens in Echtzeitbetriebssystemen: Umfangreiche Analyse des Schedulingverhaltens Austausch der Nutzung weiterer Entwurf von harten Echtzeitsystemen Unterstützung des Hardware / Software-Codesigns Konfigurationsphase Erzeugungsphase sphase Projekt-Konfiguration Semaphoren Visualisierung Semaphoren- Environmenteinstellungen Syncprotokolle Quelltexte Kernel- Kernel-Patch Quellen YASA Support- Funktionen Ausführbares Projekt Kernel Entwicklungsframework YASA 8 11 Anwendungsentwicklung Arbeitsweise von YASA Aktueller Stand: YASA: Systemumgebung Entwicklung Entwicklung Korrektur Trial & Error Unbekannter Schedulingverlauf Keine Analyse Keine bzw. schlechte Fehlererkennung Optimierung Analyse Protokollierter Schedulingverlauf Analyse des Schedulingverlaufs möglich Anwendungs-API Schedulingumgebung -API / Grafische Oberfläche Kapselung der Schedulingumgebung durch s 9 12
Aufbau eines s RT-Linux Virtuelle Schedulingumgebung Schnittstellen für und Unterstützung portabler Externe Komponenten Init Bash XFree Systemfunktionen Linux Treiber Veränderungen durch RT-Linux Projekt-Startup Satz -Startup Linux-Thread Echtzeitthread 1 Echtzeitthread 2 YASA-Komponenten RT-Linux Kernel - Anpassung Ressourcen-Modul I/O RT- RT-FIFO RT-POSIX RT-Time I/O Deadline-Modul Scheduling-Modul Logging-Modul Hardware 13 16 Simulator- der Anwendung mit synthetischer Last Virtueller Programmlauf Prozesszustände Ressourcenanforderungen Multiprozessorfähig Plattformunabhängig Anwendungsgebiete: Nachweis der theoretischer Analysen Entwicklung von n Wechsel zur Laufzeit Implementierung -unabhängig Plattformunabhängig Keine Limitierung der Zeitauflösung, Prozessanzahl Verfügbare : e Prioritätsbasiert Rate Monotonic Deadline Monotonic e Earliest Deadline First Least Laxity First Enhanced Least Laxity First Zyklische Round Robin First Come First Serve 14 17 Projektzyklus im Simulator Konfigurationsphase Erzeugungsphase sphase Projekt-Konfiguration Mutex Visualisierung Quelltexte Mutex- Simulatorquelltexte Kernel- Kernel-Patch Quellen YASA Support- Funktionen Syncprotokolle Besonderheiten des Simulator-s Ausführbares Projekt Simulator Library Kernel Synchronisation der Betriebsmittelanforderungen Verhinderung der Prioritäteninversion Deadlockvermeidung Einführung dynamischer Scheduling-Prioritäten Entkopplung von n und n Verfügbare : Priority Inheritance Protocol Priority Ceiling Protocol Ceiling Semaphore Protocol Dynamic Priority Ceiling Protocol Stack Resource Policy 15 18
e Scheduling-Prioritäten Grafische Auswertung I Anpassung der an aktuellen prioritätstyp Zugriff auf Variablen (Deadline, Priorität) durch Mappingmakros Name Typ Datentyp Vergleichsoperation Priorität int > Schlupf Deadline Benötigte Zeit Kürzeste Zeit > Darstellung des Zeitverhaltens einer Projektausführung 19 22 Benutzeroberfläche YASA Grafische Auswertung II Objekt-orientierte Programmierung (261 Klassen) Plattformunabhängig durch Klassenbibliothek Qt Nutzung von Entwurfsmustern Multilingual (UNICODE) Vollständige Projekt-Konfiguration Auswertung in grafischer und tabellarischer Form Taskdiagramm Mutexdiagramm Prozessordiagramm Tasktabelle Mutextabelle Prozessortabelle Darstellung des Zeitverhaltens mehrerer Projektausführungen 20 23 Einsatzgebiete Erstellung von Echtzeitapplikationen Analyse & Optimierung des Schedulingverhaltens Portierung von Anwendungen Einsatzgebiete Fehlersuche im Kernelmodus Entwicklung neuer Lehr- und Forschungszwecke 21 24
Zusammenfassung YASA Entwicklungsframework für bestehende Echtzeitbetriebssysteme Optimierung des Schedulingverhaltens von Echtzeitanwendungen Virtuelle Schedulingumgebung Plattformunabhängige & Komponenten zur Protokollierung & Deadlinebehandlung Umfangreiche Auswertungen in der Benutzeroberfläche Ergebnisse Veröffentlichung: 13th IEEE International RSP Workshop, Darmstadt, 2002 Anfragen der Industrie (ABB) Homepage http://yasa.e-technik.uni-rostock.de http://sourceforge.net/projects/yasa 25 Vielen Dank 26