Eingebettete Betriebssysteme (2015)

Embedded OS

Prof. Dr. Andreas Polze

Projektbetreuung
Andreas Grapentin
Max Plauth
Daniel Richter

Im Wintersemester 2015/2016 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

Termine

  • Mi, 11.00-12.30 Uhr, H-2.57/58
  • Do, 13.30-15.00 Uhr, HS 3

Prüfungen

  • Termine: 15.-17.2.2016; Liste bei Frau Wagner
  • Es finden mündliche Einzelprüfungen statt (jeweils 30 min).
  • Davon können bis zu 15 Minuten zur Diskussion ausgewählter Aspekte des Projektes verwendet werden.

Ablauf - Vorlesungsunterlagen

Mi, 21.10. Überblick
Programmierung eingebetteter Systeme
Do, 22.10. Vorstellung des Distributed Control Labs
Mi, 28.10. Performance-Maße für eingebettete Echtzeitsysteme
What really happened on Mars
Blog post
NASA Jet Propulsion Lab
Do, 29.10. Einführung Projektphase
Projekte: Carrera Racetrack, Hardware/Software-Codesign, verfügbare Hardware für Projekte
Projekte: LEGO NXT & EV3
Mi, 04.11. Entwurfsprozesse für Engebettete Systeme
Vorstellung InstantLab - Aufruf zur Mitarbeit
Do, 05.11. Case Study - Entwurf eines Eingebetteten Systems
Mi, 11.11. Performance Measures - revisited
Task Assignment & Scheduling
Do, 12.11. Vorstellung der Projektgruppen/-themen
Mi, 18.11. Konsultation für studentische Projekte
Do, 19.11. Memory Management
Mi, 25.11. Computer Architecture - ARM
Do, 26.11. Einschub Rechnerarchitektur (1)
Computer Architecture - Instruktionsformate
Computer Architecture - Adressierungsarten
Mi, 02.12. HP Discover - no lecture
Do, 03.12. Einschub Rechnerarchitektur (2)
Computer Architecture - Programmierung
Computer Architecture - Adressierungsarten
Mi, 09.12. Diskussion Assembler - add-Instruktion
Diskussion Assembler - Funktionsaufrufe
Do, 10.12. Uwe Hentschel zu Besuch / Carrera / Pipelining
Mi, 16.12. Studentische Vorträge / Projektstatus
Do, 17.12. Interrupts & Exceptions
Mi, 06.01. Uhrensynchronisation
Echtzeitkommunikation
Do, 07.01. Feldbusse
Mi, 13.01. Echtzeitprogrammierung mit Ada
Do, 14.01. Real-Time Specification for Java
Mi, 20.01. Real-Time Linux
Windows Embedded Overview
Do, 21.01. EtherCAT - Beckhoff
(Vortrag von Andreas Rasche)
Mi, 27.01. Realtime with Windows CE
Do, 28.01. The eCos Realtime OS
RTOS Standardization
Mi, 03.02. Abschlusspräsentationen Team 1-5
Do, 04.02. Abschlusspräsentationen Team 6-9

Projektarbeit - Gruppen & Themen

1 Erweiterte Reglerplatine für Carrera [Konzept] [Zwischenpräsentation] [Endpräsentation]
Jan Philipp Sachse, Leander Neiß
2 RT-fähiger Scheduler für NinjaStorms (EV3) [Konzept] [Zwischenpräsentation] [Endpräsentation] [Code]
Carsten Walther, Christian Werling
3 Selfdriving Carrera Cars [Konzept] [Zwischenpräsentation] [Endpräsentation] [Code & Videos]
Christian Dullweber, Moritz Eyssen
4 Gestengesteuerte Arduinos [Konzept] [Zwischenpräsentation] [Endpräsentation]
Clemens Frahnow, Friedrich Horschig
5 Dezentrale Bahnsteuerung mit Märklin [Konzept] [Zwischenpräsentation] [Endpräsentation]
Adrian Holfter, Lukas Wenzel
6 Pathfinding und Echtzeitkommunikation in einer labyrinth-ähnlichen Umgebung [Konzept] [Zwischenpräsentation] [Endpräsentation] [Video] [Video]
Tim Naumann, Jan Selke
7 Teensy-Synthesizer [Konzept] [Zwischenpräsentation] [Endpräsentation]
Carolin Fiedler, Sven Knebel
8 Hp1 [Konzept] [Zwischenpräsentation] [Endpräsentation]
Martin Zabel, Jan Graichen
9 Hau-den-Lukas mit Arduino [Konzept] [Zwischenpräsentation] [Endpräsentation]
Johannes Linke, David Schumann

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.