Betriebssysteme für Embedded Computing (2006)
Wintersemester 2006/2007Prof. Dr. habil. Andreas Polze
Dipl. Inf. Andreas Rasche
Dipl. Inf. Bernhard Rabe
Im Wintersemester 2006/2007 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. Anhand des Lehrbetriebssystems Minix werden verschiedene Algorithmen zur Ressourcenverwaltung erläutert und in praktischen Übungen vertieft.
Termin:
Mittwoch 9:15 Uhr - 10:45 Uhr, Raum B.E-2
Mittwoch 11:00 Uhr - 12:30 Uhr, Raum B-E.2
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 Forschungskolloquim mindestens 3 mal im
Laufe des Semesters besucht werden.
Ablauf:
18.10. Ablauf, Softwareentwicklung, Performance Maße
- Softwareentwicklung für eingebettete Systeme ( b/w )
- Einführung und Performance Maße ( b/w )
- Einführung in das Distributed Control Lab ( b/w )
25.10. Performance Maße
1.11. Scheduling, Hau-den-Lukas
8.11. Speicherverwaltung, Interrupts & Exceptions
15.11. Echtzeitkommunikation
22.11. Ada
28.11. Programmiersprachen für eingebettete Systeme
6.12. Gruppenkommunikation & Uhrensynchronisation
13.12. Implementierung von Betriebssystemdiensten
20.19. Speicherprogrammierbare Steuerungen
10.1. Betriebssysteme - Windows CE
- Windows CE Design Principles and Goals
- Windows CE Architecture - Basic System Components
- Windows CE Architecture - Process and Memory Modell
-
Windows CE Platform Builder
17.1. Betriebssysteme - Windows CE cont.
- Real-Time Systems with Windows CE
- Host Communication with Remote API (RAPI)
- Windows CE Device Driver Architecture ( b/w )
- MSDN - Windows CE Interrupt Architecture
- The CE6 OS differences in a nutshell
24.1 Betriebssysteme
31.1 Betriebssystemsstandards für Eingebettete Systeme
- OS-Standards ( b/w )
7.2. Studentische Vorträge zum Lab Assignment 2
- Jede Gruppe hält einen 15 Minütigen Vortrag über ihre Lösung der Aufgabenstellung.
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
- The Minix operating system – Lab Assignment: Integrating EDF into Minix 2h
Praktikum:
-
Erwärmung: Introduction to the Distributed Control Lab
- Get an account for the DCL (send an e-mail)
- Set-up a VPN-Connection to the lab
- Enter the DCL at was.discourse.de
- Check the DCL-Page for a Visual-Studio DCL-Plug-In
- Select the Lego Mindstorm Simulator Experiment
- Study and try the provided sample code
- Implement an algorithm that "writes" an 8 on the ground
-
Lab Assignment 1 (engl.) (Abgabe Schritte 1-5: 24.11.2006 / Abgabe Schritt 6: 8.12.2006)
-
Lab Assignment 2
(
Minix-Vmware-Image
(176 MB))
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