Prof. Dr. Klaus Schneider

(TU Kaiserslautern)

"Entwurf eingebetteter Echtzeitsysteme mit synchronen Programmiersprachen"

Unter eingebetteten Systemen versteht man Rechnersysteme, die als eigenständige Teilsysteme eines Gesamtsystems direkt mit ihrer Umgebung interagieren. In vielen Fällen hängt das gewünschte Verhalten dieser Systeme von ihrer Reaktionszeit ab, so dass es sich hierbei um (harte) Echtzeitsysteme handelt. Beim Entwurf eingebetteter Echtzeitsysteme müssen zunehmend spezielle Entwurfstechniken, Programmiersprachen und Realisierungen verwendet werden, um den steigenden Sicherheitsanforderungen der Anwendungen gerecht werden zu können.

In den letzten Jahren haben sich synchrone Programmiersprachen im Entwurf eingebetteter Echtzeitsysteme etablieren können. Das Grundkonzept dieser Sprachen besteht darin, dass durch die Unterscheidung von Mikround Makroschritten in der Ausführung eines Programms ein abstrakter Zeitbegriff im Programmiermodell eingeführt wurde. Makroschritte entsprechen dabei den Interaktionen mit der Umgebung und bestehen stets aus endlich vielen Mikroschritten. Während Mikroschritte im synchronen Programmiermodell keine Zeit benötigen, geht man davon aus, dass die Ausführung von Makroschritten stets eine abstrakte Zeiteinheit erfordert. Ferner wird gefordert, dass in jedem Makroschritt alle Threads gleichzeitig ausgeführt werden (synchrone Parallelität). Aus diesen Festlegungen resultieren deterministische Systeme, die besonders für die Simulation und Analyse der Echtzeiteigenschaften erhebliche Vorteile gegenüber anderen Ansätzen aufweisen. Ein weiterer Vorteil besteht darin, dass für synchrone Programme Compilertechniken entwickelt wurden, die es gestatten, aus ein und demselben Programm sowohl Hardware als auch Software effizient zu generieren. Ferner zeichnen sich fast alle synchronen Sprachen durch eine formal fundierte Semantik aus, die den Einsatz formaler Methoden erlaubt. Damit kann das temporale und funktionale Verhalten mittels mathematischer Beweise rechnergestützt sichergestellt werden.

Das attraktive Programmiermodell synchroner Sprachen hat jedoch auch seinen Preis:
Reinkarnations- und Kausalitätsprobleme entstehen als zusätzliche Hürden für Algorithmen zur Synthese und Analyse dieser Programme. Reinkarnationsprobleme entstehen dadurch, dass Sichtbarkeitsbereiche lokaler Deklarationen in einem Makroschritt mehrfach betreten werden können, wobei unterschiedliche Inkarnationen zu unterscheiden sind. Dies ist insbesondere bei der Hardwaresynthese und gewissen Syntheseverfahren für parallele Software ein großes Problem. Kausalitätsprobleme hingegen entstehen durch wechselseitige Abhängigkeiten zwischen Aktionen und deren Vorbedingungen. Aufgabe der Kausalitätsanalyse ist es, die Konsistenz der Mikroschritte zu überprüfen, wobei deren zeitgleiche parallele Ausführung vorausgesetzt wird. In der Vergangenheit wurden hierzu verschiedene Algorithmen entwickelt, wobei beeindruckende Zusammenhänge erkannt wurden. So ist zum Beispiel bekannt, dass die Kausalitätsanalyse zur ternären Simulation asynchroner Schaltungen, zur Entwicklung dynamischer Schedules für parallele Softwaresysteme, sowie zur Beweisführung in intuitionistischer Logik äquivalent ist.

Im Vortrag wird die Entwicklung eingebetteter Systeme mit synchronen Programmiersprachen skizziert. Dabei werden neben Vor- und Nachteilen dieses Programmierparadigmas auch Compilertechniken und Analyseverfahren zur effizienten Synthese von Hardware und Software aus synchronen Programmen diskutiert. Zusätzlich wird der Einsatz formaler Methoden zur Verifikation temporaler und funktionaler Eigenschaften und insbesondere des Echtzeitverhaltens erläutert. Ferner enthält der Vortrag einen Ausblick auf geplante Forschungsarbeiten meiner Arbeitsgruppe zur Entwicklung neuer Entwurfsverfahren für applikationsspezifische Hardware-Software-Systeme.



Zeit: Mittwoch, 20.12.2006, 16.00 Uhr
Ort: Gebäude 48, Raum 680