Hasso-Plattner-Institut Potsdam Operating Systems and Middleware Group at HPI University of Potsdam, Germany
Operating Systems and Middleware Group at HPI

Eingebettete Betriebssysteme

Embedded OS

Wintersemester 2017/2018

Prof. Dr. Andreas Polze

Projektbetreuung
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

  • Termine: 21.-22.2.2018; 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.

Vorläufiger Zeitplan

Mi, 18.10. AP Überblick & Ablauf
Vorstellung des Distributed Control Labs
Do, 19.10. JB Eingebettete Betriebssysteme im Internet der Dinge, Rail2X, intelligentes Wasser
Vorstellung des Projekt- und Übungsbetriebes
Mi, 25.10. AP Echtzeit
Performance-Maße für eingebettete Echtzeitsysteme
"What really happened on Mars"
Do, 26.10. DR Programmierung eingebetteter Systeme
Vorstellung des Übungskonzeptes und Einführung Projektphase
Mi, 01.11. JB (LP) Scheduling
Task-Assignment
Performance Measures - revisited
Do, 02.11. DR, AG Aufsetzen der Übungsumgebung
Vorstellung Übung 1
Mi, 08.11. LP (JB) Memory Management
Do, 09.11. Selbstständiges Üben und Vorbereiten
Mi, 15.11. MP (JB) ARM-Architektur
Pipelining
Do, 16.11. Auswertung Übung 1: Studierende präsentieren ihre Lösungen
Vorstellung Übung 2
Mi, 22.11. JB Uhrensynchronisation
Do, 23.11. JB Echtzeitkommunikation
Mi, 29.11. JB Echtzeit Betriebssysteme für das Internet der Dinge (FreeRTOS, Contiki, Cooja, RIOT)
Netzwerk-Simulator ns-3
Do, 30.11. Auswertung Übung 2: Studierende präsentieren ihre Lösungen
Vorstellung Übung 3
Mi, 06.12. DR SPS
Do, 07.12. Selbstständiges Üben und Vorbereiten
Mi, 13.12. AP, NN Echtzeitprogrammierung mit Ada
Realtime Java
Do, 14.12. Auswertung Übung 3: Studierende präsentieren ihre Lösungen
Mi, 20.12. Vorstellung der Projekte
Do, 04.01. Projektplanung
nach Bedarf * Konsultationen
Mi, 07.02. * Schlussvorträge
Do, 08.02. * Schlussvorträge

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. DR Vorstellung Übung 3 (Echtzeit-Betriebssysteme), SPS
Fr, 08.12.
 09:30 – 12:30 Uhr
LP (JB)
SK
MK
YB
Scheduling, Task-Assignment
Memory-Management
Echtzeitkommunikation
ARM
Do, 14.12. Uwe Hentschel Hardware-Software Co-Design
Besprechung möglicher Projektthemen
Do, 04.01. alle Vorstellung Ergebnisse von Übung 3 (Echtzeit-Betriebssysteme)
Festlegung der Projektthemen
Do, 11.01. tba Echtzeit Standards
Fr, 12.01.
 09:30 – 12:30 Uhr
AP Realtime Java
Echtzeit-Programmierung mit ADA
Echtzeit-Middleware
Do, 18.01. alle Demos Zwischenstand
Do, 25.01.
 13-30 – 17:00 Uhr
Ausweichtermin
Do, 01.02. Projektarbeit
Do, 08.02. 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