Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

Echtzeitsysteme (WS 2019/20)


Der Begriff Echtzeit ist einer der am meisten strapazierten Begriffe der Informatik und wird in den verschiedensten Zusammenhängen benutzt: Echtzeitstrategiespiel, Videobearbeitung in Echtzeit, Echtzeitsteuerung, Echtzeitkommunikation, und viele mehr.

Tatsächlich zeichnen sich Echtzeitsysteme nicht durch ihre Geschwindigkeit, sondern durch ihre Kopplung an die (echte) Realzeit aus. Ihr Ziel ist die rechtzeitige Bereitstellung von Funktionen und Ergebnissen, wie das nebenstehende Beispiel eines Airbags sehr anschaulich zeigt.

News

13.01.2020: Die Prüfungsanmeldung ist ab heute 13.01.2020 16:00 Uhr bis spätestens 02.02.2020 im Waffel geschaltet (§)
16.12.2019: Erinnerung: Heute ist Weihnachtsvorlesung mit Glühwein und Punsch. (pu)
22.11.2019: Hinweis zur Eingabedatenerzeugung für die Funktion heapsort in der Ausführungszeit: Da die Laufzeit auch von Speicherplatzierung abhängig ist (siehe Mailingliste) haben wir den Modus für die Zeitschranke auf relativ gewechselt. Für die Aufgabe 20 müsst ihr ein Eingabe konstruieren, welche bei euch 20 Zyklen länger braucht als ein aufsteigend sortiertes Array. (§)
15.11.2019: Aus organisatorischen Gründen haben wir uns entschieden, den festen Termin der Ausführungszeit um eine Woche nach hinten auf den 28.11.2019 (vor der ersten Rechnerübung) zu verschieben. (§)
10.11.2019: Übungsbetrieb am 12.11.2019 und 13.11.2019: Wie dem Plan zu entnehmen findet an diesen Terminen keine Tafelübung statt. Die Rechnerübungen bleiben davon unberührt. (§)
23.10.2019: Die Anmeldung für den Übungsbetrieb im Waffel ist nun geschlossen, eine Anmeldung ist nicht mehr möglich(§)
15.10.2019: Das Formular zur Gruppenanmeldung ist jetzt verfügbar. (pr)
09.10.2019: Übungsbetrieb am 17.10.2019: Aufgrund der Linux/UNIX-Einführung der FSI Informatik finden die Rechnerübungen am 17.10.2019 einmalig im Raum 01.155-113 (CIP1) statt. (pr)
07.10.2019: Die Veranstaltung beginnt mit der Vorlesung am Montag den 14.10.2019. Der Übungsbetrieb beginnt mit der Tafelübung am Dienstag den 15.10.2019. Die Übungsanmeldung erfolgt nach der Vorlesung am 14.10.2019. Nähere Details hierzu werden in der erster Vorlesung bekanntgegeben (pr)
29.08.2019: Die Anmeldung für Tafelübungen im Waffel ist ab sofort freigeschalten. (pr)
07.08.2019: Für Interessierte: Auflistung der Voraussetzungen und Fragebogen Programmierkenntnisse sind bereits aktualisiert (§)
07.08.2019: Migration der Website: alle Daten entstammen noch dem letzten Semester (§)

Inhalt der Vorlesung

Unfortunately, your browser does not support SVG!

Durch die Kopplung an die Realzeit, sind Echtzeitsysteme per Definition in die (reale) Umwelt eingebettet. Hier dienen sie typischerweise der Steuerung und Regelung von physikalischen Prozessen, wie beispielsweise dem Airbag eines Fahrzeugs.

Die Entwicklung eines Echtzeitsystems schliesst typischerweise Experten aus verschiedenen Bereichen mit ein. Die Veranstaltung nähert sich der Thematik zwar aus der Sicht der Informatik, ist jedoch grundsätzlich interdisziplinär ausgelegt und richtet sich sowohl an Studierende der Informatik als auch an diejenigen anderer Studiengänge mit einem anwendungsorientierten Bezug wie beispielsweise Mechatronik, Elektrotechnik, I&K, CE, Maschinenbau und Medizintechnik (→ Voraussetzungen).

