Eingebettete Betriebssysteme WS17/18 (2017)
Prof. Dr. Andreas Polze
Jossekin Beilharz
Andreas Grapentin
Daniel Richter
Max Plauth
Lukas Pirl
Im Wintersemester 2017/2018 findet eine Vorlesung zum Thema "Eingebettete Betriebssysteme" statt. Der Umfang der Lehrveranstaltung beträgt 4 SWS. In die Bewertung der Vorlesung (6 benotete Leistungspunkte) geht die Note einer mündlichen Prüfung zu 100% ein. Eine erfolgreiche Teilnahme am Praktikum/Übung ist Prüfungsvorraussetzung.
Die Verbreitung eingebetteter Systeme stieg in den letzten Jahren rasant. Bei der Softwareentwicklung für eingebettete Systeme treten Aspekte in den Vordergrund, die bei Desktopsystemen nur eine untergeordnete Rolle spielen. Diese Aspekte umfassen vorhersagbares zeitliches Verhalten (Echtzeit), die Verwaltung von knappen Ressourcen (Speicher, Netzwerk), verlässliche Kommunikationsprotokolle, Energieverwaltung, Entwurf von Nutzerschnittstellen (headless operation), Systemkonfiguration sowie Programmiersprachen und Modelle. In der Veranstaltung werden Entwurfsentscheidungen moderner eingebetteter Betriebssysteme an Hand von Bespielszenarien erläutern und ein Einblick in aktuelle Standardisierungsprozesse gegeben.
In der Vorlesung werden Algorithmen zur Verwaltung von Ressourcen wie Speicher, CPU, Netzwerk u.a. vorgestellt, an die durch viele Einschränkungen von eingebetteten Systemen besondere Anforderungen gestellt werden. Aber auch aufkommende Konzepte wie die Konfigurierbarkeit von Betriebssystemen und anwendungsspezifische Betriebssysteme werden vorgestellt.
Des Weiteren soll die Forschung am Lehrstuhl „Betriebssysteme und Middleware” im Projekt „Distributed Control Lab” als Fallstudie für den Einsatz von eingebetteten Betriebssystemen vergestellt werden. Die Steuerung des Experimente wird anhand verschiedener Lösungsstrategien und Verwendung unterschiedlicher Betriebssysteme erläutert und in Übungen und Praktika vertieft.
Ein Schwerpunkt der Praktika liegen in diesem Semester bei Betriebssystemen für eingebettete Systeme. Die Praktikumsaufgaben werden im Rahmen der Vorlesung erläutert und decken u.a. folgende Bereiche ab:
- Verteilte Echtzeitsysteme - die Carrera D132 Autorennbahn
- Echtzeitsteuerung - Hau den Lukas
- Beckhoff-Industrieautomatisierung
- App-Programmierung iOS, Android, Windows Phone
- Firmware-Programmierung für Lego Mindstorms NXT & EV3
- Firmware-Programmierung für Arduino Uno/Nano und Intel Edison
Prüfungen
Leistungserfassung
Die Endnote wird in einer abschließenden mündlichen Prüfung ermittelt. Voraussetzung für die Zulassung zur Prüfung ist die regelmäßige Lösung der Aufgaben im Praktikum und der Übung.
Themen für Vorträge
LP (JB) | Scheduling, Task-Assignment, Performance Measures revisited |
SK | Memory Management, Demo mit Bezug |
YB | ARM-Architektur, Pipelining, Demo mit Bezug |
MK | Echtzeitkommunikation, Uhrensynchronisation, Demo mit Bezug |
JB (LP) | Echtzeit Betriebssysteme für das Internet der Dinge (FreeRTOS, Contiki, Cooja, RIOT), Netzwerk-Simulator ns-3 |
DR | SPS |
AP | Echtzeitprogrammierung mit Ada, Realtime Java |
Termine
Donnerstags ab 13:30 Uhr, plus folgende Blocktermine:
Do, 16.11. | JB | ns-3 |
Do, 23.11. | alle AP |
Vorstellung Ergebnisse von Übung 1 (Carrera/SDR) Realtime-Linux |
Do, 30.11. | alle LP |
Vorstellung Ergebnisse von Übung 2 (ns-3) Feldbusse |
Do, 07.12. | alle H. Petersen |
Vorstellung Übung 3 (Echtzeit-Betriebssysteme) RIOT-OS |
Fr, 08.12. 09:30 – 12:30 Uhr |
LP (JB) SK MK AP |
Scheduling, Task-Assignment Memory-Management (demo sources) Echtzeitkommunikation ARM |
Do, 14.12. | Uwe Hentschel | Steuerung eines modularen Multi-Level Umrichters |
Do, 04.01. | alle | Vorstellung Ergebnisse von Übung 3 (Echtzeit-Betriebssysteme) Festlegung der Projektthemen |
Do, 11.01. | AP | Echtzeit-Programmierung mit Ada |
Fr, 12.01. 09:30 – 12:30 Uhr |
DR AP |
SPS Realtime Java |
Do, 18.01. | Projektarbeit | |
Do, 25.01. 13-30 – 17:00 Uhr |
alle | Demos Zwischenstand |
Do, 01.02. | Projektarbeit | |
Do, 08.02. | Projektarbeit | |
Mi, 14.02., vorauss. 9:15 Uhr |
alle | Abschlusspräsentationen |
Ideen für Projekte
- Carrera
- selbstfahrendes Auto via Microcontroller
- selbstfahrendes Auto via Arduino
- Märklin
- einen Rückkanal (Lok → Zentrale) in das MFX-Protokoll einbauen
- Entwicklungs-Boards in Interaktion
- via WiFi
- via Licht
- via Ton
- …