Echtzeitsysteme

Was ist ein Echtzeitsystem?

Nach DIN 44300 gilt folgende Definition für den Begriff „Echtzeitsystem“: Ein Betrieb eines Rechensystems, bei dem Programme zur Verarbeitung anfallender Daten ständig betriebsbereit sind, derart, dass die Verarbeitungsergebnisse innerhalb einer vorgegebenen Zeitspanne verfügbar sind. Die Daten können je nach Anwendungsfall nach einer zeitlich zufälligen Verteilung oder zu vorherbestimmten Zeitpunkten anfallen.
Dies bedeutet, dass ein Echtzeitsystem sowohl die funktionale Korrektheit als auch die Dauer der Ermittlung der Ergebnisse garantieren muss (zeitliche Korrektheit). Hierbei ist unter harter und weicher Echtzeit zu unterscheiden. Beispielsweise muss ein System für Videokonferenzen, welches Bild und Ton innerhalb von Millisekunden aufnimmt, versendet und darstellt, nur weiche Echtzeitanforderungen erfüllen, da bei Verzögerung von einigen Bildern dies lediglich zu einer „ruckartigen“ Darstellung führt. Im Gegensatz dazu muss die Motorsteuerung eines Autos harte Echtzeit erfüllen, da bei nicht korrekter Einhaltung dies einen mechanischen Schaden oder im schlimmsten Fall einen Unfall zur Folge hat.

Inhalt der Vorlesung

Die Vorlesung „Echtzeitsysteme“ stellt zunächst allgemein wichtige Grundlagen von Echtzeitsystemen vor. So wird unter anderem auf Hardwareanforderungen (wie Interrupttechnik, Timer) und Echtzeitbetriebssysteme, hier vor allem auf Schedulingtechniken wie Rate Monotonic Scheduling oder Earliest Deadline First, Prioritätsinversion oder Prioritätsanhebung eingegangen. Abschließend behandelt die Vorlesung verschiedene Softwareanforderungen und Programmiersprachen, Entwurfsmethodiken (beispielsweise Endliche Automaten, Petri-Netze), und Performanzbewertung.

Inhalt der Übung

Ziel der Übung ist, dass die Teilnehmer(innen) selbständig Aufgaben aus dem Bereich Echtzeit lösen können. Praktische Rechnerübungen mit QNX, einem Microkernel (Neutrino), Echtzeitbetriebssystem (RTOS) und Entwicklungsumgebung (Momentics) nehmen daher einen großen Raum ein.



QNX Photon: GUI, laufend auf dem QNX Microkernel namens Neutrino, mit vielen Features, die aber dennoch harte Echtzeit erlaubt.

Der Schwerpunkt der Übung liegt dabei auf Threadsynchronisation und verschiedenen Schedulingalgorithmen.



QNX Momentics: Vollständige IDE, die auf Eclipse CDT basiert, mit einem angelegtem C++ Projekt und vordefiniertem Makefile.

Informationen