Entsprechend weit spannt sich auch das Themengebiet Echtzeitsysteme auf. Abhängig von der Betrachtungsebene spricht man allgemein von eingebetteten Systemen oder, um den regelungstechnischen Anteil hervorzuheben, von Cyber-Physical Systems. Die Veranstaltung Echtzeitsysteme nimmt hierbei den Standpunkt der Systemsoftware (Echtzeitbetriebssystem) ein und erlaubt dadurch einen querschneidenden Einblick in die gesamte Welt der Echtzeitsystementwicklung. Die Vorlesung vermittelt dabei die notwendigen Grundkenntnisse, Techniken und Mechanismen für die Entwicklung von Echtzeit(betriebs)systemen und schafft damit eine gemeinsame Grundlage für alle Beteiligten.

Ziel der Veranstaltung ist neben einem fundierten theoretischen Überblick auch die tiefgehende Vermittlung von praktischem Wissen und Fähigkeiten, welches als Basis für eine erfolgreiche industrielle bzw. wissenschaftliche Anwendung dienen können.

Eine Übersicht über die Themen der Vorlesung findet sich hier beziehungsweise in der Modulbeschreibung.

Terminplan und Vorlesungsfolien...

Videoaufzeichnung WS18/19...

Inhalt der Übung

In den begleitenden Übungen werden die in der Vorlesung vorgestellten Techniken bei der Entwicklung eines Echtzeitsystems praktisch umgesetzt. Hierfür setzen wir in diesem Semester das weitverbreitete Echtzeitbetriebssystem eCos ein. Die Entwicklung erfolgt dabei an einem STM32F429I-DISCOVERY Evaluationsboard. Vorkenntnisse in hardwarenaher Programmierung sind nicht erforderlich.

In den Übungsaufgaben wird ein Oszilloskop als realistische Beispielanwendung entwickelt. Die in der Vorlesung vorgestellten Probleme und Lösungen können damit sehr gut aufgezeigt werden. So wird beispielsweise die Echtzeitfähigkeit der Signalverarbeitung durch Ausgabe des Signals auf dem Bildschirm gezeigt, und per FFT sichtbar gemacht.

Im Verlauf der Übungen wird auch auf spezielle Werkzeuge für die Entwicklung und Analyse von Echtzeitsystemen eingegangen, wie sich auch in der Industrie Anwendung finden. Hierzu zählt beispielsweise die Ermittlung der maximalen Ausführungszeit (worst case execution time, WCET) mittels des beim Airbus A380 eingesetzten aiT Analysers. Das Ziel ist hierbei möglichst praxisorientiert und nahe an den industriellen Anforderungen Fähigkeiten zu vermitteln und einen fundierten Einblick zu erhalten.

Die Übung wird in zwei Ausprägungen angeboten:

  • Grundlegende Übungen [Ü_EZS] (2,5 ETCS)
  • Erweiterte Übungen [EÜ_EZS] (5 ECTS)
Diese unterscheiden sich grundsätzlich nur in "Tiefe" und Umfang der gestellten Übungsaufgaben. Die erweiterte Übung zielt hierbei auf die selbstständige Erarbeitung von Problemlösungen ab, welche über das reine Problemverständnis hinausgehen. Dies umfasst insbesondere auch entsprechende Programmaufgaben und setzt daher einen etwas sichereren Umgang mit der Programmiersprache C/C++ und allgemeine Werkzeug/Linux-Kenntnisse voraus.

Weitere Informationen zur Übung...

Voraussetzungen

Die Veranstaltung ist inhaltlich weitgehend in sich abgeschlossen und für alle Studierenden der genannten Studienfächern mit einer Begeisterungsfähigkeit für praktische, systemnahe Informatik geeignet. Unabhängig davon sind grundlegenden Betriebssystemkenntnissen, systemnaher Programmierung von eingebetteten Systemen und ein gewisses Durchhaltevermögen äußerst hilfreich.

