• Navigation überspringen
  • Zur Navigation
  • Zum Seitenende
Organisationsmenü öffnen Organisationsmenü schließen
Friedrich-Alexander-Universität Lehrstuhl für Informatik 4 (Systemsoftware)
  • FAUZur zentralen FAU Website
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
Suche öffnen
  • English
  • Campo
  • StudOn
  • FAUdir
  • Stellenangebote
  • Lageplan
  • Hilfe im Notfall
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
Friedrich-Alexander-Universität Lehrstuhl für Informatik 4 (Systemsoftware)
Menu Menu schließen
  • Lehrstuhl
    • Team
    • Aktuelles
    • Kontakt und Anfahrt
    • Leitbild
    • 50-jähriges Jubiläum
    Portal Lehrstuhl
  • Forschung
    • Forschungsbereiche
      • Betriebssysteme
      • Confidential Computing
      • Embedded Systems Software
      • Verteilte Systeme
    • Projekte
      • AIMBOS
      • BALu
      • BFT2Chain
      • DOSS
      • Mirador
      • NEON
      • PAVE
      • ResPECT
      • Watwa
    • Projektkampagnen
      • maRE
    • Seminar
      • Systemsoftware
    Portal Forschung
  • Publikationen
  • Lehre
    • Wintersemester 2025/26
      • Systemprogrammierung 2
      • Betriebssysteme
      • Middleware – Cloud Computing
      • Echtzeitsysteme
      • Virtuelle Maschinen
      • Web-basierte Systeme
      • Projekt angewandte Systemsoftwaretechnik
      • Aktuelle Entwicklung in Verteilten und Objektorientierten Betriebssystemen (für Bachelor-/Masterarbeit)
    • Sommersemester 2026
      • Applied Software Architecture
      • Betriebssystemsicherheit
      • Betriebssystemtechnik
      • System-Level Programming
      • Systemnahe Programmierung in C
      • Systemprogrammierung 1
      • Verlässliche Echtzeitsysteme
      • Verteilte Systeme
    Portal Lehre
  • Examensarbeiten
  1. Startseite
  2. Lehre
  3. Sommersemester 2026
  4. Verlässliche Echtzeitsysteme

Verlässliche Echtzeitsysteme

