Informationen:
Selbstdarstellung des Projekts
Hier findet man alles über
das laufende Projekt ACOP.
Überblick
In der Norm ARINC 653 wird das Application Program Interface (API) für
ein Betriebssystem beschrieben, welches besonders für den Einsatz in
verteilten Steuerungssystemen der Luftfahrt geeignet ist. Diese Norm ist in
den vergangenen Jahren von einigen Herstellern umgesetzt worden, so dass
erstmals im neuen Airbus A380 Controller mit einem solchen Betriebssystem
ausgestattet sind.
Abgesehen von der Neuheit und Aktualität hat das API mehrere interessante
Eigenschaften, die es für den Einsatz bei verteilten Embedded Systems
besonders geeignet machen und von konventionellen (Echtzeit-)Betriebssystemen
zumindest in der Gesamtheit nicht unterstützt werden:
- Die API-Spezifikation fordert Partitioning, das heisst, dass
sicherheitskritische Applikationen nicht durch andere, weniger kritische, in
ihrem Ablauf gestört werden dürfen, auch wenn sie auf der selben
CPU aktiv sind.
- Mit Blackboards und Ports wird ein
vereinheitlichtes Kommunikationskonzept definiert, welches sowohl die
(verteilte) Interprozesskommunikation als auch den Datenaustausch zwischen
Controller und Peripherie unterstützt. Besonders interessant ist
hierbei der Ansatz, eine Schnittstellenabstraktion anzubieten, welche nahezu
vollständig vom unterliegenden Device abstrahiert: Daten werden mit
Hilfe von Functional Groups, Data Sets und Signals
identifiziert; die Umsetzung der Signaldaten auf konkrete Busse, digitale
oder analoge Schnittstellen erfolgt transparent durch unter dem API
angesiedelte Dienste.
- Das Gesamtsystem ist vor der Inbetriebnahme so
konfigurierbar, dass die Verfügbarkeit von Ressourcen (CPU-Zuteilung,
Kommunikationsbandbreite) im Umfang der Konfiguration garantiert und nicht
vom zufälligen Aufeinandertreffen mehrerer Ereignisse ungünstig
beeinflusst werden kann. Dies wird unter anderem auch durch die Normung
eines verteilten Kommunikationsdienstes unterstützt (ARINC 651), das
Avionics Full Duplex Network, welches ebenfalls im Airbus A380
erstmalig zu Einsatz kommt.
Trotz der attraktiven Merkmale des Betriebssystem-APIs gibt es bisher nur
Implementierungen für Spezialcontroller der Luftfahrt; eine auf dem PC
nutzbare Umsetzung fehlt noch. Die soll Gegenstand des hier beschriebenen
Studentischen Projektes {\sl ACOP -- Aircraft Operating System} sein.
Projektziele
Das Gesamtprojekt wird in drei Teilaufgaben gegliedert:
Implementierung des ARINC 653-APIs
Die API als zusätzliches, parallel nutzbares API im Linux Kernel:
Die Funktionen des APIs werden als neue Linux-Systemaufrufe registriert
und durch Erweiterungen des Kernels realisiert. Die
Schnittstellenabstraktion wird für Ethernet, Digitale I/O,
Analoginterfaces, CAN, ARINC 429 und AFDX realisiert. Dies sind die
wichtigsten heute in der Luftfahrt gebräuchlichen Schnittstellen.
Formale Spezifikation der Wirkungsweise aller API-Funktionen
Um den informalen, im Manual-Page Stil abzufassenden API-Beschreibungen ein
eindeutiges Verhaltensmodell zuzuordnen, werden formale Spezifikationen mit
Hilfe von UML 2.0, Z und/oder Timed CSP erstellt. Diese sollen als
eindeutige Referenzspezifikation und gleichzeitig als Input für die
Testfallerstellung dienen.
Hardware/Software-Integrationstest der Implementierung
Für den Test der API-Implementierung werden sog. Testapplikationen
entwickelt. Diese laufen auf dem zu testenden Rechner und werden im
Hardware-in-the-Loop Test durch einen separaten Rechner - die Test
Engine - kommandiert. Die Testapplikation meldet die lokale Wirkung der
Systemaufrufe an die Test-Engine zurück; letztere prüft
zusätzlich noch die Ausgaben des Testlings auf den Hardwareinterfaces
auf Korrektheit.
Teilnehmer
Teilnehmen können Studenten der Diplom-, Bachelor- und
Masterstudiengänge Informatik. Die Bachelorstudenten werden an den ersten
beiden Projektsemester in den Bereichen Implementierung und Spezifikation
mitwirken. Für eventuelle Masterstudenten werden individuelle Regelungen
getroffen.
Begleitende Vorlesungen
WS 05/06
- Betriebssysteme I (notwendig)
- Betriebssysteme II (notwendig)
SoSe 06
- Spezifikation eingebetteter Systeme (notwendig)
WS 06/07
- Testautomatisierung I (notwendig)
SoSe 07
- Testautomatisierung II (empfohlen)
Schein
Für den Projektschein müssen folgende Voraussetzungen erfüllt sein:
- Teilnahme an den begleitenden Lehrveranstaltungen
(die Noten sind für die Projektnote unerheblich)
- Teilnahme am wöchentlichen Plenum
- Beteiligung am Projektmanagement (Koordinierung, Verwaltung, Webauftritt,
etc.)
- Beteiligung an mindestens zwei der drei Teilaspekte des Projekts
- Beteiligung an den Semesterberichten und am abschließenden Projektbericht
Für die Note des Projektscheins gelten folgende Kriterien:
- Umfang und Qualität der Projektarbeit (Implementierung, Spezifikation und
Test)
- Umfang und Qualität der Beteiligung an den Semester- und
Projektberichten
- Umfang und Qualität der Beteilung an der Präsentation auf dem
Projekttag