Echtzeitsystemtechnik Echtzeitrechentechnik verteilte Systeme, eingebettet und verlässlich H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Echtzeit - Fahrplan Klassisch Aktuell: Rechtzeitig oder „schnell“ Ablaufsteuerung (Scheduling) Nebenläufig Aktuell: Große Systeme: Komplexität Verteiltheit, transparente Kommunikation Verlässlichkeit Unterstützung für Entwurf Eingebettete Rechner H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Was ist ein Echtzeitsystem? Informationsverarbeitungssystem, das auf extern entstandene Eingangssignale innerhalb einer spezifizierten Zeitdauer reagiert haben muss. Die Korrektheit hängt nicht nur vom logischen Ergebnis ab, sondern auch vom Zeitpunkt, zu dem das Ergebnis geliefert wird. Eine zu späte Antwort ist genau so schlecht wie eine falsche Antwort. (nach Burns) H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Ein Missverständnis: Wie schnell ist „Echtzeit“? nicht um Tempo geht es Cache und Benchmark: Schnell im Mittel „Komfortabler“ Prozessor? Viel Umgebung zu retten Lange Umschaltzeiten zwischen Prozessen H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Echtzeit-Varianten Harte Echtzeit: Terminüberschreitung ist katastrophal Weiche Echtzeit: Terminüberschreitung wird um so teurer, je weiter Schnelle Echtzeit: Hartes Echtzeitsystem, das extrem schnell reagieren muss Feste Echtzeit: Weiches Echtzeitsystem; nützlich sind nur eingehaltene Termine Innerhalb eines Echtzeitsystems können gleichzeitig mehrere unterschiedliche Charakteristiken vorhanden sein; oft wird es einen bestimmten Zusammenhang zwischen der Größe von Terminverletzungen und den daraus resultierenden Zusatzkosten geben H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Rechtzeitigkeit; Charakteristik der externen Ereignisse Ereignisse, deren Bearbeitung nicht beliebig warten kann Große Vielfalt: periodisch evtl. sehr selten unklar, wann Beispiel: Airbag H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Quasi gleichzeitige Prozesse Grundproblem: Ein Prozessor, aber mehrere Aufgaben gleichzeitig Lösung: Prozessor multiplexen Prozessorzuteilung entsprechend Bedarf und Priorität Was ist am gerechtesten? H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Schnittstellen zum Parameter Zeit Zugriff zu Uhren zwecks Messung der ablaufenden Zeit Verzögerung von Prozessen bis zu einem gewünschten Zeitpunkt Programmierung von Warte-Intervallen, so dass das Ausbleiben eines bestimmten Ereignisses erkannt und behandelt werden kann H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Ablaufsteuerung (Scheduling) Voraussetzungen: vollständige Information über zeitliche Anforderungen der externen Prozesse (sporadisch, periodisch) genaue Zeitdauer der behandelnden Software (Takte zählen!) Kontextwechselzeit Prioritätenbasierte Ablaufsteuerung (fest oder variabel) Preemption H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Strategien (So einfach wie möglich) Zyklische Ausführung first come, first serve Wenn Termin („Deadline“) bekannt: Der früheste Termin zuerst Wenn auch nötige Bearbeitungsdauer bekannt: Zuerst der Termin mit der kleinsten Reserve H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Ablaufsteuerung Die Abarbeitungsschleife widerspiegelt nicht die reale Struktur der Anlage – das begrenzt die Größe der beherrschbaren Systeme H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Nebenläufigkeit (Concurrency) Verschiedene Prozesse verlaufen parallel („natürliche“ Gegebenheit für typische Echtzeitfälle) Kooperationsbeispiele von Prozessen: senden/empfangen von Nachrichten gemeinsame Benutzung von Ressoucen Gemeinsam benutzte Variablen; Leser-Schreiber-Problem und kritischer Bereich Probleme: Blockierungen Beispiel: die fünf Philosophen Das Problem, mit einem Prozessor mehrere gleichzeitig ablaufende Prozesse bearbeiten zu müssen, ist damit gelöst, dass der Prozessor gemultiplext wird. Dafür stellt man nun fest, dass sich neue Probleme herausschälen, die mit der Nebenläufigkeit verbunden sind. Die sind zwar vorher auch schon immanent im System vorhanden gewesen, aber wenn man sich sowohl um die formale Gleichzeitigkeit als auch um das Problem kümmern soll, ist das Gesamtbild so verwoben, dass die Probleme der Nebenläufigkeit nicht so klar isoliert erkennbar sind H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Neue Herausforderungen Große Systeme: Komplexität Verteiltheit, transparente Kommunikation Verlässlichkeit Unterstützung für Entwurf Eingebettete Rechner H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Komplexität Objektorientierung: große Systeme beherrschbar Grund: hierarchische Kapselung Schwierigkeit: Vermittlung der Idee an versierte konventionelle Programmierer H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Objektorientierung Das besondere an einem „Objekt“: Individuum („Instanz“ eines bestimmten Datentyps) Verwendbar ausschließlich und strikt anhand der spezifizierten Schnittstellen („Methodenaufrufe“) Programmierung der Interna durch separate Mannschaft Das alles hierarchisch Produktivitätsquellen: Größere Programmierermannschaften durch Informationskapselung möglich Extensive Wiederverwendung von Code durch Vererbung (Problem: späte Bindung“) H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Verteilte Systeme Mehrere separate Echtzeitrechner kooperieren zwecks Erledigung einer Aufgabe Zwecks Koordination: Kommunikation über Netzwerk Unterstützt durch Objektorientierung (Corba, DCOM): Transparenz H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Verlässliche Systeme (dependable, trustworthy) Fehlertypen (ständig, transient) Vorbeugung und Toleranz Reparaturblock Mehrere Programmversionen Gute Systeme heute: 50 min Ausfall/Jahr Fernziel:1 Sekunde / Jahrhundert (Jim Gray) H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Architektur Anleihe bei herkömmlicher Ingenieurwissenschaft H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Unterstützung für den Entwurf Entwurfsmuster („Design Pattern“) Enheitliche Modellbeschreibungssprache: „UML“ Anwendungsfälle („Use Cases“) H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Entwurfsmuster Regelkreis Beispiel Kommunikation Anlage Echtzeitrechner Nutzer Massenspeicher H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Eingebettet Entwurfsmuster gesucht Entwurfsverfahren 99% aller Prozessoren gehören zum Markt der eingebetteten Systeme Entwurfsmuster gesucht Entwurfsverfahren H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Typisches eingebettetes System Echtzeit- Uhr Steuer- Algorithmen Anlage Schnittstelle Datenerfassung Messen / Überwachen Datenbank Daten finden und anzeigen Anzeigen Bediener- Konsole Bediener- Schnittstelle Echtzeitrechner H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik
Zusammenfassung Zwei Hauptklassen von Systemen: Harte Echtzeit / weiche Echtzeit Zunehmende Größe und Komplexität Extreme Verlässlichkeit Nebenläufige Steuerung verteilter Systemkomponenten Echtzeitsteuerung externer Geräte Effizienz bei Entwurf und Implementierung H. Pfüller, Universität Rostock, Institut für Angewandte Mikroelektronik und Datentechnik