Betriebssysteme für Embedded Computing (2007)

Wintersemester 2007/2008
Embedded OS
Prof. Dr. habil. Andreas Polze
Dipl. Inf. Andreas Rasche
Dipl. Inf. Bernhard Rabe

Im Wintersemester 2007/2008 findet eine Vorlesung zum Thema "Betriebssysteme for Embedded Computing" statt. Die Vorlesung richtet sich an Studenten im Masterstudium und ist in den Themenkomplexen "Softwaresystemtechnische Vertiefungsthemen" und "Freie Informatikthemen" bzw. "Mobile und eingebettete Systeme " angesiedelt. 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 Experiments „Hau den Lukas” wird anhand verschiedener Lösungsstrategien und Verwendung unterschiedlicher Betriebssysteme erläutert und in Übungen und Praktika vertieft.

Ein Schwerpunkt der Praktika bildet in diesem Semester die Implementierung von Betriebssystemen für eingebettete Systeme. Die Praktikumsaufgaben werden im Rahmen der Vorlesung erläutert.

Termin:

Mittwoch 9:15 Uhr - 10:45 Uhr, Raum A-1.1
Donnerstag 13:30 Uhr - 15:00 Uhr, Raum A-1.1

Praktikumsthemen/Übungen:

Werden innerhalb der ersten Vorlesungswochen bekannt gegeben. Auf Grund der beschränkten Hardwareressourcen wird das Praktikum in Gruppen von 2-3 durchgeführt. Das Praktikum soll die theoretischen Inhalte der Vorlesung in praktischer Arbeit vertiefen. Am Ende eines Themenkomplexes des Praktikums erfolgt eine kurze Vorstellung der Ergebnisse jeder Gruppe durch einen Vortrag.

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. Zusätzlich soll das am Institut stattfindende HPI-Kolloquium (Do. 16.00 Uhr) mindestens 3 mal im Laufe des Semesters besucht werden.

Ablauf:

Vorläufige Planung

17.10. 

18.10.

24.10. 

25.10.

21.10.

1.11.

7.11. Computer Architecture I

8.11. Computer Architecture II

14.11. Computer Architecute III

15.11. The Lego NXT Platform

21.11.

22.11.


28.11.

29.11.

05.12.

6.12.

12.12.

19.12.

9.1.

10.1.


16.1.


23.1.

24.1.

30.1.

6.2.

Inhalt:

1. Embedded Systems Overview
1.1 Developing Embedded Software 2h
1.2 Introduction and Performance Metrics 2h
2. Real-Time Scheduling 2h
3. Memory and Interrupts
3.1 Memory Management 2h
3.2 Interrupt Handling/Exceptions 2h
4. Communication
4.1 Real-Time Communication 2h
4.2 Field Bus Protocols 2h
4.3 Group Communication & Clock Synchronization 2h 
5. Programming Languages
5.1 Ada 2h
5.2 RT Java 4h
5.3 RT .NET 2h
6. Real-Time Operating Systems (RTOS)
6.1 RT Linux 2h
6.2 Windows CE 4h
6.3 eCOS 2h
6.4 SPS 2h 
7. System Dependability 2h
8. Standards for RTOS 2h
9. Experimental Systems
9.1 The Distributed Control Lab 2h
9.2 Beckhoff 2h

Lab Sessions:
- Introduction to the Distributed Control Lab 2h
- The Higher Striker Experiment – Lab Assignment 1 2h
- Self-Contained Assemblies 2h
- Implementing operating system services 4h

Praktikum:

  • Erwärmung: Introduction to the Distributed Control Lab

  • Get an account for the DCL (send an e-mail)
  • Go to the DCL-Webpage and login (now offline, but you can find some documentation here)
  • Select the Lego Mindstorm Simulator Experiment
  • Study and try the provided sample code
  • Implement an algorithm that "writes" an 8 on the ground

Prüfung:

tba.

Literatur:

(1) Real-Time Systems - Hermann Kopetz, Kluwer Academic Publishers
(2) Real-Time Systems - Jane W.S. Liu
(3) Embedded Software Development with eCos - Anthony J. Massa
(4) Programming Microsoft Windows CE .NET, Third Edition - Douglas Boling
(5) Real-Time Systems C.M. Krishna and G. Shin
(6) Computers as Components - Principles of Embedded Computing System Design - Wayne Wolf, Morgan Kaufmann Publishers 2001, ISBN 1-55860-693-9
(7) An Embedded Software Primer - David E. Simon, Addison-Wesley 1999, ISBN 0-201-61569-X
(8) Programming Embedded Systems in C and C++ - Michael Barr, O'Reily 1999, ISBN 1-56592-354-5
(9) Real-Time Concepts for Embedded Systems - Qing Li, CMPBooks 2003, ISBN 1-57820-124-1
(10)  Operating Systems Design and Implementation (The Minix Book) - Andrew S. Tannenbaum, Albert S. Woodhull, Prentice Hall, ISBN 0-13-142938-8 

created by Andreas Rasche