Harte und weiche Echtzeitsysteme

Material zur Vorlesung Echtzeitsysteme an der Hochschule Niederrhein.

Jürgen Quade

Versionsgeschichte
Version 4.1$Date: 2011/09/19 13:58:30 $Geändert durch: $Author: quade $
Rechtlicher Hinweis
Inhaltsverzeichnis
1. Überblick
1.1. Definitionen
1.2. Kennzeichen von Realzeitsystemen
1.3. Realzeitsystem-Komponenten
2. Realzeitbetrieb
2.1. Echtzeitbedingungen
2.2. Latenzzeiten
2.3. Unterbrechbarkeit und Prioritäten
3. Realzeitbetriebssysteme
3.1. Aufbau und Struktur
3.2. Betriebssystemkern
3.3. Zeitaspekte
4. Aspekte der nebenläufigen Echtzeit-Programmierung
4.1. Taskmanagement
4.2. Schutz kritischer Abschnitte
4.3. Programmtechnischer Umgang mit Zeiten
4.4. Inter-Prozess-Kommunikation
4.5. Condition-Variable (Event)
4.6. Signals
4.7. Peripheriezugriff
5. Echtzeitarchitekturen
5.1. Applikationen im Kernel
5.2. Mehrkernmaschine
5.3. Mehrkernelansatz
6. Echtzeitsysteme in sicherheitskritischen Anwendungen
6.1. Begriffsbestimmung
6.2. Mathematische Grundlagen
6.3. Redundante Systeme
6.4. Weitere Maßnahmen zur Zuverlässigkeitssteigerung
7. Formale Beschreibungsmethoden
7.1. Daten- und Kontrollflussdiagramme
7.2. Darstellung von Programmabläufen mit Hilfe von Struktogrammen
7.3. Petrinetze
8. Echtzeitnachweis
8.1. Worst Case Betrachtungen
8.2. Abschätzung der Worst Case Execution Time (WCET)
8.3. Abschätzung der Best Case Execution Time (BCET)
8.4. Echtzeitnachweis bei prioritätengesteuertem Scheduling
8.5. Echtzeitnachweis bei Deadline-Scheduling
Literatur
Stichwortverzeichnis
Tabellenverzeichnis
3-1. Vergleich Task und Thread
4-1. Unterschiede zwischen einem Signal und einer Condition Variablen
Abbildungsverzeichnis
1-1. Steuerung versus Regelung
1-2. Zusammenhang zwischen unterschiedlichen Prozessformen
1-3. Struktur eines Echtzeitsystem
1-4. Realzeitsysteme und ihre Zeitanforderungen [TimMon97]
1-5. Architektur einer Echtzeitsteuerung
2-1. Anforderungsfunktion
2-2. Auslastung
2-3. Reaktionsbereich
2-4. Maximal zulässige Reaktionszeit bei einer Rohrpost
2-5. Rechnerkernbelegung durch 4 Rechenprozesse
2-6. Harte und weiche Echtzeit als Kostenfunktion
2-7. Benefit-Function
2-8. Datenflußdiagramm Meßwertaufnahme
2-9. Struktogramm Meßwerterfassung sequentiell
2-10. Zeitdiagramm Meßwert sequentiell
2-11. Struktogramm Meßwerterfassung parallel
2-12. Zeitdiagramm Meßwert parallel
3-1. Betriebssystem-Architektur
3-2. Interruptverarbeitung
3-3. Interrupt-Service-Routine in einem Realzeitbetriebssystem
3-4. ISR mit Scheduler
3-5. Process-Kontrollblock (PCB)
3-6. Prozess-Zustände
3-7. Speicherbereiche einer Task
3-8. Zeitanforderungen (Beispiel)
3-9. Prinzip des Schedulings
3-10. Prinzip des FCFS Schedulings
3-11. First Come First Serve Scheduling
3-12. Round Robin Schedulings
3-13. Prioritätengesteuertes Schedulings
3-14. Prinzip des Deadline Scheduling
3-15. Beispiel für Deadline Scheduling
3-16. Realzeiteigenschaften beim Deadline Scheduling
3-17. Posix Scheduling
3-18. Beispiel für Wind Scheduling
3-19. O(1) Scheduler im Linux-Kernel
3-20. Der übergeordnete Mehrprozessorscheduler verteilt die Jobs auf die einzelnen Prozessoren.
3-21. Die Modellierung eines SMP-Systems im Linux-Kernel.
3-22. Adressumsetzung mittels MMU
3-23. Segmentierung beim 8086
3-24. Beispiel zum Normalisieren
3-25. Strukturierung der logischen Adresse
3-26. Aufbau eines Seitendeskriptors
3-27. MMU auf Basis von Seitenadressierung
3-28. Geräteschnittstelle
3-29. Expliziter Warteaufruf mit Win32 Interface
3-30. Asynchroner Zugriff über Threads
3-31. Öffnen eines Gerätes im Non-Blocking Mode
3-32. Treiberauswahl
3-33. Einbindung des Gerätetreibers in das System
3-34. Lesen über den Buffercache
3-35. Codebeispiel Systemcall
3-36. Codebeispiel Library-Call
3-37. Verschiedene Bibliotheksarten
3-38. Dynamisches Laden von Funktionen während der Laufzeit
3-39. Verzögerungszeiten
3-40. Unterbrechungsmodell
4-1. Prioritäten und Synchronisation
4-2. Prioritätsinversion
4-3. Deadlock
4-4. Weil der Programmierer des Treibers für die Echtzeituhr das Schaltjahr nicht richtig programmierte, blieben am 31. Dezember 2008 viele MP3-Player der Firma Microsoft (Zune-Player) hängen.
4-5. Basisstruktur einer Socket-Serverapplikation
4-6. Basisstruktur einer Socket-Clientapplikation
5-1. Datenstruktur zur Verwaltung von mehreren Prozessorkernen.
5-2. Hierarchische Prozessor-Organisation.
5-3. Deaktivieren von Rechnerkernen.
5-4. RT-Linux Systemarchitektur [Yod99]
5-5. Unterschied RT-Linux/RedHawk-Linux
6-1. Zeitverlauf des Systemzustands [Färber94]
6-2. Verfügbarkeitsfunktion [Färber 1994]
6-3. Badewannenkurve [Färber94]
6-4. Systemzustand bezüglich der Funktionstüchtigkeit [Färber94]
6-5. Serienbetrieb
6-6. Parallelbetrieb
6-7. Parallelbetrieb mit Koppelkomponente
6-8. Power-fail-Interrupt
7-1. Abbildung technischer Prozesse auf Rechenprozesse
7-2. Elemente der Datenflussdiagramme
7-3. Einfaches DFD einer Carrerabahnsteuerung
7-4. DFD Audiostreaming
7-5. Zwei Transtionen direkt hintereinander sind nicht erlaubt.
7-6. Unterschiedliche Übergänge bei Petrinetzen
7-7. Stellen/Transitionsnetz
7-8. Petrinetz einer Fertigungsstraße [Abel1990]
7-9. Synchronisation durch ein Petrinetz modelliert [Abel1990]
7-10. Zugriff auf ein gemeinsames Betriebsmittel [Abel1990]
8-1. Parameterauswahl für den Worst Case Fall
8-2. Verteilung der Rechenzeit bei minimalen Reaktionszeiten
8-3. Messprinzip zur Bestimmung der WCET
8-4. Benötigte Rechenzeit (Computation Time) tc(t)
8-5. Available Computation Time ta(t)
8-6. Bestimmung von tRmax (zu Beispiel [Grafische Herleitung zur Bestimmung der maximalen Reaktionszeit])
8-7. Bestimmung von tRmax höher priorisierter Prozesse (Zahlen von [Grafische Herleitung zur Bestimmung der maximalen Reaktionszeit])
8-8. Bestimmung der maximalen Reaktionszeit
8-9. Ereignisstrom-Modell
8-10. Ereignisstrom
8-11. Inhomogener Ereignisstrom
8-12. Homogener Ereignisstrom
8-13. Ereignisdichtefunktion des inhomogenen Ereignisstroms
8-14. Ereignisstrom-Modell
8-15. Echtzeitnachweis mit Hilfe des Ereignisstrom-Modells
8-16. Prozessbeschreibung und Ereignisdichtefunktion
8-17. Rechenzeitanforderungsfunktion tc(I)
8-18. Rechenzeitanforderungsfunktion tC(I) bei verschärften Bedingungen
8-19. Auflösung der Abhängigkeiten
8-20. Rechenzeitanforderungsfunktion tC(I)
Beispiele
2-1. Rohrpostsystem
2-2. Unterbrechbarkeit bei der Meßwerterfassung
4-1. Execve
4-2. Programmbeispiel Threads
4-3. Threads parametrieren
4-4. Erzwungene Prozessmigration
4-5. Programmbeispiel Mutex
4-6. Prioritätsinversion aktivieren
4-7. Schlafenlegen einer Task
4-8. Periodische Taskaktivierung
4-9. Interprozess-Kommunikation über Pipes
4-10. Socket-Serverprogramm
4-11. Socket-Clientprogramm
4-12. Condition-Variable zur Lösung des Producer-/Consumer-Problems
4-13. Programmierbeispiel Signal
4-14. Programmbeispiel Zugriff auf Peripherie
4-15. Programmbeispiels select
4-16. Speicherbereiche in den Adressraum einblenden
8-1. Grafische Herleitung zur Bestimmung der maximalen Reaktionszeit
8-2. Echtzeitnachweis bei Deadline-Scheduling
Gleichungen
2-1. Gesamtauslastung
2-2. Reaktionszeit
2-3. Pünktlichkeitsbedingung
6-1. MTBF und MTTR
6-2. Dauerverfügbarkeit und Dauerunverfügbarkeit
6-3. Ausfallrate
6-4. Verfügbarkeit in Abhängigkeit von der Zeit
6-5. Verfügbarkeit bei Serienbetrieb
6-6. Unverfügbarkeit bei Parallelbetrieb
8-1. Berechnung der Rechenzeitanforderung eines periodisch aufgerufenen Jobs.
8-2. Iterative Bestimmung von tRmax
8-3. Ereignisdichtefunktion eines periodischen Ereignisses
8-4. Rechenzeitanforderungsfunktion