Für die Bearbeitung der Übungsaufgaben sind entsprechend grundlegenden Programmierkenntnissen in C und/oder C++ notwendig. Hierfür ausreichend ist eine der folgenden Grundlagenveranstaltungen: Systemprogrammierung I/II, Softwaresysteme I, Systemnahe Programmierung in C beziehungsweise äquivalenter Veranstaltungen. Eine erfolgreiche Teilnahme ist für Nebenfächler auch auf der Basis der Grundlagen der Informatik (Programmiersprache: Java) möglich. Hierfür ist die Bereitschaft der eigenständigen (veranstaltungsbegleitenden) Aneignung grundlegender C/C++ Kenntnisse jedoch zwingend erforderlich. Entsprechende Unterlagen und Literaturempfehlungen werden von uns gerne bereitgestellt.

Weiterhin sind grundlegende Erfahrungen im Umgang mit der Linux-Umgebung in den CIP-Pools beziehungsweise deren Aneignung erforderlich.

Fragebogen: Programmierkenntnisse

Zur Einordnung der eigenen C-Kenntnisse haben wir einen Aufgabenkatalog aus Systemnahe Programmierung in C zusammengestellt. Teilnehmer, die sowohl die meisten Fragen sicher beantworten als auch die Programmieraufgabe lösen können, sollten keine handwerklichen Probleme mit den Übungsaufgaben haben und können sich voll auf die zu vermittelnden Konzepte konzentrieren. Fällt die Beantwortung der Fragen schwer, sollten die fraglichen Programmierkonzepte und die Bedeutung der unbekannten Schlüsselwörter vor Belegung des Moduls nachrecherchiert werden, da diese nicht im Rahmen der Übung vermittelt werden können.

Dozenten und Betreuer

Dr.-Ing. Peter Ulbrich Florian Schmaus, M.Sc. Simon Schuster, M.Sc. Phillip Raffeck, M.Sc. Peter Wägemann, M.Sc.
Roman Sommer Lukas Wegmann

Terminübersicht (Wochenplanung)

Mo Di Mi Do Fr
08:00
09:00
10:00
10:15 - 11:45
RÜ EZS
(Schuster)
02.151-113 a CIP, 02.151-113 b CIP
11:00
12:00
12:15 - 13:45
EZS
(Ulbrich)
H4
12:15 - 13:45
Ü EZS
(Schuster)
0.031-113
12:15 - 14:00
RÜ EZS
(nur 17.10.)
(Schuster)
01.155-113 CIP, 01.155N-113 CIP
12:15 - 14:00
RÜ EZS
(ab 24.10., nicht 17.10.)
(Schuster)
02.151-113 a CIP, 02.151-113 b CIP
13:00
14:00
14:00 - 15:45
RÜ EZS
(nur 17.10.)
(Schuster)
01.155-113 CIP, 01.155N-113 CIP
14:00 - 15:45
RÜ EZS
(ab 24.10., nicht 17.10.)
(Schuster)
02.151-113 a CIP, 02.151-113 b CIP
14:15 - 15:45
Ü EZS
(Raffeck)
H4
15:00
16:00
17:00

Terminübersicht (Semesterplan)

Ablauf von Vorlesung und Übungsaufgaben im Überblick: Die Abgabe der Aufgaben findet im Rahmen der regulären Übung statt und erfolgt durch Demonstration eurer Lösung am Rechner.

