530 likes | 994 Views
Vorlesung Echtzeitbetriebssysteme II. . Dr.-Ing. Frank Golatowski. Ziele dieser Vorlesung. Gliederung. Definitionen Typische Echtzeitanwendungen Aufbau eines Echtzeitsystems Eigenschaften von Echtzeitsysteme Falsche Vorstellungen der Echtzeitverarbeitung
E N D
VorlesungEchtzeitbetriebssysteme II. Dr.-Ing. Frank Golatowski
Gliederung • Definitionen • Typische Echtzeitanwendungen • Aufbau eines Echtzeitsystems • Eigenschaften von Echtzeitsysteme • Falsche Vorstellungen der Echtzeitverarbeitung • Aufgaben eines Betriebssystems (allgemein) • Architektureigenschaften eines Echtzeitbetriebssystems • Aufbau von Betriebssystemen
Aufbau eines Echtzeitsystems Allgemeines Real- Time- System besteht aus: (a) zu steuerndes System (controlled system) (b) Steuerungssystem (control system) (c) Bediensystem (operator system)
Gliederung • Definitionen • Typische Echtzeitanwendungen • Aufbau eines Echtzeitsystems • Eigenschaften von Echtzeitsystemen • Falsche Vorstellungen der Echtzeitverarbeitung • Aufgaben eines Betriebssystems (allgemein) • Architektureigenschaften eines Echtzeitbetriebssystems
Eigenschaften von Echtzeitsystemen 1. Größe und Komplexität- einige hundert Assembler/C- Befehle bis zu 20 Mio. Zeilen Quellcode der Weltraumstation Mir 2. Parallele Steuerung separater Systemkomponenten- Geräte arbeiten in der Realität parallel. Es ist besser, diese Parallelität durch parallel ablaufende Programmstrukturen zu berücksichtigen 3. Interaktion mit speziellen Hardwareinterfaces- notwendig, um Geräte sicher und abstrakt programmieren zu können.
Eigenschaften von Echtzeitsystemen 4. Große Zuverlässigkeit und Sicherheit (Reliability and Safety)- Typisch für eingebettete Systeme ist, daß sie die Umgebung steuern in der sie arbeiten; fehlerhaftes Steuerung kann fatale Folgen haben: Zerstörung der Umgebung, ökonomische Verluste, Menschenleben 5. Manipulierung realer Größen, Werte und Vorgänge 6. Garantierte Reaktionszeiten- sichere Vorhersagbarkeit der worst-case Reaktionszeiten des Systems. Effizienz ist wichtig aber Vorhersagbarkeit ist wesentlich 7. Effiziente Implementierung
Gliederung • Definitionen • Typische Echtzeitanwendungen • Aufbau eines Echtzeitsystems • Eigenschaften von Echtzeitsysteme • Falsche Vorstellungen der Echtzeitverarbeitung • Aufgaben eines Betriebssystems (allgemein) • Architektureigenschaften eines Echtzeitbetriebssystems • Aufbau von Betriebssystemen
Falsche Vorstellungen der Echtzeitverarbeitung Quelle: J. Stankovic, Misconceptions about Real-Time Computing,IEEE Computer, 21(10), pages 10-19, Oct. 1988 Winfried Kalfa, TU Chemnitz, Vorlesungsscript Echtzeit-Betriebssysteme • Echtzeitsystem heißt „schnelles“ System • Schnelle Systeme Minimierung der mittl. Antwortzeit und Erhöhung des Durchsatzes • Echtzeitsysteme Erfüllung der Zeitanforderungen, determinstisches System • Schnellere Hardware macht Echtzeitsysteme überflüssig • Nein. Durch leistungsfähigere Hardware sind bisher unlösbare Aufgaben beherrschbar • Schnellere Hardware erfordert neue Methoden zur Validierung und zum Test
Falsche Vorstellungen der Echtzeitverarbeitung • Echtzeitsystemprogrammierung bedeutet Assemblerprogrammierung, Interruptverarbeitung und Gerätetreiberprogrammierung • Nein. Heutige Systeme sind zu komplex, als dass Systemsoftware komplett in Assembler geschrieben wird. • Gerätetreiber sollten jedoch nicht unterschätzt werden. • Wünschenswert sind Systeme, die leistungsstarkes Gerätetreiber-Programmierinterface bereitstellen. • In den meisten Systemen, Interface zum Gerätetreiber ähnlich wie unter Unix. (open, close, read, write, ioctl)
Falsche Vorstellungen der Echtzeitverarbeitung • Echtzeitsystemforschung ist Performance Engineering
Falsche Vorstellungen der Echtzeitverarbeitung • Die Probleme des Echtzeitsystementwurfs wurden bereits in den anderen Disziplinen der Informatik gelöst. • Nein. Andere Sichtweisen. Z.B. Performanceanalyse: • in Informatik durchschnittl. Verhalten von Interesse • math.: Warteschlangentheorie • techn.: Benchmarks: SPECmark, Dhrystone, Whetstone) • in EZS worst-case-Verhalten von Interesse: • math.: Analyse der Reaktionszeiten, Auslastung, Einhalten von Deadlines • Aber Warteschlangentheorie hält Einzug in Forschung. Bedingt durch die leistungsstarken Prozessoren • Techn.: Benchmarks: Rhealstone, Hartstone
Falsche Vorstellungen der Echtzeitverarbeitung • Beschäftigung mit Zeitgarantien und Determiniertheit zwecklos, da durch HW- und SW-Fehler keine Garantien möglich. • HW- und SW-Fehler nicht vermeidbar, aber Wahrscheinlichkeit kann minimiert werden. • Fehlerwahrscheinlichkeit > Null darf Systemdesigner nicht hindern, alles für Einhaltung vorgegebener Forderungen zu tun.
Gliederung • Definitionen • Typische Echtzeitanwendungen • Aufbau eines Echtzeitsystems • Eigenschaften von Echtzeitsysteme • Falsche Vorstellungen der Echtzeitverarbeitung • Aufgaben eines Betriebssystems (allgemein) • Architektureigenschaften eines Echtzeitbetriebssystems • Aufbau von Betriebssystemen
Aufgaben eines Betriebssystems (allg.) • Betriebssystem als virtuelle Maschine • Betriebssystem als Ressourcenverwalter • Verwaltung von Prozessen • Verwaltung des internen Hauptspeichers • Verwaltung von Dateien auf externen Speichermedien • Verwaltung von E/A-Kanälen
Betriebssystem als virtuelle Maschine einfach zu bedienen, einfach zu programmieren • Bedienung auf hohem Abstraktionsniveau • Abstraktionsniveau • Human Interface: Windows-Systeme (Windows, X11, KDE, etc.) • Inhalt der Diskette Abstraktion Dateien + Verzeichnisse • Architektur (Befehlssatz, Speicherorg., E/A, Busstruktur) ist schwierig zu programmieren auf Maschinenebene BS zeigt sich dem Anwender als erweiterte Maschine, die leichter als die zugrundeliegende Hardware zu programmieren ist.
Virtuelle Maschine: Hardware Abstraktion Mit OS Ohne OS Programmierer benötigt hohes Detailwissen über die eingesetzte Hardware #include <stdio.h> void main() { printf(Hello World); } Initialisierung der Videokarte Speicher-verwaltung Betriebssystem Operation auf der Videokarte !!! Grafikkarte als Bild
Virtuelle Maschine: Hardware Abstraktion Abstraktion von der Hardware • Wartung der Pflege des RTS einfacher, wenn RTOS verwendet wird • Trend zu objektorientierten und verteilten Techniken erfordert höhere Abstraktionsmöglichkeiten auf tiefer Ebene • möglichst wenig Assemblercode • automatisch generierter Code ist sicherer
Betriebssystem als RessourcenverwalterMotivation Drucker (mehrere Programme) P1 druckt 2 Zeilen P2 " 3 Zeilen P3 " 4 Zeilen Lösung: Drucken in Datei, Spooling Speicher • BS muss Prozesse und Betriebsmittel verwalten • Unterscheidung der BM • durch HW bereitgestellte, Prozessor, Hauptspeicher, periphere Geräte (E/A-Gerät) • in höheren Schichten neue BM, Files, Nachrichten, Semaphore, Ereignisse (Signale) BM ist immer an eine bestimmte Schicht gebunden
Betriebssystem als RessourcenverwalterProzessverwaltung • bestimmt in entscheidenden Maße die Leistungsfähigkeit eines Betriebssystems • optimale Auslastung von CPU-Zeit • Minimierung nutzloser Wartezeiten, wenn Nutzeranforderungen vorliegen • auf Rechner i. d. R. mehrere Prozesse gleichzeitig; wird laufender Prozess unterbrochen, dann wird anderer Prozess fortgesetzt Zeitscheibe, Warten auf ext. Ereignis) • Basis d. Prozessverwaltung sind Funktionen zur Sicherung der Prozessstatusinformationen bei Unterbrechung und Wiederfortsetzung eines Prozesses nach festgelegten Kriterien Prozesstabelle • sorgfältige Steuerung mehrerer Prozesse zur Verhinderung von Verklemmungen und Zugriffskonflikten mit Hilfe der Prozesskoordination und Synchronisation
Betriebssystem als RessourcenverwalterSpeicherverwaltung • realisiert zur effektiven Nutzung d. HS Funktionen zur temporären und dynamischen Zuweisung von Arbeitsbereichen • gebräuchliche Verfahren Overlay- und Swappingverfahren
Betriebssystem als RessourcenverwalterSpeicherverwaltung • Ziel ist effektiven Nutzung d. HS und Auslastung des Systems Funktionen zur temporären und dynamischen Zuweisung von Arbeitsbereichen • Overlay- und Swappingverfahren • Virtuelle Speicherverwaltung • Segmentierung, • Paging • Segmentierung mit Paging
Betriebssystem als RessourcenverwalterSpeicherverwaltung • Overlayverfahren • für Programme, die größer sind als der Hauptspeicher Aufteilung des Speichers in • Programmcodewurzelbereich • Programmcodeoverlaybereich • gemeinsamen Bereich mit programm- und prozessspezifischen Daten • Inhalt des Programmcodewurzelbereiches fest im Speicher, solange Prozeß bearbeitet wird • unterschiedliche Programmcodeoverlayteile werden nacheinander auf ein und demselben Overlayspeicherbereich eingelesen u. abgearbeitet (Overlaybereichsaufteilung wird von Programmierer vorgenommen)
Betriebssystem als RessourcenverwalterSpeicherverwaltung • Swappingverfahren = Verfahren bei dem nacheinander unterschiedliche Prozesse feste o. variable Bereiche des Hauptspeichers für die Abspeicherung, von allen zu einem Prozess gehörenden Informationen, zugewiesen werden • bei Prozesswechsel ist komplette Auslagerung auf einen Massenspeicher möglich • wenn HS für Prozess zu klein, Auslagern auf Platte • Voraussetzung: Massenspeicher mit kurzen Zugriffszeiten • Hardwaremäßige Unterstützung • MMU • Cachespeicher • RAM-Disk
Betriebssystem als RessourcenverwalterDateiverwaltung • Speichern und Verwalten Dateien • realisiert Verbindung zw. BS und externen Massenspeichern Zugriffsoperationen (Öffnen, Schließen, Verändern von Dateibeständen) + Dateischutzmechanismen • hardwaretechnische Betrachtungsweise: • Spuren (tracks) • Sektoren • Record (Datensatz) = Daten in einem Sektor einer Spur = kleinste physisch schreib- o. lesbare Informationsmenge = z. B. 128, 256, 512 Byte • Anzahl d. Spuren abhängig von LW-Typ • Anzahl d. Sektoren pro Spur abhängig von LW-Typ
Betriebssystem als RessourcenverwalterDateiverwaltung • Softwaretechnische Betrachtungsweise: • kleinste von BS + Anwender zu behandelnde Einheit ist eine aus Dateisätzen bestehende Datei • Datei ist eine logisch zusammengehörige Menge einzelner Records • Directory (gibt genaue Anzahl der Dateien an, Größe u. a. Eigenschaften Verwaltung d. Records + Zugriffsoptimierung + alle Hilfsfunktionen übernimmt BS.
Betriebssystem als RessourcenverwalterE/A-Verwaltung • Kommunikation mit Umwelt • Verwaltung der Status der E/A-Kanäle (besetzt, frei) • Bereitstellung der Gerätekanalprogramme • Abwicklung der E/A-Aktivitäten (Polling, Interruptverfahren) • Polling:zyklische Abfrage d. E/A-Status - Interrupt:Programmunterbrechungssignal Interruptserviceroutine
Gliederung • Definitionen • Typische Echtzeitanwendungen • Aufbau eines Echtzeitsystems • Eigenschaften von Echtzeitsysteme • Falsche Vorstellungen der Echtzeitverarbeitung • Aufgaben eines Betriebssystems (allgemein) • Architektureigenschaften eines Echtzeitbetriebssystems • Aufbau von Betriebssystemen
Architektureigenschaften eines Echtzeitbetriebssystems • Deterministisches Verhalten • Multitasking • Zeitsteuerung • prioritätsbasierte preemptive Ablaufsteuerung • Kommunikation und Synchronisation • Interruptbehandlung, Exceptionbehandlung • objektbasierte Architektur
(1) Vorhersagbare Software Plattform • Vorhersagbares Verhalten des RTCS Muß auf externe Stimuli in einer vorhersagbaren Art reagieren • determistisches, vorhersagbares Softwaresystem mit geringem Overhead • Schnell genug • Betriebssystemfunktionen (Kernel Services, API, Systemcalls) dürfen nur einen geringen Overhead haben • Run-time predictability (real-time guarantee)Vorhersagbare Leistung (predictable performance) • Betriebssystemfunktionen (Kernel Services, API, Systemcalls) dürfen nur eine feste Verzögerungszeit (latency) • Schnelle und leistungsstarke Interruptverarbeitung • Externe Ereignisse erreichen das System über Interrupts
(2) Multitasking • Was ist eine Task? • Ein Programm, das gemeinsam mit anderen Programmen von einem Computer unabhängig voneinander ausgeführt wird. • Eine Task hat mehrere Zustände • Was ist Multi-Tasking? • Quasiparalleles Ausführen mehrerer Tasks • Tasks konkurrieren miteinander um das Betriebsmittel CPU • Ziel des Multitaskings ist es, die Auslastung der CPU zu erhöhen
(2) Multitasking • Strukturierung von Programmen in Tasks • Taskimplementierung mit minimaler HW-Kenntnis (Taskimplementierung nicht über Interruptroutinen bzw. TSR- Routinen notwendig) • Taskimplementationen als logisch eigenständige Einheiten (Taskabstraktion)
(3) Zeitsteuerung • Verwendung von Systemressourcen zu vorbestimmten Zeitpunkten • Verwendung von Systemressourcen zu zufälligen Zeitpunkten
(4) Echtzeit-Scheduling • statische, dynamische Prioritäten • online, offline Scheduling • in kommerziellen Echtzeitbetriebssystemen:prioritätsbasiert und preemptiv
Erstellung eines Offline – Schedules(heute eher unüblich) Rechenzeit Periode Deadline Auslastung Task1 1 4 4 0,25 Task2 2 4 4 0,5 Task3 5 20 20 0,25 Task3 Task2 Task1
(5) Interprozesskommunikation • Erforderlich, da Austausch Datenaustausch zwischen Prozessen, Tasks oder Threads erfolgen muß • Synchronisation (Semaphore, Mutex, Condition Variable) • Intertaskkommunikation (Mailbox, Shared Memory ) • Nutzung spezieller durch das RTOS bereitgestellter Betriebssystem-Mechanismen • z.B: Synchronisationsprotokolle (priority inheritance)
(6) Interruptbehandlung und Exceptionbehandlung • leistungsfähiges Interruptsystem notwendig • Unterstützung durch HW • Unterstützung durch SW (BS): ISR, Interrupttasks • LynxOS: ISR, Kernel Level Threads • INTime (früher iRMX): Interrupttask • WindowsNT: Deferred Procedure Call
(7) Objektbasierte Architektur • Bausteine des BS- Kerns werden Objekte genannt • einziger aktiver Objekttyp ist Task (Prozess, Thread) • Beispiele für andere Objekttypen • RMX: Job, Task, Semaphor, Mailbox, Segment, Region, Composite, Extension • RMOS: Task, Semaphor, Mailbox, Event, Pool, Discretes • POSIX: Thread, Mutex, Condition Variables, Semaphore, Signale • Win32: Prozess, Thread, Mutex, Condition Variables, Semaphore, Events
Warum Echtzeitbetriebssysteme verwenden? Antwort ergibt sich aus den Aufgaben eines Betriebssystems als virtuelle Maschine und als Ressourcenverwalter
Warum ein Echtzeitbetriebssystem verwenden? Sensor ADC CPU Anzeige
Warum ein Echtzeitbetriebssystem verwenden? KEYPAD DAC Serial I/O Sensor ADC CPU Anzeige • Jet Engine Pipe: Steuerung der Temperatur in einem Düsentriebwerk eines Flugzeugtriebwerkes
Jet Pipe Temperature Controller • Drei Tasks
Gliederung • Definitionen • Typische Echtzeitanwendungen • Aufbau eines Echtzeitsystems • Eigenschaften von Echtzeitsysteme • Falsche Vorstellungen der Echtzeitverarbeitung • Aufgaben eines Betriebssystems (allgemein) • Architektureigenschaften eines Echtzeitbetriebssystems • Aufbau von Betriebssystemen
Aufbau von Betriebssystemen Command.com DOS BIOS Hardware Schalenmodell Schichtenmodelll
Aufbau von Betriebssystemen Nano-Kernel: Einfaches Thread-of-execution management Unterstützt nur Dienste zum Dispatchen von Tasks Micro-Kernel Ist ein Nanokernel, der Task-Scheduling unterstützt Kernel Ist ein Microkernel, der Mechanismen zur Intertask-synchronisation und -kommunikation unterstützt, wie z.B. Semaphore, Mailboxen u.a. Executive Ist ein Kernel, der private Speicherbereiche, I/O-Dienste und andere komplexe Eigenschaften enthält. Die meisten kommerziellen RT-Kernels sind Exekutiven Operating-System Eine Exekutive, das ein verallgemeinertes Userinterface oder Kommandointerpreter, Sicherheit und File Management System enthält. Gemäß dieser Def. ist der UNIX-Kernel ist ein OS Nach Laplante
Aufbau von Betriebssystemen • MS/DOS • Windows-NT Command.com DOS BIOS Hardware • Linux
Real-Time Operating System • Funktionen: task management, memory management, time management, device drivers und interrupt service. External interrupt Interrupt service Interrupt dispatch Scheduler Timer interrupt Time service and event management Task execution Services (create thread, sleep, notify, send,…) System calls (trap) kernel