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.
Zeit: | Mittwoch, 20.12.2006, 16.00 Uhr |
---|---|
Ort: | Gebäude 48, Raum 680 |