1 / 50

Vorlesung Echtzeitbetriebssysteme II.

Vorlesung Echtzeitbetriebssysteme II. . Dr.-Ing. Frank Golatowski. Ziele dieser Vorlesung. Gliederung. Definitionen Typische Echtzeitanwendungen Aufbau eines Echtzeitsystems Eigenschaften von Echtzeitsysteme Falsche Vorstellungen der Echtzeitverarbeitung

truong
Download Presentation

Vorlesung Echtzeitbetriebssysteme II.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VorlesungEchtzeitbetriebssysteme II. Dr.-Ing. Frank Golatowski

  2. Ziele dieser Vorlesung

  3. Gliederung • Definitionen • Typische Echtzeitanwendungen • Aufbau eines Echtzeitsystems • Eigenschaften von Echtzeitsysteme • Falsche Vorstellungen der Echtzeitverarbeitung • Aufgaben eines Betriebssystems (allgemein) • Architektureigenschaften eines Echtzeitbetriebssystems • Aufbau von Betriebssystemen

  4. Aufbau eines Echtzeitsystems Allgemeines Real- Time- System besteht aus: (a) zu steuerndes System (controlled system) (b) Steuerungssystem (control system) (c) Bediensystem (operator system)

  5. Gliederung • Definitionen • Typische Echtzeitanwendungen • Aufbau eines Echtzeitsystems • Eigenschaften von Echtzeitsystemen • Falsche Vorstellungen der Echtzeitverarbeitung • Aufgaben eines Betriebssystems (allgemein) • Architektureigenschaften eines Echtzeitbetriebssystems

  6. 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.

  7. 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

  8. Gliederung • Definitionen • Typische Echtzeitanwendungen • Aufbau eines Echtzeitsystems • Eigenschaften von Echtzeitsysteme • Falsche Vorstellungen der Echtzeitverarbeitung • Aufgaben eines Betriebssystems (allgemein) • Architektureigenschaften eines Echtzeitbetriebssystems • Aufbau von Betriebssystemen

  9. 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

  10. 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)

  11. Falsche Vorstellungen der Echtzeitverarbeitung • Echtzeitsystemforschung ist Performance Engineering

  12. 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

  13. 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.

  14. Gliederung • Definitionen • Typische Echtzeitanwendungen • Aufbau eines Echtzeitsystems • Eigenschaften von Echtzeitsysteme • Falsche Vorstellungen der Echtzeitverarbeitung • Aufgaben eines Betriebssystems (allgemein) • Architektureigenschaften eines Echtzeitbetriebssystems • Aufbau von Betriebssystemen

  15. 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

  16. 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.

  17. 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

  18. 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

  19. 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

  20. 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

  21. Betriebssystem als RessourcenverwalterSpeicherverwaltung • realisiert zur effektiven Nutzung d. HS Funktionen zur temporären und dynamischen Zuweisung von Arbeitsbereichen • gebräuchliche Verfahren Overlay- und Swappingverfahren

  22. 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

  23. 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)

  24. 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 

  25. 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

  26. 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.

  27. 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

  28. Gliederung • Definitionen • Typische Echtzeitanwendungen • Aufbau eines Echtzeitsystems • Eigenschaften von Echtzeitsysteme • Falsche Vorstellungen der Echtzeitverarbeitung • Aufgaben eines Betriebssystems (allgemein) • Architektureigenschaften eines Echtzeitbetriebssystems • Aufbau von Betriebssystemen

  29. Architektureigenschaften eines Echtzeitbetriebssystems • Deterministisches Verhalten • Multitasking • Zeitsteuerung • prioritätsbasierte preemptive Ablaufsteuerung • Kommunikation und Synchronisation • Interruptbehandlung, Exceptionbehandlung • objektbasierte Architektur

  30. (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

  31. (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

  32. (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)

  33. (3) Zeitsteuerung • Verwendung von Systemressourcen zu vorbestimmten Zeitpunkten • Verwendung von Systemressourcen zu zufälligen Zeitpunkten

  34. (4) Echtzeit-Scheduling • statische, dynamische Prioritäten • online, offline Scheduling • in kommerziellen Echtzeitbetriebssystemen:prioritätsbasiert und preemptiv

  35. 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

  36. (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)

  37. (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

  38. (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

  39. Warum Echtzeitbetriebssysteme verwenden? Antwort ergibt sich aus den Aufgaben eines Betriebssystems als virtuelle Maschine und als Ressourcenverwalter

  40. Warum ein Echtzeitbetriebssystem verwenden? Sensor ADC CPU Anzeige

  41. 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

  42. Jet Pipe Temperature Controller • Drei Tasks

  43. Roboterfußball

  44. Gliederung • Definitionen • Typische Echtzeitanwendungen • Aufbau eines Echtzeitsystems • Eigenschaften von Echtzeitsysteme • Falsche Vorstellungen der Echtzeitverarbeitung • Aufgaben eines Betriebssystems (allgemein) • Architektureigenschaften eines Echtzeitbetriebssystems • Aufbau von Betriebssystemen

  45. Aufbau von Betriebssystemen Command.com DOS BIOS Hardware Schalenmodell Schichtenmodelll

  46. 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

  47. Aufbau von Betriebssystemen • MS/DOS • Windows-NT Command.com DOS BIOS Hardware • Linux

  48. 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

More Related