• 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
      • Eingebettete Systemsoftware
      • Verteilte Systeme
    • Projekte
      • AIMBOS
      • BALu
      • BFT2Chain
      • DOSS
      • Mirador
      • NEON
      • PAVE
      • ResPECT
      • Watwa
    • Projektkampagnen
      • maRE
    • Seminar
      • Systemsoftware
    Portal Forschung
  • Publikationen
  • Lehre
    • Sommersemester 2025
      • Applied Software Architecture
      • Ausgewählte Kapitel der Systemsoftware
      • Betriebssystemtechnik
      • Projekt angewandte Systemsoftwaretechnik
      • System-Level Programming
      • Systemnahe Programmierung in C
      • Systemprogrammierung 1
      • Verteilte Systeme
    • Wintersemester 2024/25
      • Betriebssysteme
      • Middleware – Cloud Computing
      • Systemprogrammierung 2
      • Verlässliche Echtzeitsysteme
      • Virtuelle Maschinen
      • Web-basierte Systeme
    Portal Lehre
  • Examensarbeiten
  1. Startseite
  2. Lehre
  3. Wintersemester 2022/23
  4. Verlässliche Echtzeitsysteme
  5. Übung

Übung

Bereichsnavigation: Lehre
  • Verlässliche Echtzeitsysteme
    • Übung
      • Material
      • HelpDesk
      • Gruppenanmeldung
    • Vorlesung
      • Folien
    • Wochenplan
    • Terminübersicht
    • Kontakt

Ü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 in diesem Semester 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

Übungsmaterial und vorläufige Terminplanung

Hinweis: Die hier verlinkten Videos sind aus den Netzen der Universität sowie per VPN ohne Passwort zugänglich. Teilnehmer der Veranstaltung erhalten Zugangsdaten zur Nutzung ohne VPN in der initialen Anmeldebestätigung per Email.

Der Großteil der Videos wurde im Sommersemester 2020 aufgezeichnet. Sofern nötig, wurden diese neu eingespielt. Sollten sich dennoch veraltete Daten oder ins SS20 verweisende Links in den Videos finden, bitte entsprechend durch WS20 ersetzen (und uns mitteilen).

Aufgabe Ausgabe/Abgabe Thema
0
Thema Aufgabenblatt Folien Video
0. Organisatorisches
0.0 Übungsorganisation |
0.1 Entferntes Arbeiten im CIP |
0.2 Xpra: Graphische Verbindung in den CIP |
0.3 Rechnerübung: Nutzung der Warteliste
0.4 Übung Aufgabenbearbeitung und Abgabe |
1 17.10.‌–‌28.10.
Thema Aufgabenblatt Folien Video
1. Versionsverwaltung mit git
1.0 Git by Example
1.1 Nachschlagewerk: Reguläre Übungsfolien |
1.2 Aufgabe1: git
2 24.10.‌–‌09.11.
Thema Aufgabenblatt Folien Video
2. Softwareentwurf, Festkommaarithmetik und Schnittstellendesign
2.0 Prinzipien des Softwareentwurfs |
2.1 C als standardisierte Programmiersprache |
2.2 Festkommaarithmetik |
2.3 Softwareentwurf am Beispiel eines einfachen Filters |
2.4 Aufgabe2: Filterimplementierung mit Festkommaarithmetik |
2.5 Aufgabe2: Fließkommagenauigkeit (erweiterte Übung) |
3 31.10.‌–‌23.11.
Thema Aufgabenblatt Folien Video
3. Triple Modular Redundancy
3.0 Die Zahl 3
3.1 Replikation auf Quellcodeebene |
3.2 Replikation in der Praxis (insb. EÜ)
3.3 Triple Modular Redundancy |
3.4 Aufgabe3: TMR
4 14.11.‌–‌06.12.
Thema Aufgabenblatt Folien Video
4. Kodierung und Fehlerraumanalyse
4.0 Untersuchung von Binärdateien im ELF Format |
4.1 Exkurs: Arbeiten mit Unixoiden Benutzerschnittstellen
4.2 Erweiterte Arithmetische Kodierung |
4.3 Aufgabe4: EAN
4.4 Aufgabe4: Fehlerinjektion mittels GDB (erweiterte Übung)
4.5 Aufgabe4: Stack auf dem x86 (erweiterte Übung)
5 Teil1:
28.11.‌–‌23.12.
Teil2:
05.12.‌–‌13.01.
Teil3:
12.12.‌–‌20.01.
Thema Aufgabenblatt Folien Video
5. Testen
5.0 Dynamisches Testen |
5.1 Werkzeuggestütztes Testen |
5.2 Iteratorentwurf |
5.3 Fuzzing |
5.4 Aufgabe5.1: Testen
5.5 Aufgabe5.2: Testen
5.6 Aufgabe5.3: Testen
6 19.12.‌–‌27.01.
Thema Aufgabenblatt Folien Video
6. Stackverbrauchsanalyse
6.0 Dynamische Stackbedarfsanalyse |
6.1 Statische Stackbedarfsanalyse |
6.2 Aufgabe6: Stackbedarfsanalyse
7 16.01.‌–‌01.02.
Thema Aufgabenblatt Folien Video
7. Abstrakte Interpretation und Verifikation
7.0 Astrée |
7.1 Frama-C |
7.2 Aufgabenhinweise zu Aufgabe 7 |
7.3 Aufgabe7: Abstrakte Interpretation & Verifikation
POB: f91d848a202ff6422de0d52d8123b2cec5aae68879948c61df474acf093fc64e
Friedrich-Alexander-Universität
Erlangen-Nürnberg

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