Von Echtzeitsystemen (englisch real-time system) spricht man, wenn ein System ein Ergebnis innerhalb eines vorher fest definierten Zeitintervalles garantiert berechnet, also bevor eine bestimmte Zeitschranke erreicht ist. Die Größe des Zeitintervalles spielt dabei keine Rolle: Während bei einigen Aufgaben (Motorsteuerung) eine Sekunde bereits zu lang sein kann, reichen für andere Probleme Stunden oder sogar Tage. Ein Echtzeitsystem muss also nicht nur ein Berechnungsergebnis mit dem richtigen Wert, sondern dasselbe auch noch rechtzeitig liefern. Andernfalls hat das System versagt.
Umgangssprachlich spricht man auch von in Echtzeit, wenn Programme ohne spürbare Verzögerung arbeiten. Diese Definition ist jedoch sehr unsauber.
Harte und weiche Echtzeit
Abhängig von den Folgen wird manchmal zwischen
harter Echtzeit (englisch:
hard real-time) und
weicher Echtzeit (englisch:
soft real-time) unterschieden. Hierfür gelten jeweils unterschiedliche
Echtzeitanforderungen.
- weiche Echtzeitanforderungen: Solche Systeme arbeiten typischerweise alle ankommenden Eingaben schnell genug ab. Die Antwortzeit erreicht einen akzeptablen Mittelwert; signifikante Abweichungen von diesem sind selten, obwohl grundsätzlich mit vereinzeltem Auftreten größerer Abweichungen zu rechnen ist.
- harte Echtzeitanforderungen: Eine Überschreitung der Antwortzeit wird als ein Fehler gewertet. Echtzeitsysteme liefern das korrekte Ergebnis immer innerhalb der vorgegebenen Zeitschranken. Auf diese Eigenschaft kann man sich beim Einsatz eines Echtzeitsystems verlassen.
Beispiele:
- Systeme für Videokonferenzen müssen Bild und Ton innerhalb von Mikrosekunden aufnehmen, vorverarbeiten, versenden und darstellen. Wenn dies bei einigen Bildern nicht gelingt, "ruckelt" die Darstellung zwar etwas, es kann danach jedoch ohne negative Folgen weitergearbeitet werden. Es handelt sich also um weiche Echtzeit.
- Die elektronische Motorsteuerung in einem Auto muss harte Echtzeit erfüllen, sonst stottert der Motor oder das Auto bleibt stehen. Der Ausfall bzw. eine nicht korrekt eingehaltene harte Echtzeit kann im schlimmsten Fall sogar einen Unfall verursachen.
Je nach Problemstellung und Blickwinkel wird auch folgende Definition verwendet:
- weiche Echtzeitanforderungen: Das System muss in der angegebenen Zeitspanne reagieren, nicht jedoch das vollständige Ergebnis liefern. Tritt keine Reaktion ein, gilt der Vorgang als fehlgeschlagen und wird abgebrochen.
- harte Echtzeitanforderungen: Das System muss im definierten Zeitfenster das Ergebnis vollständig präsentieren.
Innerhalb der weichen Echtzeitsysteme finden sich manchmal weitere Klassifikationen, die die Überschreitungen der Antwortzeiten feiner differenzieren. Häufige Kriterien sind:
- Das Ergebnis hat keinen Wert mehr; die Berechnung wird abgebrochen und verworfen.
- Der Wert (die Bedeutung oder der Nutzen, nicht der numerische Wert) des Ergebnisses sinkt ab Ende der Antwortzeit.
- Eine Überschreitung der Antwortzeit wird hingenommen, und das Ergebnis wird angenommen, wenn es vorliegt.
Bereits die Definition von weichen Echtzeitystemen ist von eher umganssprachlicher Natur, so dass eine feinere Unterteilung erst recht schwierig zu geben ist.
Umsetzung
Echtzeit beschreibt das zeitliche Ein-/Ausgangsverhalten eines Systems, sagt aber nichts über dessen Realisierung aus. Ein Echtzeit-System kann ein Rechner mit einer geeigneten Software, kann aber auch eine reine Hardware-Lösung sein. Für Anforderungen mit sogenannten weichen Grenzen werden normalerweise reguläre EDV-Systeme verwendet. Für Anforderungen mit harten Grenzen werden spezielle Architekturen (Hardware und Software) verwendet. Prinzipiell ist auch ein
PC echtzeitfähig, allerdings nicht oder nur sehr bedingt wenn er mit klassischen
Multitaskingbetriebssystemen betrieben wird. Echtzeitbetriebssysteme sind oftmals ebenfalls multitaskingfähig, verfügen jedoch über einen anderen
Scheduler als konventionelle Systeme.
Auch in speicherprogrammierbaren Steuerungen (SPS) und Prozessleitsystemen (PLS) werden Echtzeitbetriebssysteme eingesetzt, die aber dem Anwender nicht direkt zugänglich sind.
Um die Echtzeitfähigkeit eines mittels Software realisierten Echtzeit-Systems theoretisch nachweisen zu können, müssen die Häufigkeit der externen Ereignisse, die Laufzeit der einzelnen Programmteile und die Zeitschranken bekannt sein.
Die Software, die unter Echtzeitbedingungen läuft, muss einige Eigenschaften - insbesondere bei harten Grenzen - aufweisen:
- Die maximale Laufzeit eines Moduls muss berechenbar sein und darf keinen nicht oder nur bedingt beeinflussbaren Faktoren unterliegen. Dazu zählt z.B. die Festplatte oder ein TCP/IP Netzwerk.
- Bei Rekursion muss die maximale Rekursionstiefe, bei Schleifen muss die maximale Anzahl an Iterationen feststehen.
- Der Bedarf an Ressourcen, insbesondere der Bedarf an Speicher muss bekannt sein. Die Laufzeitumgebung und die Hardware muss den Ressourcenbedarf decken können.
- Die Laufzeit von Betriebssystemsaufrufen und von Routinen der Laufzeitumgebung muss mit berücksichtigt werden. Problematisch ist hier zum Beispiel der Einsatz automatischer Speicherbereinigung, dessen Laufzeit sehr pessimistisch abgeschätzt werden muss. Auch die Verwendung von virtuellem Speicher ist wegen der potentiellen Zeitverluste beim Ein-/Auslagern von Speicherseiten vom/in den Hintergrundspeicher problematisch.
- Das Verhalten bei drohender Zeitüberschreitung muss definiert und vorhersehbar sein.
Beispiele für Echtzeitsysteme
Rechner zur Steuerung von technischen Einrichtungen oder Prozessen wie Maschinen, verfahrenstechnische Anlagen oder Verkehrsmitteln sind praktisch immer Echtzeit-Systeme.
Ein Echtzeitsystem reagiert also auf alle Ereignisse rechtzeitig und verarbeitet die Daten "schritthaltend" mit dem technischen Prozess. Es wird sozusagen nicht vom technischen Prozess abgehängt.
- In einem Auto muss das elektronische Motormanagement zu bestimmten Zeitpunkten seine Ergebnisse (einzuspritzende Benzinmenge, Zündzeitpunkt) liefern. Später eintreffende Ergebnisse sind wertlos.
- In Maschinen ändert sich die gegenseitige Lage von Werkstück und Werkzeug innerhalb von Millisekunden. Abhängig von der geforderten Fertigungstoleranz muss eine Steuerung innerhalb von Mikrosekunden bis einer Millisekunde auf Abweichungen reagieren, um echtzeitfähig zu sein.
- Die Temperatur eines Apparates in einer verfahrenstechnischen Anlage ändert sich meist nur innerhalb von Minuten. Eine Steuerung, die innerhalb von mehreren Sekunden auf Abweichungen reagiert, kann daher noch als echtzeit-fähig gelten.
- Netzleittechnik: Zwischen Auslösen eines Schaltvorganges im Hochspannungsnetz und der eigentlichen Schaltung darf nicht mehr als eine Sekunde vergehen.
- Raketentechnik: Die härtesten Echtzeitanforderungen betreffen die Patriot-Raketen, die zum Abschuss anderer Raketen eingesetzt werden. Bei Begegnungsgeschwindigkeiten von mehreren 1000 m/s und einzuhaltenden Trefferadien von weniger als einem Meter müssen Zeitschranken im Nanosekundenbereich eingehalten werden.
- Antiblockiersystem (ABS) im Auto
- Airbag Steuerung im Auto: Die Airbag Steuerung muss innerhalb kürzester Zeit die Messwerte der Sensoren verarbeiten und entscheiden, ob und wie stark der Airbag ausgelöst wird.
- SAP Inventurdaten stehen täglich zur Verfügung
Gestaltungsparadigmen
Bei der Realisierung gibt es zwei Gestaltungsparadigmen:
ereignisgesteuert und
zeitgesteuert.
Bei der Ereignissteuerung wird auf ein von außen kommendes Ereignis sofort reagiert, d. h. eine Verarbeitung gestartet. Gegebenenfalls wird eine gerade laufende Verarbeitung dabei unterbrochen. Die Ereignissteuerung hat den Vorteil, dass sie mit lediglich geringem Zeitverlust auf das Ereignis reagiert. Weil sie intuitiv ist, ist sie auch weit verbreitet. Der Hauptnachteil ist, dass es nicht verhinderbar ist, dass mehrere Ereignisse innerhalb kurzer Zeit auftreten können und es damit zu einer Überlastung des Echtzeitsystems (mit Verlust von Ereignissen und/oder Überschreitung von Zeitlimits) kommen kann.
Bei der Zeitsteuerung werden Verarbeitungen auf Grund eines vorher festgelegten Zeitplans gestartet. Der Vorteil liegt darin, dass Überlastungen grundsätzlich ausgeschlossen werden können. Das Verhalten der Anwendung ist für alle Zeit vorhersagbar, was die Zeitsteuerung für sicherheitskritische Anwendungen eignet. Der Nachteil der Zeitsteuerung ist der höhere Planungsaufwand und der damit verbundene notwendige Werkzeugeinsatz.
Siehe auch
Literatur
- Real-Time Systems – Hermann Kopetz; Kluwer Academic Publishers; ISBN 0-7923-9894-7
Web-Links
- Beitrag "Comp.realtime: Frequently Asked Questions (FAQs)":
- regelmäßig in der Newsgroup "comp.realtime" gepostet
- im HTML-Format: http://www.faqs.org/faqs/realtime-computing/faq/
- über anonymous FTP: ftp://rtfm.mit.edu/pub/usenet/comp.realtime/
- http://www.faqs.org/faqs/realtime-computing/
- http://www.dedicated-systems.com/encyc/
- http://www.dedicated-systems.com/magazine/magazine.htm
Automatisierungstechnik
Real-time computing | Informática o Computación en tiempo real | Système temps réel | מערכות זמן-אמת | System czasu rzeczywistego | Realtidssystem