480 likes | 853 Views
Vorlesung Echtzeitbetriebssysteme I. EINLEITUNG. Dr.-Ing. Frank Golatowski. Ziele der Vorlesung (allg.). Verständnis der Grundlagen Motivation für die Nutzung von Echtzeitbetriebssystemen Multi-tasking in Echtzeit- und Standardbetriebssystemen Erfahren
E N D
VorlesungEchtzeitbetriebssysteme I. EINLEITUNG Dr.-Ing. Frank Golatowski
Ziele der Vorlesung (allg.) • Verständnis der Grundlagen • Motivation für die Nutzung von Echtzeitbetriebssystemen • Multi-tasking in Echtzeit- und Standardbetriebssystemen • Erfahren • die enge Wechselwirkung zwischen RTS-Design und RTOS • Praktische Fertigkeiten • Interesse an Forschung wecken
Ziele der Vorlesung (spez.) Antworten geben können auf ff. Fragen: • Was muss beachtet werde, damit man zu einem deterministischen Echtzeitsystem gelangt? • Wie kann dabei ein Echtzeitbetriebssytem sinnvoll eingesetzt werden? • Was unterscheidet ein hartes Echtzeitsystem von einem weichen Echtzeitsystem? • Wie entwirft man ein deterministisches Echtzeitsystem? • Worin unterscheiden sich Standard-Betriebssysteme von Echtzeitbetriebssysteme?
Gliederung 0. Organisatorisches • Vorlesung • Übung • Literatur 1. Einleitung • Definitionen • Typische Echtzeitanwendungen • Aufgaben eines Betriebssystems (allgemein) • Architektureigenschaften eines Echtzeitbetriebssystems • Klassifikation von Echtzeitbetriebssystemen
Vorlesung • Script zur Vorlesung unterhttp://www-md.e-technik.uni-rostock.de/ma/gol/ • Vorlesungstermine • dienstags (u) 07.30 - 09.00 Uhr Übung • dienstags 09.15 - 10.45 Uhr Vorlesung • Nächste Übung: 15.10. 9.15 Uhr • Nächste Vorlesung: 22.10. 7.30 Uhr • Übungen: • Aufgaben zu Unix (Linux), RT-Linux, Windows NT • Schedulinganalyse mit YASA (Yet Another Schedulability Analyzer)
Literatur • Betriebssysteme (allgemein) • Andrew Tanenbaum„Betriebssysteme“ • Andrew Tanenbaum, James Goodman„Computerarchitektur. Strukturen, Konzepte, Grundlagen“ • Bach„Unix-Wie funktioniert das Betriebssystem“ • W. Richard Stevens„Advanced Programming in the Unix Environment“ • Ben Ari„Parallele Programmierung“
Literatur (Forts.) • Detaillierte Informationen unter • http://www-md.e-technik.uni-rostock.de/ma/gol/books/rts • Echtzeitbetriebssysteme • Alan Burns & Andy Wellings, „Real-Time Systems and Programming Languages“, Addison Wesley, 3rd Ed., ISBN 0-201-729881 • Bill O. Gallmeister, „POSIX.4“O´Reilly & Associates, 1995, ISBN 1-56592-074-0 • Klein et al.„The Rate Monotonic Handbook“Kluwer Academic,1993, ISBN 0-7923-9361-9 • Phillip A. Laplante, „Real-Time Systems Design and Analysis“, 2nd. Ed., 1998 • Jane W.S.Liu, „Real-Time Systems“Prentice Hall, 2000, ISBN 0-13-099651-3
Literatur (Forts.) • Echtzeitbetriebssysteme (weitere) • Furth et al., Kluwer, 1991 „Real-Time Unix Systems Design and Application Guide“ • Bruce Powel Douglass, Addison-Wesley, 1999„Doing Hard Time: Deigning and Implementating Embedded Systems with UML“ • Stancovics„EDF“ • Buttazzo„Hard Real-Time Systems“ • J.E. Cooling, Chapman and Hall, 1991„Software Design for Real-Time Systems“
Literatur (Forts.) • Weitere nützliche Bücher • Balzert„Lehrbuch der Software-Technik“ (1,2) • Das ist das m.E. beste deutschsprachige Buch zur Softwareentwicklung. Enthält so ziemlich alle Methoden kurz aber auch anwendbar. • Jon Bentley„Programming Pearls“ • Meisterwerk! Vermittelt die Grundlagen der Softwareentwicklung (Algorithmen, Datenstrukturen, etc.) mit Humor und sehr einprägsam • Frederick P. Brooks„The Mythical Man Month“ • Standardwerk des Softwareprojektmanagement • Steve McConnell„Code Complete“
Literatur (Forts.) • Weitere nützliche Bücher (haben nicht unbedingt mit der VL zu tun) • Vera F. Birkenbihl„Stroh im Kopf“ • Gibt Gebrauchsanleitung fürs Gehirn. Vom Gehirn-Besitzer zum Gehirn-Benutzer. • Seibert„1x1 der Zeitplanung“
Literatur (Forts.) • Wiss. Artikel, die wichtig für die VL sind. • J. Zalewski„What every engineer needs to know about schedulability analysis“ • Ralf Kern„Prozeßauswahl und Ablaufplanung in Echtzeit-Sytemen“, In: Elektronik 14/1992
Gliederung • Definitionen • Echtzeitsystem • RTOS, RTS, RTES, RTCS • HRTS, SRTS, FRTS, NRTS • Typische Echtzeitanwendungen • Aufbau eines Echtzeitsystems • Eigenschaften von Echtzeitsystemen • Aufgaben eines Betriebssystems (allgemein) • Architektureigenschaften eines Echtzeitbetriebssystems • Klassifikation von Echtzeitbetriebssystemen
Was ist ein Echtzeit-System ? • Oxford Dictionary of Computing: “Any system in which the time at which output is produced is significant. This is usually because the input corresponds to some movement in the physical world, and the output has to relate to that same movement- The lag from input time to output time must be sufficiently small for acceptable timeliness” • „Ein Echtzeitsystem ist ein System, bei dem der Zeitpunkt, an dem Ausgaben erzeugt werden, bedeutend ist. Das liegt daran, dass die Eingabe mit einigen Änderungen der physikalischen Welt korrespondiert und die Ausgabe sich auf diese Änderungen beziehen muß. Die Verzögerung von der Eingangszeit zur Ausgangszeit muß ausreichend klein für eine akzeptable Rechtzeitigkeit sein.“
Was ist ein Echtzeit-System ? • Young (1992):“any information processing activity or system which has to respond to externally-generated input stimuli within a finite and specified period” • „Jedes Informationsverarbeitungssystem (Computersystem), das auf externe Eingangs-Stimuli innerhalb einer fest vorgegebenen Zeit reagieren muß.“ Hauptaufgabe eines solchen Computersystems ist nicht die Informationsverarbeitung (information processing). Informationsverarbeitung erforderlich, um die Hauptaufgabe zu erfüllen.
Was ist ein Echtzeit-System ? • Laplante (1993):“A real-time system is a system that must satisfy explicit (bounded) response-time constraints or risk severe consequences, including failures. • A failed system is a system which cannot satisfy one or more of the requirements laid out in the formal system specification” • Ein Echtzeitsystem ist ein System, dass explizite Reaktionszeitschranken erfüllen muß. Geschieht das nicht, muß mit ernsten Konsequenzen gerechnet werden. Darin eingeschlossen sind Fehler. • Ein fehlerhaftes System ist ein System, das eine oder mehrere Anforderungen, die in der formalen Systemspezifikation aufgestellt wurden, nicht erfüllt.
Was ist ein Echtzeit-System ? • In einem solchen System sollten die Programme, die die Daten verarbeiten, die von außen in das System gelangen, sich im bereiten Zustand befinden. So dass die Ergebnisse innerhalb einer bestimmbaren Zeitspanne verfügbar sind. • Die Ankunftszeiten der Daten können in Abhängigkeit von der Anwendung zufällig verteilt oder auch bestimmbar sein. Ein Echtzeitsystem reagiert in einer (zeitlich) bestimmbaren Art auf externe Ereignisse (Stimuli) deren Ankünfte nicht vorhersagbar ist.
Was ist ein Echtzeit-System ? • Real-Time-Systeme sind Systeme, die korrekte Reaktionen innerhalb eines definierten Zeitlimits produzieren müssen. • Wenn die Reaktionen diese Zeitlimits überschreiten, dann resultieren daraus Leistungseinbußen und/oder Fehlfunktionen.
Was ist ein Echtzeit-System ? • Richtigkeit eines Real-Time-Systems ist nicht nur von den logischen Ergebnissen der Berechnung abhängig, sondern auch von dem Zeitpunkt an dem die Ergebnisse produziert wurden. • Es ist genauso ein Fehler, wenn das Ergebnis nicht zum richtigen Zeitpunkt vorliegt, als wenn das Ergebnis falsch ist. • Ein Fehler in der Reaktion (Reaktionszeitpunkt) ist genauso schlecht wie eine falsche Reaktion Ein „richtiges“ Ergebnis zur falschen Zeitist ein Fehler.
Harte Echtzeit Verspätung = Fehler
Harte Echtzeit Fehler kann katastrophale Folgen haben.
Harte Echtzeit ist einfacher • Einfacher, um Systeme zu integrieren. • z.B Fehlerentdeckung: „Es ist zu spät. Das ist ein Fehler“ • Einfacher, um System zu bauen. • z.B. komplexe dynamische Algorithmen nicht notwendig, um verspätete oder fehlenden Daten zu ersetzen.
RTS Real- Time- System • RTOS Real- Time- Operating System • RTCS Real- Time- Computersystem • RTES Real- Time- Embedded System
Klassifikation vonReal-Time Systems • Hard Real-Time System • Das Verpassen einer Deadline hat katastrophale Folgen für das System. • Systeme, in denen es zwingend erforderlich ist, dass Reaktionen innerhalb der vorgeben Deadline erfolgen. • Bsp. Flugsteuersystem (Flight Control System) • Soft Real-Time System • Systeme, in denen Deadlines wichtig sind. Sie funktionieren jedoch weiter korrekt, wenn Deadlines verpasst werden. • Bsp. Datenerfassungssystem (Data acquisition system ) • Firm Real-Time System • Das Verpassen einer Deadline hat eine nicht akzeptable Qualitätsminderung zur Folge. Das System hat keinen Nutzen. (Rechenmodell) • Non-Real-Time System • Es müssen keine Deadlines eingehalten werden.
Klassifikation von Real-Time Systems HRT: Hard Real-TimeSRT: Soft Real-TimeFRT: Firm Real-Time NRT: No Real-Time
Anforderungen an Sicherheit und Zuverlässigkeit • sind gewöhnlich schärfer in RTS und ES, als in anderen Computersystemen • wiss. Berechnung oder Routing einer Schaltung schlägt fehl (NRT, ärgerlich über die verstrichene Rechenzeit) • Prozeßrechner, der Hochofen steuert, wird nicht gleich den Hochofen abschalten, wenn ein Fehler auftritt. Er wird nach Alternative suchen müssen, um ein kostenintensives Herunterfahren zu verhindern. • RTCS in einem Kernkraftwerk, das Reaktor steuert, muß dafür sorgen, dass der Reaktor nicht außer Kontrolle gerät. • Ein RTCS in einem Flugzeug, sollte es dem Piloten ermöglichen, den Schleudersitz zu verwenden, bevor das Flugzeug abstürzt
Weitere wichtige Definitionen • Timeliness (coming early or at the right time) • Availability • Flexibility
Sicherheit und ZuverlässigkeitSafety, Reliability, Dependability • Safety (Sicherheit für Mensch und Umgebung) • Burns & Wellings“Safety is the probability that conditions that can lead to mishaps do not occur whether or not the intended function is performed” • “...ist die Wahrscheinlichkeit, dass Bedingungen, die zu einem Unglück führen können, nicht eintreffen. Unabhängig davon, ob die beabsichtigte Funktion ausgeführt wird. Wahrscheinlichkeit, für das nicht Eintreffen einer Bedingung, die zu einem Unglück führen kann.
Sicherheit und ZuverlässigkeitSafety, Reliability, Dependability • Reliability (Zuverlässigkeit, Fehlersicherheit) • Randell et al (1978)„a measure of the success with which the system conforms to some authoritative specification of its behavior“ • Ein Meßwert, der Auskunft darüber gibt, • inwieweit das System der Spezifikation entspricht. • Inwieweit das System fehlerfrei arbeitet • Failure, Fault, Error • Beachte Safety und Reliability werden oftmals als Synonym verwendet. • Sicherheit (Safety und Reliability) werden gewöhnlich in Form von Wahrscheinlichkeiten ausgedrückt. • Viele weitere Definitionen, die sich auf Sicherheit und Zuverlässigkeit beziehen: Dependability (Systemstabilität, Verlässlichkeit, Zuverlässigkeit)
Sicherheit und ZuverlässigkeitBeispiel • Das einzig wirklich sichere Flugzeug ist jenes, dass niemals startet. • Aber es ist nicht sehr zuverlässig (reliable)
Aspects of Dependability Dependability Readiness for Usage Continuity of Service Delivery Non-occurrence of Catastrophic Consequences Non-occurrence of unauthorized disclosure of information Non-occurrence of improper alteration if information Aptitude to undergo repairs of evolutions Available Reliable Safe Confidential Integral Maintainable Quelle: Burns & Wellings, RTS & Programming Languages
Dependability Terminology Availability Reliability Safety Confidentiality Attributes Integrity Maintainability Fault Prevention Fault Tolerance Means Fault Removal Fault Forecasting Faults Impairments Errors Failures Dependability
Gliederung • Definitionen • Typische Echtzeitanwendungen • Aufbau eines Echtzeitsystems • Eigenschaften von Echtzeitsystemen • Aufgaben eines Betriebssystems (allgemein) • Architektureigenschaften eines Echtzeitbetriebssystems • Klassifikation von Echtzeitbetriebssystemen
Beispiele für Echtzeitanwendungen 1. Digital Control 2. High-Level Controls • Control Hierachy • Guidance and Control • Real-Time Command and Control 3. Signal Processing • Processing Bandwidth Demands • Radar System 4. Weitere • Real-Time-Datenbanken • Multimedia Anwendungen
Beispiele für Echtzeitanwendungen 1. Durchflußsteuersystem
Ein einfaches Durchflußsteuersystem z.Bsp. Tempomat, Temperatursteuerung eines Flugzeugdüsentriebwerkes
Ein typisches eingebettetes System Sensor ADC CPU Anzeige
Ein typisches eingebettetes System KEYPAD DAC Serial I/O Sensor ADC CPU Anzeige • Jet Engine Pipe: Steuerung der Temperatur in einem Düsentriebwerk eines Flugzeugtriebwerkes
Ein typisches eingebettetes System Real-Time Clock Algorithms for Digital Control Engineering System Interface Remote Monitoring System Data Logging Database Data Retrieval and Display Display Devices Operator’s Console Operator Interface Real-Time Computer
Allgemeine Architektur eines verteilten Echtzeitsystems Datenbank MIDDLE WARE User interface Berechnung User interface Daten einlesen Steuerung Andere I/O Hardwareschicht Sensoren Aktoren Andere Geräte
Zunehmende Dezentraliserung Quelle: DaimlerChrysler, B. Hedenetz
Zunehmende Dezentraliserung Quelle: NRTA, K.Tindell
X-by-wire • steer-by-wire • brake-by-wire • fly-by-wire (Flugzeug)
Beispiele für EchtzeitanwendungenZusammenfassung Unterteilung von Real-Time-Anwendungen entsprechende ihrer Zeiteigenschaften in vier Typen (nach J. Liu) 1. Rein zyklisch (purely cyclic) 2. Meist zyklisch (mostly cyclic) 3. Asynchron und beschränkt vorhersagbar (asynchronous and somewhat predictable) 4. Asynchron und nicht vorhersagbar (Asynchronous and unpredictable)