HARDLINC - Hard Real-Time Linux Clusters
Studentisches Projekt über 4 Semester - Beginn im Wintersemester
2001/2002
Beginn der Projekttreffen
Das erste Treffen des Projektes findet am 19. Oktober 2001 um 13.00 Uhr
im Raum MZH 5210 statt.
Veranstalter
Jan Peleska (jp@tzi.de) wird das Projekt während der
gesamten Laufzeit begleiten. Markus Dahkweid
(dahlweid@tzi.de) unterstützt das Projekt als wissenschaftlicher Mitarbeiter.
Themenbeschreibung
Worum geht es? Dieses Projekt beschäftigt sich mit Entwicklung
von skalierbaren Hard Real-Time Systemen auf Linux/PC
Basis. Typische Anwendungsszenarien für solche Rechner sind
sicherheitskritische Steuerungen von Anlagen oder Simulatoren und
Testsysteme, in denen garantiertes Zeitverhalten gefordert ist: Der
Begriff "Hard Real-Time" steht für die Systemeigenschaft, Mindest- und
Maximalzeitschranken für Verarbeitungsabläufe in jeder
Betriebssituation garantieren zu können. "Skalierbarkeit" bedeutet
hier, dass die Leistungssteigerung durch Hinzunahme weiterer CPUs oder
neuer Rechner ins Cluster erfolgen kann, ohne dass ein Flaschenhals
entsteht, der die Leistungssteigerung vereitelt.
Motivation: Der Bedarf an Computern für die Echtzeitsteuerung,
Simulation, Test oder Überwachung nimmt stetig zu. Nach dem heutigen
Stand der Technik werden hierzu VME-Bus Systeme oder
Spezialentwicklungen verwendet. VME-Systeme haben den bekannten
Nachteil, dass der VME-Bus bei hoher Last zum Flaschenhals wird, die
Technologie (sie entstand in den 80iger Jahren) ist aus heutiger Sicht
veraltet. Spezialentwicklungen (z.B. von den Firmen Concurrent oder
Dspace) haben den Nachteil, dass besondere (und besonders teure)
Hardware eingesetzt wird, so dass die einfache und preisgünstige
Skalierbarkeit, wie man sie bei Standardsystemen heute vorfindet, hier
nicht gegeben ist. Aus diesem Grund wird die Verwendung von Standard
PCs für die genannten Anwendungsszenarien zur Zeit ausgiebig in
Forschungsgruppen und Industrie diskutiert. Ein wichtiger Aspekt ist
dabei auch die Einsetzbarkeit von Standard-Betriebssystemen, da man auf
den von Linux, Solaris oder Windows gewohnten Komfort auch bei
Echtzeitanwendungen nicht mehr missen möchte. Es gibt aber noch keine
marktreife Lösung, so dass unser Projekt tatsächlich auf diesem Gebiet
eine wichtiges und innovatives Thema untersucht.
Technische und Wissenschaftliche Inhalte: Wir schlagen vor,
folgende Themenstellungen im Projekt zu behandeln. Weitere Themen
können mit den TeilnehmerInnen bei Projektbeginn ausgearbeitet werden.
- Real-Time Erweiterungen für den Linux Kernel: Es gibt
verschiedene Ansätze für Echtzeiterweiterungen des
Linux-Kernels. Diese sollen verstanden und auf ihre Eignung für die
Zielsetzung "Hard Real-Time Cluster" hin untersucht werden. Eine
interessante, von anderen Gruppen noch nicht bearbeitete Variante ist
die Entwicklung neuer Systemaufrufe und Modifikationen des Linux
Schedulers, welche die explizite Reservierung von CPUs für bestimmte
Prozesse oder Threads ermöglicht. Diese Möglichkeit kann sehr gute
Ergebnisse bei Mehr-CPU PCs bringen.
-
Aufbau eines Clusters: Ein vielversprechender Ansatz für den
Aufbau von Echtzeit-Clustern ist die Entwicklung eines virtuellen
gemeinsamen Speichers. Hierzu stehen auf der Hardware-Ebene IEEE1394
(FireWire) Verbindungen zur Verfügung. Weiterhin sind im Rahmen des
Beowulf-Projektes (Hochleistungsrechner auf Linux-Basis) weitere
Möglichkeiten zur schnellen Rechnerkopplung entwickelt worden. Auf
Grundlage dieser Hardwareoptionen sollen Möglichkeiten einer
Distributed Shared Memory Abstraktion untersucht und entwickelt
werden. Neben den interessanten softwaretechnischen Aspekten dieser
Aufgabenstellung wird hier auch die Entwicklung neuer Treiber mit
DMA-Technologie erlernt und angewendet.
-
Test und Verifikation von Echtzeiteigenschaften:
Zur Prüfung der entwickelten Verfahren hinsichtlich ihrer
Echtzeiteigenschaften werden Methoden des Echtzeittests und der
Formalen Verifikation/Simulation eingesetzt. Diese Methoden sind
wissenschaftlich und technisch spannend, da die Einbeziehung von
Zeiteigenschaften Prüfverfahren erfordert, die ganz anders als Tests
von Datentransformationen gestaltet werden müssen.
Wer sollte an diesem Projekt teilnehmen? Das Projekt ist für
TeilnehmerInnen konzipiert, die gerne die Interna von Betriebssystemen
verstehen und auch selber Betriebssystementwicklung betreiben
möchten. Dies ist heute wieder ein hochrelevantes Thema geworden, da
die vielfältigen neuen Softwareanwendungen in mobiler Kommunikation
und Geräten der verschiedensten Ausprägungen fast immer auch die
Entwicklung spezialisierter Betriebssysteme erfordern. Weiterhin ist
Linux in die erste Reihe der heute verwendeten Betriebssysteme
vorgerückt und wird auf der ganzen Welt weiterentwickelt, so dass
Spezialistinnen und Spezialisten auf diesem Gebiet sicherlich
zunehmend gefragt sind.
Bezug zu Forschungsprojekten:
Im Projekt wird auch über die Anwendungen
von Hard-Real Time Systemen gesprochen. Hier haben wir einen direkten
Bezug zum parallel laufenden Europäischen Forschungsprojekt
VICTORIA , welches sich mit Entwicklung, Test und Verifikation von
neuen verteilten Steuerungssystemen für die Luftfahrt befasst. In
diesem Projekt arbeiten wir mit den wichtigsten im Luftfahrtbereich
vertretenden Europäischen Forschungsinstituten und Firmen
zusammen. Ein Hard Real-Time Linux Cluster könnet hier beispielsweise
für Echtzeitsimulationen und Tests von Controllern eingesetzt werden.
Begleitende Lehrveranstaltungen
Wintersemester 2001/2002: Betriebssysteme 1
Sommersemester 2002: Betriebssysteme 2
Wintersemester 2002/2003: Testautomatisierung
Einführung in Formale Methoden: Zeitpunkt und Veranstalter
sowie Inhalte werden noch besprochen
Seminar über Echtzeitsysteme: Zeitpunkt und Veranstalter
sowie Inhalte werden noch besprochen
Ausstattung
-
Wir haben einen Projektraum in der Ebene 5, der dem Projekt komplett
zur Verfügung steht.
-
Als Clusterrechner werden wir mit 2 PCs mit jeweils 2 CPUs und
FireWire-Kopplung
beginnen. Dieser Cluster kann bei Bedarf erweitert werden.
-
Rechner für Einzelexperimente: Zum Experimentieren mit
Kernelmodifikationen und Treibern stehen mehrere PCs zur Verfügung,
die Anzahl wird ausreichend sein. (Was
P. damit sagen möchte, ist: Es gibt genug vorhandene HW und genug
Geld, um bei Bedarf nachzukaufen :-)
Literatur
- Hermann Kopetz: Real-Time Systems - Design Principles for
Distributed Embedded Applications. Kluwer Academic Publishers (1997).
- Michael Beck et al.: Linux Kernelprogrammierung. Addison Wesley
(wahrscheinlich 2001, es soll eine aktualisierte Neuauflage mit Bezug
auf den neuen Kernel 2.4 geben)
- Alessandro Rubini & Jonathan Corbet: Linux Device Drivers, 2nd
Edition. O'Reilly (2001). (Dieses Buch ist auch online und zum
drucken bei O'Reilly
verfügbar.)
- Daniel P. Bovet & Marco Cesati: Understanding the LINUX Kernel. O'Reilly (2001)
Weitere Literatur in Hinblick auf Betriebssysteme, Formale Methoden
und Testen wird gemeinsam im Wintersemester 01/02 ausgesucht.
WWW-Links für Information zu schnellen Netzwerk-Verbindungen
Jan Peleska
/ Bremen Institute of Safe Systems BISS - TZI/
<
jp@informatik.uni-bremen.de>
/ 26-APR-2001