![]() |
||
![]() |
![]() |
![]() |
![]() |
Einleitung
Im Sommersemester 1995 hielt Professor Reinhard Wilhelm an der Universität
Saarbrücken die Vorlesung ``Realzeitsysteme''. Während den ersten
Stunden entstand die Idee, ein typisches Realzeitsystem zu implementieren.
Nikolaus Gerteis, Michael Rumpf und Roland Schlosser entschlossen sich,
diese Implementierung im Rahmen eines Fortgeschrittenenpraktikums (Fopra)
zu realisieren. Es sollte ein kleines Fahrzeug gebaut werden, welches mit
einer Rechnersteuerung versehen, eine vorgegebene Streckenfolge möglichst
exakt nachfährt.
Was sind Real- (Echt-)zeitsysteme?
In einem Echtzeitsystem werden an das darin integrierte Computersystem besondere Anforderungen, die Echtzeitanforderungen, gestellt. Typischerweise besitzt der Computer eine steuernde Funktion und bestimmte Reaktionen müssen bis zu einem vorgegebenem Zeitpunkt - der Deadline - erfolgt sein, da ansonsten ein korrektes Funktionieren des Gesamtsystems nicht mehr gewährleistet werden kann. Ein elektronisches ABS-System (wie man es von einem PKW kennt)ist ein einfaches Beispiel für ein Echtzeitsystem. Der Computer (Microchip ), der das Öffnen und Schliessen der Bremsen steuert, darf keine ``Denkpausen'' einlegen, ein Unfall wäre eine Folge.
Ein weiteres Beispiel ist die gesamte Steuerung eines modernen Linienflugzeuges (z.B. Airbus). Hier muß das Computersystem auf eine große Anzahl verschiedener Eingangsgrössen zuverlässig reagieren und darf sich, wie man unschwer einsieht, keine Verspätungen (Verletzung der Echtzeitanforderungen) erlauben. Die enorme Komplexität solcher Systeme macht es schwer, Aussagen im Vorhinein zu treffen, ob eine Steuerung auch wirklich ihre Aufgabe korrekt erfüllt. Auf der anderen Seite stehen enorme Sicherheitsanforderungen. Am deutlichsten wird dies bei Systemen, wie etwa einem Kernkraftwerk, einer Nuklearrakete oder einer chemische Fabrik. Also ist es in vielen Fällen unabdingbar, die Korrektheit eben auch des Verhaltens von Systemen zu beweisen. Hauptgegenstand des Forschungsgebietes Realzeitsysteme ist nun das Studieren von Systemen unter dem Aspekt ihres zeitlichen Verhaltens. Man möchte garantieren können, daß ein System unter allen Umständen vorgegebene (Echt-) Zeitbedingungen nicht verletzt. In den meißten Fällen bedeutet dies, daß eine Berechnung zu einem vorher bestimmten Zeitpunkt abgeschlossen sein muß.
Neben den extrem sicherheitskritischen Realzeitsystemen des letzten Abschnittes (welche man als ``harte'' Echtzeitsysteme bezeichnet) gibt es die sogenannten weichen Realzeitsysteme. Im Gegensatz zu Ersteren sind bei diesen gewisse Verspätungen, etwa bei kurzzeitiger Spitzenbelastung, erlaubt. Aber auch hier ergibt sich ein ähnliches Problem bei der Vorhersage: es gibt Verspätungen, die nicht überschritten werden dürfen.
Ein Hauptproblem bei der Analyse von Echtzeitsystemen ist, einzelne Komponenten des Systems nur schwer für sich getrennt betrachten zu können. Eine Echtzeitanforderung betrifft immer ein System als Ganzes. Eine einzelne Komponente, welche eine Verspätung bewirkt, kann eine Katastrophe auslösen, obwohl alle anderen Komponenten ``richtig programmiert'' waren. So ist es unter Umständen wichtig, daß der Programmierer, der in einer höheren Programmiersprache programmiert, weiß, wie der Compiler in Maschinencode übersetzt, denn meißt erst über dem Maschinencode können Laufzeitaussagen getroffen werden.
Mittlerweile gibt es spezielle Realzeitprogammiersprachen(Ada, Pearl), Realzeitbetriebssysteme und Analysewerkzeuge, die dem Entwickler und Programmierer von Realzeitsystemen bei der Arbeit helfen.
Installation
Folgende Voraussetzungen müssen geschaffen werden, damit alle Projekte kompiliert werden können:
Natürlich können, falls LEDA und die 80C166 Entwicklungsumgebung noch nicht installiert sind, die beiden Pakete direkt im fopra Verzeichnis installiert werden, wobei LEDA sich jedoch immer mit der Versionsnummer im Verzeichnisnamen installiert, so daß eine Umbenennung des Verseichnisses in "LEDA" notwendig ist.
Zum vollständigen Erzeugen aller Teilprojekte ist lediglich im fopra-Verzeichnis make aufzurufen. Dabei wird vorerst nur der Editor erzeugt. Die Steuerungssoftware wird erst vor dem Übertragen der Streckeninformation an den Steuerungsrechner kompiliert, weil die Streckendaten als Konstanten in Form einer Header-Datei in das Steuerungsprogramm eingebunden werden.
Roland Schlosser

Am Galgenberg 22
66564 Ottweiler
Phone 06824/5507
Email schlosse@cs.uni-sb.de
Nikolaus Gerteis

St.Ingberter Str. 41
66123 Saarbrücken
Telefon 0681/635461
Email nige@wurzelausix.CS.Uni-SB.DE
Michael Rumpf

Moltkestrasse 1
66117 Saarbrücken
Phone 0681/52035
FAX 0681/52445
Email miru@stud.uni-sb.de
WWW http://fsinfo.cs.uni-sb.de/~miru