Verlässliche Echtzeitsysteme
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.
- 11.10.2024: Die Teilnehmenden wurden informiert, und wir freuen uns zum ersten gemeinsamen Termin am 14.10. um 12:15 Uhr.
- 30.07.2024: 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.10.2024, 23:55 geöffnet. Bitte schreibt uns ein kurzes Motivationsschreiben (in das StudOn-Anmeldeformular), warum ihr gerne VEZS belegen möchtet.
- 30.07.2024 Bitte beachten: Der aktuelle Zustand ist lediglich aus dem letzten Semester portiert. Alle angegebenen Daten und Termine sind vorläufig oder veraltet!
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
Weitere Informationen zur Vorlesung...
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)
Dozenten und Betreuer
Terminplan und Vorlesungsfolien...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 | Rechnerübung CIP3 |
||||
12:00 | Vorlesung 02.133-113 |
||||
14:00 | Übung 02.133-113 |
||||
16:00 | Rechnerübung CIP3 |
Terminübersicht (Semesterplan)
KW | Mo | Di | Mi | Do | Fr | Themen |
---|---|---|---|---|---|---|
42 | 14.10 | 15.10 | 16.10 | 17.10 | 18.10 | Vorlesung 1: EZS Zusammenfassung Vorlesung 1: Organisation (Vorlesung) Vorlesung 1: Einleitung Übung 1: Organisation Übung 1: Einführung in den Umgang mit git |
Vorlesung 1 | ||||||
Übung 1 | ||||||
Ausgabe A1 | ||||||
43 | 21.10 | 22.10 | 23.10 | 24.10 | 25.10 | Vorlesung 2: Grundlagen Übung 2: Implementieren eines Filters mit Festkommaarithmetik |
Vorlesung 2 | Fester Termin A1 | |||||
Übung 2 | ||||||
Ausgabe A2 | ||||||
44 | 28.10 | 29.10 | 30.10 | 31.10 | 01.11 | Vorlesung 3: Fehlertoleranz durch Redundanz Übung 3: Triple Modular Redundancy |
Vorlesung 3 | ||||||
Übung 3 | ||||||
Ausgabe A3 | ||||||
45 | 04.11 | 05.11 | 06.11 | 07.11 | 08.11 | Vorlesung 4: Codierung |
Vorlesung 4 | Fester Termin A2 | |||||
46 | 11.11 | 12.11 | 13.11 | 14.11 | 15.11 | Vorlesung 5: Fehlerinjektion Übung 4: EAN Codes und Fehlerinjektion |
Vorlesung 5 | ||||||
Übung 4 | ||||||
Ausgabe A4 | ||||||
47 | 18.11 | 19.11 | 20.11 | 21.11 | 22.11 | Vorlesung 6: Dynamisches Testen Übung 5: Testen |
Vorlesung 6 | Fester Termin A3 | |||||
Übung 5 | ||||||
Ausgabe A5.1 | ||||||
48 | 25.11 | 26.11 | 27.11 | 28.11 | 29.11 | Vorlesung 7: Grundlagen der statischen Programmanalyse |
Vorlesung 7 | Fester Termin A4 | |||||
Ausgabe A5.2 | ||||||
49 | 02.12 | 03.12 | 04.12 | 05.12 | 06.12 | Vorlesung 8: Verifikation nicht-funktionaler Eigenschaften, Stack- und WCET-Analyse |
Vorlesung 8 | ||||||
Ausgabe A5.3 | ||||||
50 | 09.12 | 10.12 | 11.12 | 12.12 | 13.12 | Vorlesung 9: Verifikation funktionaler Eigenschaften: Design-by-Contract Übung 6: Stackverbrauchs Analyse |
Vorlesung 9 | Fester Termin A5.1 | |||||
Übung 6 | ||||||
Ausgabe A6 | ||||||
51 | 16.12 | 17.12 | 18.12 | 19.12 | 20.12 | |
Fester Termin A5.2 | ||||||
52 | 23.12 | 24.12 | 25.12 | 26.12 | 27.12 | |
Weihnachten/Neujahr | ||||||
01 | 30.12 | 31.12 | 01.01 | 02.01 | 03.01 | |
Weihnachten/Neujahr | ||||||
02 | 06.01 | 07.01 | 08.01 | 09.01 | 10.01 | |
Weihnachten/Neujahr | Fester Termin A5.3 | |||||
03 | 13.01 | 14.01 | 15.01 | 16.01 | 17.01 | Vorlesung 10: Fallstudie Reaktorschutzsystem |
Vorlesung 10 | Fester Termin A6 | |||||
Übung 7 | ||||||
Ausgabe A7 | ||||||
04 | 20.01 | 21.01 | 22.01 | 23.01 | 24.01 | |
Vorlesung 11 | Fester Termin A7 | |||||
05 | 27.01 | 28.01 | 29.01 | 30.01 | 31.01 | |
Vorlesung 12 | ||||||
Übung 8 | ||||||
06 | 03.02 | 04.02 | 05.02 | 06.02 | 07.02 | |
Vorlesung 13 |
Inhaltliche Fragen (alle Teilnehmer & Betreuende):
Organisatorische Fragen (Betreuende)
Anmeldung
Da die Mailingliste auch für Bekanntmachungen unsererseits genutzt wird, empfehlen wir allen Teilnehmern ausdrücklich die Anmeldung.