KWMoDiMiDoFrThemen
42 14.10 15.10 16.10 17.10 18.10 Vorlesung 1: Organisation
Vorlesung 1: Einleitung
Übung 1: Organisation
Übung 1: Hallo Welt
Vorlesung 1 Ausgabe A1 Übung 1
Übung 1
43 21.10 22.10 23.10 24.10 25.10 Vorlesung 2: Physikalisches Objekt - kontrollierendes Rechensystem
Übung 2: Systemsoftwareentwicklung
Vorlesung 2 Übung 2 Übung 2
44 28.10 29.10 30.10 31.10 01.11 Vorlesung 3: Struktureller Aufbau von Echtzeitanwendungen
Übung 3: Antwortzeit
Vorlesung 3 Ausgabe A2 Übung 3 Fester Termin A1 Allerheiligen
Übung 3
45 04.11 05.11 06.11 07.11 08.11 Vorlesung 4: Zeitliche Analyse von Echtzeitanwendungen
Übung 4: WCET Analyse
Vorlesung 4 Ausgabe A3 Übung 4
Übung 4
46 11.11 12.11 13.11 14.11 15.11 Vorlesung 5: Abarbeitung periodischer Echtzeitsysteme
Vorlesung 5 Fester Termin A2
47 18.11 19.11 20.11 21.11 22.11 Vorlesung 6: Ereignisgesteuerte Ablaufplanung periodischer Echtzeitsysteme
Übung 5: Simple Scope
Vorlesung 6 Ausgabe A4 Übung 5
Übung 5
48 25.11 26.11 27.11 28.11 29.11 Vorlesung 7: Zeitgesteuerte Ablaufplanung periodischer Echtzeitsysteme
Übung 6: Cyclic Scope
Vorlesung 7 Ausgabe A5 Übung 6 Fester Termin A3
Übung 6
49 02.12 03.12 04.12 05.12 06.12 Vorlesung 8: Grundlegende Abfertigung nicht-periodischer Echtzeitsysteme
Vorlesung 8 Fester Termin A4
50 09.12 10.12 11.12 12.12 13.12 Vorlesung 9: Zustellerkonzepte und Übernahmeprüfung
Vorlesung 9
51 16.12 17.12 18.12 19.12 20.12 Vorlesung 10: Rangfolge (Weihnachtsvorlesung)
Übung 7: Nicht-periodische Aufgaben, Zusteller, Extended Scope
Vorlesung 10 Ausgabe A6 Übung 7 Fester Termin A5
Übung 7
52 23.12 24.12 25.12 26.12 27.12
Weihnachten/Neujahr
01 30.12 31.12 01.01 02.01 03.01
Vorlesungsfrei
02 06.01 07.01 08.01 09.01 10.01
Vorlesungsfrei
03 13.01 14.01 15.01 16.01 17.01 Vorlesung 11: Zugriffskontrolle
Übung 8: Zugriffskontrolle
Vorlesung 11 Ausgabe A7 Übung 8
Übung 8
04 20.01 21.01 22.01 23.01 24.01 Vorlesung 12: Mehrkern Echtzeitsysteme
Übung 9: System Science
Vorlesung 12 Übung 9 Übung 9 Fester Termin A6
05 27.01 28.01 29.01 30.01 31.01 Vorlesung 13: Rekapitulation
Übung 10: Wiederholung
Vorlesung 13 Übung 10 Übung 10 Fester Termin A7
06 03.02 04.02 05.02 06.02 07.02 Vorlesung 14: Zusammenfassung mit Kaffeeklatsch
Vorlesung 14

Prüfung

In der Veranstaltung kann u.a. in folgenden Modulen verwendet werden:

  • Bachelor/Master: Modul Echtzeitsysteme mit 5 oder 7.5 ECTS in Abhängigkeit von der belegten Übung.
  • Kombinationsmodule mit 7.5, 10 oder 15 ECTS in Abhängigkeit vom Studiengang.

Die Prüfung erfolgt mündlich. Für weitere Informationen zur Prüfung konsultieren Sie bitte Ihre Prüfungsordnung oder das Prüfungsamt.

Kontakt

Bei Fragen zu Vorlesung oder den Übungen wenden Sie sich bitte an die Mailingliste:
Dabei erreichen Sie unter i4ezs-owner@lists.cs.fau.de ausschließlich die Betreuer.
Für allgemeine Fragen, welche alle Teilnehmer betreffen, wie etwa Unklarheiten in der Aufgabenstellung, aber auch Bekanntmachungen unsererseits, existiert darüber hinaus die reguläre Mailingliste i4ezs@lists.cs.fau.de. Wir empfehlen allen Teilnehmern ausdrücklich die Anmeldung.