Eingebettete Betriebssysteme (2018)

Embedded OS

Wintersemester 2018/2019

Prof. Dr. Andreas Polze

Projektbetreuung
Jossekin Beilharz
Lukas Pirl
Daniel Richter

Im Wintersemester 2018/2019 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” sowie im IoT-Lab als Fallstudie für den Einsatz von eingebetteten Betriebssystemen vorgestellt werden. Die Steuerung des Experimente wird anhand verschiedener Lösungsstrategien und Verwendung unterschiedlicher Betriebssysteme erläutert und in Übungen und Praktika vertieft.

Die Schwerpunkte der Praktika liegen bei Betriebssystemen für eingebettete Systeme, verteilten Echtzeitsystemen, Echtzeitsteuerung, Firmware-Programmierung und systemnaher App-Programmierung (iOS, Android, Windows Phone). Die Praktikumsaufgaben werden im Rahmen der Vorlesung erläutert, diskutiert und können durch die Interessen der Teilnehmenden mitgestaltet werden.

Reguläre Termine

  • Mi, 11.00-12.30 Uhr, A-2.2
  • Do, 13.30-15.00 Uhr, A-1.1

Prüfungen

  • Es finden mündliche Einzelprüfungen statt (jeweils 30 min).
  • Davon können bis zu 5 Minuten zur Diskussion ausgewählter Aspekte des Projektes verwendet werden.

Ablauf und Unterlagen zur Vorlagen

Mi, 17.10. AP Überblick & Ablauf (Programming Embedded)
Do, 18.10. Klausurtagung Forschungskolleg
Mi, 24.10. IBM Technical University Rome
Do, 25.10. IBM Technical University Rome
Mi, 31.10. Reformationstag
Do, 01.11. AP Vorstellung Projektbetrieb (Hardware Pool, RIOT-OS)
Performance Measures
What really happened on Mars
(Blog post, NASA Jet Propulsion Lab)
Mi, 07.11. AP Computers as Components (Embedded System Design)
Do, 08.11. AP Rechnerarchitektur 1 (Case Study), Performancemaße für Echtzeitysteme, Projektvorstellung Überblick
Mi, 14.11. FutureSOC Lab Day bei SAP in Berlin
Do, 15.11. DR, AP Carrera Racetrack Experiment, Programmlaufzeit, Diskussion Projektarbeit
Mi, 21.11. AP, LP Performancemaße revisited, Scheduling & Task Assignment I. Scheduling & Task Assignment II
Do, 22.11. Klausurtagung Fachgebiet OSM
Mi, 28.11. Development of a Simple Operating System for LEGO Mindstorms EV3 , Speicherprogrammierbare Steuerungen (SPS/PLC; Bsp. Multi-Level-Umrichter )
Do, 29.11. Projektarbeit ZF // Vöhringer Besuch
Mi, 05.12. alle Besprechung Konzepte und Fortschritt der Projekte
Do, 06.12. Übungsbetrieb, selbstständig; Treffen nach Vereinbarung
(Zeitgleich Übung in Methods of Cloud Computing,
bitte selbständig mit KommilitonInnen gegenseitige Vertretung koordinieren)
Mi, 12.12. AP Memory Management
Do, 13.12. AP Memory Management
Mi, 19.12. AP Interrupts
Do, 20.12. advanced TrainLab @ Living Lab
Mi, 26.12. akademische Weihnachtsferien
Do, 27.12. akademische Weihnachtsferien
Mi, 03.01. akademische Weihnachtsferien
Do, 04.01. akademische Weihnachtsferien
Mi, 09.01. AP Echtzeitkommunikation
Do, 10.01. Übungsbetrieb, selbstständig; Treffen nach Vereinbarung
(Zeitgleich Übung in Methods of Cloud Computing,
bitte selbständig mit KommilitonInnen gegenseitige Vertretung koordinieren)
Mi, 16.01. AP Uhrensynchronisation
Feldbusse
Do, 17.01. Übungsbetrieb, selbstständig; Treffen nach Vereinbarung
Mi, 23.01. AP Echtzeitprogrammierung mit Ada
Do, 24.01. Übungsbetrieb, selbstständig; Treffen nach Vereinbarung
Mi, 30.01. AP Echtzeitprogrammierung mit RT-Java
Do, 31.01. (Zeitgleich Übung in Methods of Cloud Computing,
bitte selbständig mit KommilitonInnen gegenseitige Vertretung koordinieren)
Mi, 06.02. LP Echtzeit mit Linux
Do, 07.02. Übungsbetrieb, selbstständig; Treffen nach Vereinbarung
Di, 12.02. Endpräsentation Smart Noise Investigator (Projekt mit ZF Friedrichshafen)
Mi, 27.02. alle Endpräsentation
Carrera Safety Car (PDF, PPTX)
RIOTA – IOTA auf RIOT-OS

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.

Die Prüfungen finden nach Vereinbarung voraussichtlich am 27. März 2019 statt.

Ideen für Projekte

  • Charakterisierung von Fahrzeug-Akustik auf mobilen Endgeräten
    • Kooperation mit ZF
    • Signal vom Handy-Mikrofon aufnehmen
    • Geschwindigkeit aus Fahrzeug auslesen (OBD via Bluetooth)
    • diverse Auswertungen in Echtzeit
      • z.B. Lautstärke, Frequenzgang (FFT), Lautheit
    • Speichern, erneutes "Abspielen" der gespeicherten Messung
    • etc.
  • Carrera Autorennbahn D132
    • selbstfahrendes Auto via Arduino/Microcontroller/etc.
    • Platooning
    • Kommunikation über das Digitalprotokoll (viele Informationen auf slotbaer.de)
    • semiautonomes Fahren (z.B. Steuerung nur in Grenzen zulassen)
    • Beeinflussung der anderen Fahrzeuge
  • Märklin
    • einen Rückkanal (Lok → Zentrale) im MFX-Protokoll ergänzen
  • Entwicklungs-Boards (siehe Hardware-Pool) in Interaktion
    • via drahtlosem Netzwerk
    • optisch
    • akustisch
  • Eingebettete Betriebssysteme (z.B. RIOT-OS, Brillo, Contiki, Ubuntu Core, TinyOS)
    • Benchmark-Tests (Continuous Benchmarking)
    • Hardware-Unterstützung ergänzen
    • Defekte (mit Bezug zur Vorlesung) beheben (z.B. bzgl. Scheduling)
    • Vergleich zu anderen eingebetteten Betriebssystemen
  • Rail2X
    • IEEE 802.11p
    • Netzwerk-Protokolle und Middleware für weit verteilte, meist partitionierte Systeme mit Ressourceneinschränkungen
    • Store-And-Forward-Architekturen
    • Vergleich und ggf. Angleich von Simulationen in ns-3 und Experimenten/Messungen im IoT-Lab
  • programmierbares "Hau den Lukas" – ein Echtzeitproblem
  • Firmware-Programmierung für Lego Mindstorms NXT & EV3
  • Beckhoff-Industrieautomatisierung