Bereichsnavigation: Lehre
  • Verlässliche Echtzeitsysteme

    Verlässliche Echtzeitsysteme

    Sprung zu den Vorlesungsinhalten

    Sprung zu den Übungsinhalten

    • 05.03.2026 Aufgrund der (durch die benötigte Hardware) limitierten Teilnehmerzahl ist für die Veranstaltung eine Anmeldung via StudOn zwingend erforderlich. Diese ist ab sofort bis zum 06.04.2026, 23:55 geöffnet. Bitte schreibt uns unbedingt ein kurzes Motivationsschreiben (in das StudOn-Anmeldeformular), warum ihr gerne VEZS belegen möchtet.
    • 05.03.2026 Bitte beachten: Der aktuelle Zustand ist lediglich aus dem letzten Semester portiert. Alle angegebenen Daten und Termine sind vorläufig oder veraltet!
    Eingebettete Systeme durchdringen praktisch alle Bereiche des täglichen Lebens. Immer häufiger übernehmen diese Echtzeitsysteme Aufgaben, welche hohe Anforderungen an die funktionale Sicherheit stellen. Beispiele hierfür sind Fahrerassistenzsysteme in modernen Automobilen, medizinische Geräte, Prozessanlagen oder Flugzeuge. Fehlfunktionen in diesen Anwendungen ziehen mitunter katastrophale Konsequenzen nach sich: finanzielle und materielle Schäden bis hin zu Personenschäden. Die Entwicklung sicherer und robuster Systeme gewinnt daher in der Forschung und Entwicklung zunehmend an Bedeutung.

    Inhalt der Vorlesung

    Während sich die Veranstaltung Echtzeitsysteme den zeitlichen Aspekten der Systementwicklung widmet, rücken in Verlässliche Echtzeitsysteme Methoden und Techniken für die Entwicklung zuverlässiger Systeme in den Mittelpunkt - schließlich ist Rechtzeitigkeit keine hinreichende Eigenschaft sicherheitskritischer Systemen. Beide Veranstaltungen sind unabhängig voneinander durchführbar, ergänzen sich jedoch in optimaler Weise. Ziel der Vorlesung ist die zuverlässige Entwicklung von Software (frei von internen Fehlern) ebenso wie die Entwicklung zuverlässiger Software (robust gegenüber äußeren Fehlern). Im Fokus steht hierbei weniger die Vermittlung theoretischer Grundkenntnisse, sondern vielmehr deren praktischer Einsatz in Form von:
    • Fehlersuche und -vermeidung: funktional, räumlich und zeitlich,
    • unter Einsatz existierender Werkzeuge und Methoden wie sich auch in der Industrie zum Einsatz kommen.
    • Robuste Echtzeitsysteme durch Fehlertoleranz und Verteilung
    Auf diese Weise wird ein Fundament für die konstruktive Umsetzung verlässlicher Echtzeitsysteme gelegt werden. Dieses Modul vermittelt daher fundierte Anknüpfungspunkte für die Entwicklung verlässlicher Echtzeitsysteme.

    Inhalt der Übungen

    Im Rahmen der Übungen werden ausgewählte Vorlesungsinhalte mit besonderem Fokus auf deren praktischer Anwendung vertieft. Zum Einsatz kommen hierbei sowohl aktuelle Ansätze und Methoden aus der Forschung, als auch Werkzeuge und Techniken aus dem industriellen Umfeld. Hierzu zählt insbesondere auch die Fehlersuche mittels Debugger und die Codeanalyse mit der aiT-Toolchain (WCET-Analyse, Stack-Analyse, Abstrakte Interpretation mit Astrée). Im Verlauf des Semesters wird die Verwendung der verschiedenen Techniken und Werkzeuge in den verschiedenen Phasen der Produktentwicklung aufgezeigt, indem ein solcher Entwicklungszyklus simuliert wird. 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. 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).

    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. Kenntnisse aus der Schwesterveranstaltung Echtzeitsysteme sind durchaus hilfreich, jedoch nicht für einen erfolgreichen Abschluss des Moduls erforderlich.

    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.

    Wochenplan

      Mo Di Mi Do Fr
    08:00          
    10:00   Vorlesung
    0.031-113
    Übung
    0.031-113
       
    12:00   Rechnerübung
    WinCIP
    Rechnerübung
    WinCIP
       
    14:00          
    16:00          

    Terminübersicht (Semesterplan)

    KW Mo Di Mi Do Fr Themen
    16 13.04 14.04 15.04 16.04 17.04
    Vorlesung 1 Übung 1
    Ausgabe A1
    17 20.04 21.04 22.04 23.04 24.04
    Vorlesung 2 Übung 2
    Ausgabe A2
    18 27.04 28.04 29.04 30.04 01.05
    Vorlesung 3 Übung 3
    Fester Termin A1 Ausgabe A3
    19 04.05 05.05 06.05 07.05 08.05
    Vorlesung 4
    Fester Termin A2
    20 11.05 12.05 13.05 14.05 15.05
    Ausfall Ausfall Ausfall Ausfall Ausfall
    21 18.05 19.05 20.05 21.05 22.05
    Vorlesung 5 Übung 4
    Fester Termin A3 Ausgabe A4
    22 25.05 26.05 27.05 28.05 29.05
    Pfingsten Pfingsten
    23 01.06 02.06 03.06 04.06 05.06
    Vorlesung 6 Übung 5
    Fester Termin A4 Ausgabe A5.1
    24 08.06 09.06 10.06 11.06 12.06
    Vorlesung 7 Ausgabe A5.2
    25 15.06 16.06 17.06 18.06 19.06
    Vorlesung 8 Ausgabe A5.3
    Fester Termin A5.1
    26 22.06 23.06 24.06 25.06 26.06
    Vorlesung 9 Übung 6
    Fester Termin A5.2 Ausgabe A6
    27 29.06 30.06 01.07 02.07 03.07
    Vorlesung 10 Übung 7
    Fester Termin A5.3 Ausgabe A7
    28 06.07 07.07 08.07 09.07 10.07
    Vorlesung 11 Übung 8
    Fester Termin A6
    29 13.07 14.07 15.07 16.07 17.07
    Vorlesung 12 Übung 9
    Fester Termin A7

    Vorlesung

    Gliederung und Vorlesungsfolien

    Die Vorlesungsfolien werden im PDF-Format als animierte Folien und als Handout im Format DIN A4 angeboten.


    All slides are copyrighted © 2012-13 by Fabian Scheler, © 2014-20 by Peter Ulbrich, and © 2020-24 by Peter Wägemann University of Erlangen-Nürnberg, Germany. Use without prior written permission of the authors is not permitted!

    Kapitel Thema Datum Folien
    0 EZS Zusammenfassung 14.04.​2026
    1 Organisation (Vorlesung) 14.04.​2026
    2 Einleitung 14.04.​2026
    3 Grundlagen 21.04.​2026
    4 Fehlertoleranz durch Redundanz 28.04.​2026
    5 Codierung 05.05.​2026
    6 Fehlerinjektion 19.05.​2026
    7 Dynamisches Testen 02.06.​2026
    8 Grundlagen der statischen Programmanalyse 09.06.​2026
    9 Verifikation nicht-funktionaler Eigenschaften, Stack- und WCET-Analyse 16.06.​2026
    10 Verifikation funktionaler Eigenschaften: Design-by-Contract 23.06.​2026
    11 Fallstudie Reaktorschutzsystem 30.06.​2026
    13 Zusammenfassung & Fragestunde 07.07.​2026

    All slides are copyrighted ©2005-14 by Wolfgang Schröder-Preikschat, ©2007-14 by Fabian Scheler, ©2014-19 by Peter Ulbrich, FAU Erlangen-Nürnberg, Germany, ©2022 by Peter Wägemann, FAU Erlangen-Nürnberg, Germany. Use without prior written permission of the authors is not permitted!


    Literatur

    Zur Begleitung und Vertiefung des Vorlesungsinhalts kann auf folgende Fachbücher zurückgegriffen werden:

    • Michael Lyu, editor. Software Fault Tolerance, volume 3 of Trends in Software. John Wiley & Sons, Inc., 1995. http://www.cse.cuhk.edu.hk/~lyu/book/sft/.
    • Shubu Mukherjee. Architecture Design for Soft Errors. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2008.
    • Olga Goloubeva, Maurizia Rebaudengo, Matteo Sonza Reorda, and Massimo Violante. Software-Implemented Hardware Fault Tolerance. Springer-Verlag, 233 Spring Street, New York, NY 10013, USA, 2006.

    Hierbei ist aber zu beachten, dass sich der Inhalt der Vorlesung nicht streng an einem dieser Bücher orientiert und sich keineswegs auf diese Bücher beschränkt. Die gezielte Aufarbeitung der einzelnen Vorlesungskapitel kann anhand der Literaturhinweise am Ende der jeweiligen Foliensätze erfolgen. Grundlegende Erläuterungen zu den Fachbegriffen und Grundtechniken fehlertoleranter Systeme sollten darüber hinaus in jedem Fachbuch vermittelt werden, das sich mit diesem Themengebiet befasst.

    Übung

    Ziel der Übung

    Analog zur Vorlesung befassen sich die Übungsaufgaben mit der zuverlässigen Entwicklung zuverlässiger Software. Im Rahmen eines Produktentwicklungszyklus werden in den Übungsaufgaben sowohl selbstgeschriebene als auch fremde Codestücke unter die Lupe genommen. Die Programmiersprache ist hierbei vorwiegend C. Als Vorraussetzung für die Übung sollte man deshalb grundlegende C-Kenntnisse mitbringen.

    Das Ziel der Übungsaufgaben ist die Entwicklung eines konkreten Echtzeitsystems auf Anwendungsebene. Zu diesem Zweck kommt das Echtzeitbetriebssystem eCos als Entwicklungsplattform zum Einsatz. eCos wird in den verschiedensten Anwendungen (Kommunikation, Steuerung, ...) und Produkten (z.B. NETGEAR-Routern) eingesetzt und ist auch als Open-Source-Variante verfügbar. In den Übungen wird ein konkretes Echtzeitsystem auf Basis von eCos aufgebaut, anhand dessen sich die verschiedenen Problemstellungen bei der Entwicklung solcher Systeme zeigen lassen.

    Zuverlässige Software entwickeln

    Während der erste Teil sich auf das Finden von Entwicklungsfehlern konzentriert, betrachten wir in der zweiten Hälfte auch Fehler, die zur Laufzeit auftreten können. Hierzu zählen vor allem unerwartete Hardwarefehler, die den Programmfluss bzw. Rechenergebnisse beeinflussen können. In der Übung werden wir hierzu verschiedene konstruktive Maßnahmen kennenlernen und umsetzen, die die Software gegen derartige Fehlerszenarien härten können.

    Zuverlässig entwickeln

    Ein wesentlicher Bestandteil dieser Veranstaltung ist das Kennenlernen und der Umgang mit Werkzeugen, die die Entwicklung verlässlicher Systeme unterstützen. Hierzu zählen u.a.:

    • Versionsverwaltung von Quellcode mit Hilfe von git
    • Softwaretest mittels CMake und CTest
    • Codeüberdeckungsanalyse mittels gcov (lcov)
    • Überdeckungsorientiertes Fuzzing mittels libFuzzer
    • Fehlerinjektion mittels FAIL*
    • Statische Bestimmung des Speicherbedarfs (StackAnalyzer)
    • Statische Codeanalyse mit Hilfe abstrakter Interpretation (Astrée)
    • Formale Verifikation mittels Frama-C

    Umfang der Übungen

    Der Umfang der Übungen richtet sich nach den angestrebten Prüfung und den dafür notwendigen ECTS-Punkten (zusätzlich zu den 2,5 ECTS der Vorlesung):

    • 2,5 ECTS: Die Bearbeitung aller Basis-Übungsaufgaben ist verpflichtend.
    • 5,0 ECTS: Die Bearbeitung aller Basis- und Erweiterungs-Übungsaufgaben ist verpflichtend.

    Sowohl Tafelübungen als auch Rechnerübungen werden zusammen stattfinden, da sich die beiden Übungsrichtungen hauptsächlich im Umfang der zu bearbeitenden Aufgaben unterscheiden.

    Folien und Dokumentation

    Kapitel Thema Datum Folien
    U1 Organisation 15.04.​2026
    U2 Einführung in den Umgang mit git 15.04.​2026
    U3 Implementieren eines Filters mit Festkommaarithmetik 22.04.​2026
    U4 Triple Modular Redundancy 29.04.​2026
    U5 EAN Codes und Fehlerinjektion 20.05.​2026
    U6 Testen 03.06.​2026
    U7 Stackverbrauchs Analyse 24.06.​2026
    U8 Abstrakte Interpretation 01.07.​2026
    U9 Zusammenfassung 08.07.​2026

    Übungsaufgaben

    Nr. Titel Kurzbeschreibung Ausgabetermin Fester Termin Vorgaben

    Kontakt

    Dozenten und Betreuer

    Peter Wägemann

    Dr.-Ing. Peter Wägemann

    Eva Dengler

    Eva Dengler, M. Sc.

    Inhaltliche Fragen (alle Teilnehmer & Betreuende):

    • i4ezs@lists.cs.fau.de

    Organisatorische Fragen (Betreuende)

    • i4ezs-owner@lists.cs.fau.de

    Anmeldung

    Da die Mailingliste auch für Bekanntmachungen unsererseits genutzt wird, empfehlen wir allen Teilnehmern ausdrücklich die Anmeldung.

    Friedrich-Alexander-Universität
    Erlangen-Nürnberg

    Schlossplatz 4
    91054 Erlangen
    • Impressum
    • Datenschutz
    • Barrierefreiheit
    • Facebook
    • RSS Feed
    • Xing
    Nach oben