Sascha Kretzschmann Freie Universität Berlin Reaktive Systeme und synchrones Paradigma Einführung in das Seminar über synchrone Programmiersprachen
Worum geht es? INHALT 2
Inhalt 1. Einleitung - Wo befinden wir uns? - Abgrenzung einzelner System - Begriffe klären 2. Reaktive Systeme - Ausführliche Beschreibung reaktiver Systeme - Beispiel 3. Synchrones Paradigma - Erläuterung - Anwendung - Beispiel 3
EINLEITUNG 4
Einleitung 5
Einleitung (eingebettete Systeme) Eingebettete Systeme eher bekannt als embedded system meist Kombination aus Hard- und Software sind in einem technischen Kontext eingebunden (eingebettet) übernehmen z.b. Überwachungs-, Steuerungs-, Regelfunktionen, Signalverarbeitung verrichten Arbeit eher unsichtbar für Benutzer 6
Einleitung (reaktive Systeme) Reaktive Systeme werden kontinuierlich von der Umwelt angefordert reagieren auf Stimuli Betätigung eines Knopfes (Benutzer) Sonnenlicht trifft auf Sensor (Umwelt) im Alltag weit verbreitet Mikrowellen, digitale Uhren, Luftfahrtelektronik 7
Einleitung (reaktive Systeme, cont.) Transformationale Programme Eingabe -> Transformieren -> Ausgabe -> terminieren z.b. Übersetzer Interaktive Programme interagieren mit Benutzer oder anderen Programmen Wichtig: Reaktionszeit auf Stimuli nicht festgelegt (vom System bestimmt) z.b. Time-sharing Systeme Reaktive Programme Zeiteinschränkung wird von Umwelt (meist klar) definiert z.b. System zum Auslösen eines Airbags 8
Einleitung (Echtzeitsysteme) Echtzeitsysteme es werden (Echt-)Zeit-Einschränkungen definiert time constraints oder in time Terminologie Zeit nicht zu wörtlich nehmen Komme unter 30m zum Stehen auch time constraint Anwendung in zeitkritischen Systemen oder z.b. Automobil- oder Luftfahrttechnik 9
Einleitung (Echtzeitsysteme, cont.) Hard real-time Zeiteinschränkungen müssen unbedingt eingehalten werden Überschreitung = Versagen Soft real-time Überschreitung von Zeiteinschränkungen führen nicht unbedingt zum Versagen keine festen Zeitanforderungen festgelegt, eher Toleranzbereich Firm real-time Eigenschaften softer real-time Systeme, aber nach Zeitüberschreitung ist System nutzlos 10
REAKTIVE SYSTEME 11
Reaktive Systeme Wichtigsten Eigenschaften 1. Sie laufen parallel (zu ihrer Umwelt) 2. Sie werden meist auf verteilten Architekturen implementiert 3. Sie sollen deterministisch sein 4. Sie werden durch Automaten repräsentiert 5. Sie haben meist ein genaues Zeitverhalten 12
Reaktive Systeme Wichtigsten Eigenschaften 1. Sie laufen parallel (zu ihrer Umwelt) 2. Sie werden meist auf verteilten Architekturen implementiert 3. Sie sollen deterministisch sein 4. Sie werden durch Automaten repräsentiert 5. Sie haben meist ein genaues Zeitverhalten 13
Reaktive Systeme (Parallelität) reagieren auf Stimuli, unterbrechen eventuell Aufgaben / Berechnungen für höher priorisierte Aufgaben Zerlegung in kommunizierende und parallele Komponenten (=Agenten) architektonische Sicht -> Unterstützung der Architektur und Parallelität innerhalb der Programmiersprachen 14
Reaktive Systeme Wichtigsten Eigenschaften 1. Sie laufen parallel (zu ihrer Umwelt) 2. Sie werden meist auf verteilten Architekturen implementiert 3. Sie sollen deterministisch sein 4. Sie werden durch Automaten repräsentiert 5. Sie haben meist ein genaues Zeitverhalten 15
Reaktive Systeme (verteilte Architektur) sehr wichtiger Punkt: Sicherheit (safety) kleinste Defekte können fatale Folgen haben z.b. Airbag löst nicht aus oder zu spät verteilte Architekturen unterstützen Fehlertoleranz Anforderungen physischer Verteilungen wichtig Stichwort: Geschwindigkeit und Zeitanforderungen 16
Reaktive Systeme Wichtigsten Eigenschaften 1. Sie laufen parallel (zu ihrer Umwelt) 2. Sie werden meist auf verteilten Architekturen implementiert 3. Sie sollen deterministisch sein 4. Sie werden durch Automaten repräsentiert 5. Sie haben meist ein genaues Zeitverhalten 17
Reaktive Systeme (Determinismus) Determinismus: Verhalten hängt nur von der Eingabe ab = Ausgabe bei gleicher Eingabe dieselbe wichtig für sicherheitskritische Anwendung Verhalten muss vorhersehbar sein Stichwort: Qualitätssicherung, Testen sollte wenn möglich immer umgesetzt werden 18
Reaktive Systeme Wichtigsten Eigenschaften 1. Sie laufen parallel (zu ihrer Umwelt) 2. Sie werden meist auf verteilten Architekturen implementiert 3. Sie sollen deterministisch sein 4. Sie werden durch Automaten repräsentiert 5. Sie haben meist ein genaues Zeitverhalten 19
Reaktive Systeme (Repräsentation durch Automaten) Vorteilhaft zur Darstellung komplexer Systeme und reaktive bzw. Echtzeitsysteme sind so gut wie immer komplex durch einfache Notation und Darstellung erhalten wir effiziente Repräsentationen Einfachheit ist immer gut -> fördert andere wünschenswerte Eigenschaften 20
Reaktive Systeme Wichtigsten Eigenschaften 1. Sie laufen parallel (zu ihrer Umwelt) 2. Sie werden meist auf verteilten Architekturen implementiert 3. Sie sollen deterministisch sein 4. Sie werden durch Automaten repräsentiert 5. Sie haben meist ein genaues Zeitverhalten 21
Reaktive Systeme (genaues Zeitverhalten) Unterscheidung zwischen: Zeit, die zwischen Signalen aus der Umwelt vergeht Zeit, die eine auszuführende Aktion braucht Spoiler: synchrone Paradigma nimmt eine sofortige Ausführung der Aktionen an Aber: bei harten Zeitanforderungen muss die Zeit, welche das System braucht zusätzlich betrachtet werden => Sehr viel schwieriger 22
Reaktive Systeme (Anwendungsbeispiel) Paradebeispiel: Auto Steuerung für Kraftstoffeinspritzung, Bremsen, Airbags, Elektronische Stabilisierungsprogramm (ESP) versucht Schleudern zu verhindern durch dosierte Bremsvorgänge kontinuierliche Überprüfung es Ist- und Soll-Zustandes Koordination mit anderen Systemen (z.b. ABS) 23
Reaktive Systeme (Anwendungsbeispiel, cont.) zwei Arten der Koordination: 1. alle Informationen jeder einzelnen Steuereinheit werden an andere übertragen, wenn benötigt, untereinander Koordination 2. es existiert eine globale Steuerung, die die Koordination übernimmt und selbst wieder ein reaktives System bildet 24
SYNCHRONES PARADIGMA 25
Synchrones Paradigma Event-driven Sampling z.b. Knopf drücken z.b. numerische Systeme 26
Synchrones Paradigma (Eigenschaften) 1. Fortschritt eines Programms ist eine Folge von Reaktionen. Eine einzelne Reaktion kostet keine Zeit (instant). 2. Innerhalb einer Reaktion gibt es Signale, die entweder vorhanden oder abwesend sind. 3. Parallele Zusammensetzungen werden definiert als die paarweise konjunktive Verbindung zweier zusammengehöriger Reaktionen 27
Synchrones Paradigma (Eigenschaften) 1. Fortschritt eines Programms ist eine Folge von Reaktionen. Eine einzelne Reaktion kostet keine Zeit (instant). 2. Innerhalb einer Reaktion gibt es Signale, die entweder vorhanden oder abwesend sind. 3. Parallele Zusammensetzungen werden definiert als die paarweise konjunktive Verbindung zweier zusammengehöriger Reaktionen 28
Synchrones Paradigma (Eigenschaften) synchrone Hypothese nimmt an, dass Reaktionen unmittelbar geschehen, sie sind instant etwas formaler: P = R ω Automat: Zustandsübergänge passieren atomar und sofort mehrere parallel zusammengesetzte Automaten als synchronous product Sampling Zustandsübergang des Produktes = gleichzeitiger Zustandsübergang aller Automaten Event-driven Zustandsübergang des Produktes = einzelne Automaten im evtl. Leerlauf (idle) 29
Synchrones Paradigma (Eigenschaften) 1. Fortschritt eines Programms ist eine Folge von Reaktionen. Eine einzelne Reaktion kostet keine Zeit (instant). 2. Innerhalb einer Reaktion gibt es Signale, die entweder vorhanden oder abwesend sind. 3. Parallele Zusammensetzungen werden definiert als die paarweise konjunktive Verbindung zweier zusammengehöriger Reaktionen 30
Synchrones Paradigma (Eigenschaften) innerhalb von Reaktionen können Signale auftreten Zweck: Informationen verbreiten müssen konstant bezüglicher aller Leseoperationen sein, vor allem bei parallelen Komponenten agieren somit als geteilte Variablen 31
Synchrones Paradigma (Eigenschaften) 1. Fortschritt eines Programms ist eine Folge von Reaktionen. Eine einzelne Reaktion kostet keine Zeit (instant). 2. Innerhalb einer Reaktion gibt es Signale, die entweder vorhanden oder abwesend sind. 3. Parallele Zusammensetzungen werden definiert als die paarweise konjunktive Verbindung zweier zusammengehöriger Reaktionen 32
Synchrones Paradigma (Eigenschaften) parallele Ausführung von mehr als einem Programm = Konjunktion der einzelnen Reaktionen der Programme etwas formaler: P 1 P 2 = (R 1 ^ R 2 ) ω 33
Synchrones Paradigma (Umsetzung) Umsetzung im Folgenden durch Mealy-Automat besteht aus Speicher (Zustand) besteht aus kombinatorischen Teil (Funktion) z = f 0 (x,y,s) s = f s (x,y,s) Automat reagiert im Zustand s auf die Eingabe (x,y) Ausgabe z wird berechnet und der Zustand s in s überführt 34
Synchrones Paradigma (Umsetzung) zwei Automaten wurden parallel zusammengesetzt die Ausgabe des einen dient als Eingabe des anderen z 1 = f 0 (x 1,z 2,s 1 ) s 1 = f s (x 1,z 2,s 1 ) z 2 = g 0 (x 2,z 1,s 2 ) s 2 = g s (x 2,z 1,s 2 ) 35
Synchrones Paradigma (Umsetzung) mit Hilfe der Formalien -> konkrete Konstrukte paralleler Programmiersprachen wollen ein delay repräsentieren (in Lustre ist dies der pre-operator) sei i eine Eingabe sei s ein Zustand Maschine hat folgende Funktionen: f 0 (i,s) = s, f s (i,s) = i 36
ANWENDUNGSBEISPIEL 37
Anwendungsbeispiel es existieren zwei Eingaben: CLICK: ein Knopfdruck TICK: ein Clock-Signal Modul GO wird durch ein Mausklick aktiviert Pfeile = Zustandsübergänge Beschriftungen = Ereignisse besonderes Ereignis: RELAX gemeinsame Ereignis beider Submodule 38
Anwendungsbeispiel TICK TICK TICK TICK CLICK START RELAX SINGLE TICK TICK TICK TICK TICK TICK CLICK CLICK START RELAX DOUBLE 39
Quellen Bilder: (S.14) http://www.helit.de/img.unternehmen/umwelt01.jpg (S.16) http://images.computerwoche.de/images/computerwoche/bdb/1809554/890.jpg (S.20) http://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/statemachine-5.png/350px-statemachine-5.png (S.22) http://secsnotizen.files.wordpress.com/2009/12/zeit.jpg (S.23) https://www.tu-braunschweig.de/medien-db/ips/sc/3d_pkw_ohne_bg_2013_small.png (S.30) http://seekforex.com/wp-content/uploads/2012/04/forex-signal.png (S.32) http://ww2.valdosta.edu/~dkrabel/parallel%2520lines.jpg Inhalt: (siehe Seminararbeit und dessen Literaturverzeichnis) 40
Sascha Kretzschmann Freie Universität Berlin Vielen Dank =)