Skip to main content
main-content

09.07.2013 | Programmiersprachen | Im Fokus | Onlineartikel

Das Echtzeit-Problem eingebetteter Software

Autor:
Andreas Burkert

Hochautomatisiertes Fahren erfordert von den Softwareentwicklern genauste Kenntnisse über echtzeitfähige Softwareprogrammierung. Um Latenzzeiten bei der Code-Ausführung zu vermeiden, setzen viele auf die Programmiersprache C. Aber auch die aus den 1980iger Jahren bekannte Sprache Ada ist für Echtzeitanwendungen geeignet.

Das hochautomatisierte Fahren wird von den Automobilherstellern derzeit stark beworben. Immer besser gelingt ihnen das Vernetzen komplexer Sensor- und Aktorsysteme mit den zahlreichen Steuergeräten im Automobil und mit externen Verkehrsleitsystemen. Für das Gelingen von hochautomatisiertem, beziehungsweise dem teilautonomen Fahren müssen die eingebetteten Systeme die strengen Bedingungen an die Echtzeit erfüllen. Die Charakteristika und die Herausforderungen von Echtzeit- sowie Echtzeitbetriebssystemen sind dafür klar definiert worden, wie es Peter Scholz in seinem Buch "Softwareentwicklung eingebetteter Systeme" erklärt.

Die korrekte Funktionsweise eines Echtzeitsystems ist seiner Ansicht nach nicht nur von der logischen Korrektheit der Ergebnisse seiner Verarbeitungsschritte abhängig, sondern auch von dem Zeitpunkt an dem die Ergebnisse produziert wurden. "Es handelt sich selbst dann um ein inkorrektes Verhalten, wenn das Ergebnis nicht zum richtigen Zeitpunkt vorliegt und nicht nur dann, wenn das Ergebnis selbst falsch ist. Ein Fehler in der Reaktion, oder mit anderen Worten ein falscher Reaktionszeitpunkt ist daher genauso falsch wie eine falsche Reaktion: Ein richtiges Ergebnis zur falschen Zeit ist ein Fehler."

Echtzeitbetriebssystem notwendig

Die unter anderem für sicherheitskritische Systeme im Automobil entwickelten echtzeitfähigen Programme laufen deshalb in der Regel in einem Echtzeit-Betriebssystem (RTOS) oder zumindest in einem speziellen Echtzeit-Rahmen (Echtzeit-Frame). Wie Henning Wallentowitz und Konrad Reif in ihrem "Handbuch Kraftfahrzeugelektronik" beschreiben, sollte dieser spezielle Echtzeit-Rahmen echtes Multitasking bieten sowie Timer-, Software- oder Hardware-Interrupts unterstützen.

Zwar wird die Software, die auf Echtzeitprozessoren ausgeführt wird, üblicherweise in der Programmiersprache C erstellt, doch ist auch die Programmiersprache Ada ist für Echtzeitanwendungen geeignet. Der Vorteil: Ada stellt einfache Sprachfeatures zur Beschreibung von parallelen Prozessen bereit. Zudem benötigt Ada keinen Garbage Collector, der den Programmablauf verzögern könnte. Unvorhersehbare Latenzzeiten, die bei sicherheitskritischen Anwendungen unakzeptabel sind, werden ausgeschlossen.

Lesen Sie auch:

Anforderungsmanagement in der Softwareentwicklung

Die Hintergründe zu diesem Inhalt

2006 | OriginalPaper | Buchkapitel

Software-Entwicklung

Quelle:
Handbuch Kraftfahrzeugelektronik

01.02.2013 | Entwicklung | Ausgabe 1/2013

Anforderungsmanagement in der Softwareentwicklung

2012 | Buch

Einführung in die Softwareentwicklung mit C

Eine Einführung mit dem Visual Studio 2010

Premium Partner

Neuer Inhalt

BranchenIndex Online

Die B2B-Firmensuche für Industrie und Wirtschaft: Kostenfrei in Firmenprofilen nach Lieferanten, Herstellern, Dienstleistern und Händlern recherchieren.

Whitepaper

- ANZEIGE -

Product Lifecycle Management im Konzernumfeld – Herausforderungen, Lösungsansätze und Handlungsempfehlungen

Für produzierende Unternehmen hat sich Product Lifecycle Management in den letzten Jahrzehnten in wachsendem Maße zu einem strategisch wichtigen Ansatz entwickelt. Forciert durch steigende Effektivitäts- und Effizienzanforderungen stellen viele Unternehmen ihre Product Lifecycle Management-Prozesse und -Informationssysteme auf den Prüfstand. Der vorliegende Beitrag beschreibt entlang eines etablierten Analyseframeworks Herausforderungen und Lösungsansätze im Product Lifecycle Management im Konzernumfeld.
Jetzt gratis downloaden!

Bildnachweise