|
Echtzeitsysteme Was bedeutet Echtzeit?
In meiner Projektarbeit erlebe ich es immer wieder, dass Echtzeitfähigkeit eines Systems einzig mit der Geschwindigkeit der Informationsverarbeitung gleichgesetzt wird. Das greift jedoch zu kurz. Echtzeitfähigkeit muss vielmehr als das pünktliche Erreichen eines Systemzustandes gesehen werden. Denn bei einem Echtzeitsystem hängt etwa die Korrektheit eines Berechnungsergebnisses, das ein Prozess liefert, nicht nur vom Ergebnis ab, sondern auch von dem Zeitpunkt, an dem es vorliegt. Eine Deadline beschreibt dabei den Zeitpunkt, an dem ein Resultat spätestens vorliegen muss. Wird die Deadline überschritten, ist das Ergebnis ungültig. Diese Aufgabenstellung wird um so komplexer je mehr Prozesse involviert sind.
Harte und weiche zeitliche Anforderungen
|
Scheduling-Problem für acht Tasks mit Vorgänger / Nachfolger-Relation (Precedence Constraints) |
|
Es werden weiche und harte Echtzeitsysteme unterschieden. Bei einem weichen Echtzeitsystem dürfen Deadlines in Ausnahmefällen überschritten werden. Ein Berechnungsergebnis verliert dadurch nicht seine Gültigkeit. Diese Systeme sind nicht sicherheitskritisch.
Bei Systemen mit harten Echtzeitanforderungen ist dies anders; ein Resultat muss spätestens bis zu seiner Deadline vorliegen, sonst verliert es seine Gültigkeit. Beispielsweise wäre der korrekte Zündzeitpunkt eines Airbags eine harte Echtzeitanforderung. Damit ein Airbag seine Wirkung optimal entfalten kann, darf er bei einem Unfall nicht zu spät, aber auch nicht zu früh vom System gezündet werden. Andernfalls würden die Fahrzeuginsassen gefährdet werden.
Das Öffnen und Schließen einer funkferngesteuerten Zentralverriegelung ist dagegen nicht kritisch, denn auf ein paar Millisekunden mehr oder weniger kommt es beim Schließmechanismus nicht an. Hierbei handelt es sich also um ein System mit weichen Echtzeitanforderungen.
Ereignis- und zeitgesteuerte Systeme Prozesse können aufgrund externer Ereignisse (z.B. Betätigen der Funkfernbedienung der Zentralverriegelung) oder durch den zeitlichen Fortschritt angestoßen und beeinflußt werden.
Bei einem externen Ereignis kann es sich auch um einen Interrupt handeln, der durch einen anderen Prozeß ausgelöst wurde, wenn z.B. ein Betriebsmittel freigegeben wurde. Man bezeichnet solche Systeme auch als Event Triggered.
|
Schedule mit einer Lösung für die obigen Tasks T1 bis T8 bei drei identischen Prozessoren P1 bis P3 |
|
Bei zeitgesteuerten Systemen wird der Zustand einzig durch einen statisch festgelegten Zeitplan (Schedule) verändert. In diesem Zeitplan ist genau bestimmt, wann und wie lange welche Task als Prozeß aktiviert wird und Zugriff auf ein Betriebsmittel wie Prozessor, Speicher, Übertragungsmedium usw. erhält. Diese Systeme werden als Time Triggered bezeichnet.
Es gibt auch hybride Systeme. Diese Systeme verhalten sich nach einem festen Schema im Wechsel einmal wie ein zeitgesteuertes und dann wie ein ereignisgesteuertes System. Beispielsweise können bei einem Übertragungsmedium bestimmte Zeitfenster für sporadische Datenübertragungen reserviert sein.
Echtzeitbetriebssysteme
|
Foto: Wikipedia
|
Am Markt sind zahlreiche kommerzielle und freie Echtzeitbetriebssysteme verfügbar, die die Entwicklung von echtzeitfähigen Applikationen unterstützen. VxWorks wird vorwiegend in Anwendungen der Luft- und Raumfahrt, im Verteidigungssektor, bei Maschinensteuerungen und in medizinischen Geräten eingesetzt. So basiert z.B. auch die Steuerungssoftware der beiden Marsrover „Opportunity“ und „Spirit“ auf VxWorks. QNX Neutrino ist ein Real-Time OS (RTOS) das auf einem Mikrokernel beruht. Das heißt, dass jeder Treiber, jede Anwendung, jeder Protokollstack und jedes Dateisystem als Prozeß in einem eigenen, geschützten Speicherbereich außerhalb des Kernels laufen. OSEK-OS kommt in automotiven Systemen zum Einsatz, z.B. in Motorsteuergeräten. Es handelt sich um ein statisches Echtzeitbetriebssystem. Alle Betriebsmittel und Tasks werden im voraus definiert und konfiguriert, bevor sie mit der Applikation compiliert und gelinkt werden. Das Echtzeitbetriebssystem eCos ist quelloffen und erlaubt Entwicklern somit unter Beachtung der entsprechenden Lizenzbestimmungen den vollen Zugriff auf den Quelltext. eCos zeichnet sich durch ein Konfigurationssystem aus, welches es dem Anwender erlaubt, ein sehr schlankes, anwendungsspezifisches System zusammenzustellen. FreeRTOS ist ein quelltextoffenes Echtzeitbetriebssystem, welches auf einem Mikrokernel basiert. Bis auf wenige Ausnahmen ist FreeRTOS vollkommen in C implementiert. Der Scheduler kann sowohl preemptives als auch kooperatives Multitasking unterstützen. Mit SafeRTOS existiert eine Variante von FreeRTOS, die sich für sicherheitskritische Applikationen gemäß IEC 61508 SIL 3 eignet.
|
Die Wahl des richtigen Real-Time OS
Bei der Wahl des richtigen Echtzeitbetriebssystems in einem Projekt sollte man sich zunächst die folgenden Fragen stellen:
- Wie zuverlässig und stabil arbeitet das System?
- Welche Entwicklungswerkzeuge sind verfügbar?
- Welche technischen Möglichkeiten bietet das RTOS (maximale Anzahl der Tasks, Kommunikation, Synchronisation, Multiprozessorfähigkeit etc.)?
- Welche Kosten - etwa für Lizenzen - entstehen?
- Erfordert die Anwendung ein RTOS mit harter oder weicher Echtzeitfähigkeit?
- Werden bekannte oder proprietäre Programmierschnittstellen (API) geboten?
- Bietet der Hersteller ausreichend Support?
- Welche Sicherheitsanforderungen und -standards muss das System erfüllen?
- Wie ressourcenhungrig hinsichtlich Speicher und Rechenleistung ist es?
- Welche Mikrocontroller werden unterstützt (auch hinsichtlich künftiger Entwicklungen)?
|
|
|