BIN422: Echtzeitsysteme

Wahlpflicht-Module

BIN422: Echtzeitsysteme

Kurzporträt BIN422: Echtzeitsysteme
Worum geht es? Echtzeitsysteme müssen nicht nur korrekt rechnen, sondern auch rechtzeitig reagieren. Das Modul behandelt, wie zeitkritische Software für physikalische Prozesse modelliert, implementiert und gemessen wird. Dabei spielen Nebenläufigkeit, Scheduling, Zeitquellen, Messbarkeit und kontrollierte Fehlerreaktionen eine zentrale Rolle.
Wofür braucht man es? Echtzeitkompetenzen werden in Robotik, eingebetteten Systemen, Automatisierung, Medizintechnik, Fahrzeugtechnik und industriellen Steuerungen benötigt. Wer solche Systeme entwickelt, muss begründen können, ob Reaktionen innerhalb vorgegebener Zeitgrenzen erfolgen und wie sich Last- und Fehlerfälle auswirken.
Wieso ist es interessant? Das Modul zeigt, dass Softwareverhalten in der realen Welt messbar und zeitabhängig ist. Kleine Verzögerungen, ungünstige Prioritäten oder Speicherzugriffe können große Wirkung haben. Dadurch wird sichtbar, wie eng Programmierung, Betriebssysteme und physikalische Prozesse zusammenhängen.
Modulverantwortung

Prof. Dr. Jürgen Quade

Lehrperson(en)
  • Prof. Dr. Jürgen Quade
  • Prof. Dr. Benedikt Janßen
Verwendbarkeit

Bachelor Informatik

Fächergruppe

Informatik

Modultyp
Wahlpflicht
Sprache

Deutsch

Angebot

Wintersemester

Dauer

1 Semester

Credits

5 ECTS

Benotung

Deutsche Notenskala 1-5

SWS

2 V | 1 Ü | 1 P | - S

Workload
Präsenzstudium: 45 Std. Selbststudium: 90 Std.
Engl. Titel

Real-Time Systems

Empfohlene Voraussetzungen
  • BIN005: Systemsoftware: Prozesse, Threads, Speicher, I/O, Betriebssystem-Schnittstellen.
  • BIN421: Hardwarenahe Systementwicklung: hardwarenahe Schnittstellen, Sensorik, Aktorik.
  • Programmierung in C.
Lernergebnisse / Kompetenzen
WAS

Mit erfolgreichem Abschluss des Moduls sind die Studierenden in der Lage, eine vernetzte Echtzeitsystemlösung für einen physikalischen Prozess mit nachweisbarem Zeitverhalten und kontrollierter Fehlerreaktion zu entwickeln.

WOMIT

Die Studierenden erreichen dieses Lernergebnis, indem sie

  • funktionale, zeitliche und sicherheitsbezogene Anforderungen mit Zustands-, Task-, Kommunikations- und Zeitmodellen beschreiben,
  • Echtzeitarchitekturen unter Berücksichtigung von Anwendung, Betriebssystemkern, Prozessen, Threads und Interrupts entwerfen,
  • nebenläufige Echtzeitsoftware mit Betriebssystem-APIs, Synchronisation, Interprozesskommunikation und Zeitgebern implementieren,
  • Verfahren zur Vermeidung unkontrollierter Seitenfehler durch Speichervorbelegung und -sperrung anwenden,
  • Schedulingverfahren, Ressourcenkonflikte, Prioritätsinversion und deadlinebezogene Fragestellungen analysieren,
  • lokale und verteilte Zeitquellen anhand von Offset, Drift, Jitter und Synchronisationsfehlern bewerten,
  • Zeitverhalten und Ressourcenverbrauch durch Logging, Tracing und reproduzierbare Messungen diagnostizieren.
WOZU

Die Studierenden nutzen diese Kompetenzen, um softwareintensive Systeme zuverlässig mit zeitkritischen Vorgängen der physischen Welt zu koppeln. Sie können Echtzeitverhalten experimentell nachweisen und Fehlerreaktionen so gestalten, dass physikalische Prozesse kontrolliert bleiben.

Inhalte
  • Harte und weiche Echtzeitanforderungen, Perioden, Deadlines, Latenz, Jitter und Zykluszeiten
  • Zustandsautomaten, Tasks, Kommunikation, Zeitbedingungen und sichere Zustände
  • Anwendungs-/Kernel-Grenze, Prozesse, Threads, Interrupt-Verarbeitung und Multicore-Zuordnung
  • Synchronisation, kritische Abschnitte, Interprozesskommunikation, Deadlocks, Race Conditions und Prioritätsinversion
  • Schedulingmodelle, Response-Time- und Auslastungsanalysen ohne formale Verifikation
  • Schedulingklassen, CPU-Affinität, Zeitgeber, Memory Prefaulting und Speichersperrung
  • Monotone und zivile Uhren, Zeitstempel, Offset, Drift und Ereignisordnung
  • NTP und PTP als exemplarische Synchronisationsverfahren
  • Logging, Tracing, Latenz- und Jittermessung
  • Watchdogs, Timeouts, Plausibilitätsprüfungen, Fail-safe-Zustände und Fehlerinjektion
  • Entwicklung und experimentelle Bewertung eines vernetzten Echtzeitsystems
Prüfungsvorleistung

Testat im Rahmen der Übung.

Prüfungsleistung

Studien- oder Projektarbeit. Das Prüfungskonzept ist als Projektarbeit in Gruppen mit individuellem Fachgespräch ausgestaltet. Gegenstand ist ein lauffähiges Softwareartefakt mit technischer Dokumentation; das Fachgespräch überprüft persönliches Systemverständnis und Entwurfsentscheidungen.

Literatur
  • Jürgen Quade, Michael Mächtel: Moderne Realzeitsysteme kompakt. Eine Einführung mit Embedded Linux. dpunkt.verlag, 2012.
  • Jane W. S. Liu: Real-Time Systems. Prentice Hall, 2000.
  • Giorgio C. Buttazzo: Hard Real-Time Computing Systems. 3. Auflage, Springer, 2011.
  • Hermann Kopetz: Real-Time Systems: Design Principles for Distributed Embedded Applications. 2. Auflage, Springer, 2011.