Einführung in Esterel Imperative Synchrone Parallele Programmiersprache für Reaktive Systeme.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmentheorie 08 – Dynamische Programmierung (1)
Advertisements

10.2 Wechselseitiger Ausschluss in Hardware
6. Regelbasierte Systeme
Geometrische Datenstrukturen Haozhe Chen Aaron Richardson.
Peter Marwedel TU Dortmund, Informatik 12
Objektorientierter Entwurf
Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.
On a Buzzword: Hierachical Structure David Parnas.
Kapitel 7.2 Dining philosophers problem
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
OpenMP Präsentation im Rahmen des Seminars
Vorl. 6: Single- und Multitasking Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 10 Mutual Exclusion Peter B. Ladkin Sommersemester 2001 Universität Bielefeld Technische Fakultät.
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Entwicklung verteilter eingebetteter Systeme - Einführung
Programmieren - wie einsteigen ?
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
You need to use your mouse to see this presentation © Heidi Behrens.
You need to use your mouse to see this presentation © Heidi Behrens.
Real Time Operating System
Computerorientierte Physik VORLESUNG und Übungen Vorlesung Zeit: Mo., – Uhr Ort: Hörsaal 5.01, Institut für Physik, Universitätsplatz 5, A-8010.
LISTEN NOW! …and follow my commands.. When you are being nice and telling someone who is doing what (with chores for example) you say things like…(singular.
Prozess-synchronisation
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
Μ Version 1.0Seite 1µVision Start Debugger Set Breakpoint µVision Debugger.
MODULA-2.
1 Intern | ST-IN/PRM-EU | | © Robert Bosch GmbH Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung,
Plusquamperfekt The past of the past.
Parallelisierung für Multiprozessor-Maschinen
Modellbasierte Software-Entwicklung eingebetteter Systeme
Der formelle Imperativ – the Imperative
Die Kunst des Programmierens...
Artificial Intelligience
Lust auf Lesen Treffpunkt Deutsch Sixth Edition. Relative Pronoun object of a preposition Recall from chapter 9 that relative clauses describe people,
Die Fragen Wörter Wer? Was? Wann?.
Synchronization: Multiversion Concurrency Control
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Literary Machines, zusammengestellt für ::COLLABOR:: von H. Mittendorfer Literary MACHINES 1980 bis 1987, by Theodor Holm NELSON ISBN
XML Seminar: XP und XML 1 XP and XML Gregor Zeitlinger.
Extended Pascal ( Erweitreung von Pascal) Name: Mehmet CELIK Matr :
The „Perfekt“ tense The German „Perfekt“ tense is a past tense that is similar to the English present perfect. For weak German verbs the rule for forming.
Imperfekt (Simple Past) Irregular or strong verbs
Kapitel 2 Grammar INDEX 1.Subjects & Verbs 2.Conjugation of Verbs 3.Subject Verb Agreement 4.Person and Number 5.Present Tense 6.Word Order: Position of.
Memorisation techniques
X. Übungsblatt – Aufgabe X In dieser Aufgabe soll ein synchron getakteter Steuerungsautomat für den in Abbildung 1 dargestellten Prozessor-Chip mit geringem.
Imperativ What is the Imperative used for?
© Boardworks Ltd of 8 © Boardworks Ltd of 8 This icon indicates that the slide contains activities created in Flash. These activities are not.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Kommunikation von Prozessen Signale und Pipes Alexander Sczyrba
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Prozesse Alexander Sczyrba Jan Krüger.
When is the Genative case used? Show possession Replaces “von” and the dative case This is seen as being more formal in today’s language. With Genative.
UNIVERSITY OF APPLIED SCIENCES Brückenkurs Programmieren Einführung in die IT für Social Media Systems.
Wiederholte Programmausführung
SAS Backstage Biljana Gigić1, Andreas Deckert2
Interrogatives and Verbs
Praktische Informatik 1
Sentence Structure Questions
Modellbasierte Software-Entwicklung eingebetteter Systeme
Hello World! Javakurs 2013 Arne Kappen
you: ihr ( familiar plural ) you: du ( familiar singular)
Prüfungsbesprechung Barbara Scheuner
Netzwerk - Programmierung
Netzwerk - Programmierung
Datentypen: integer, char, string, boolean
Kniffelergebnisse.
Kapitel 4-Stufe 1 Talking about class schedules
Quality assured by the ALL Connect project (2015)
GRUNDLAGEN WISSENSCHAFTLICHEN ARBEITENS MODULA-2 SONAY SUBAYAZ
CSL211 Computer Architecture
Objektorientierte Programmierung
The Programming Language Pascal
 Präsentation transkript:

Einführung in Esterel Imperative Synchrone Parallele Programmiersprache für Reaktive Systeme

2 Überblick  Geschichte  Begriffsdefinitionen  Synchrone Programmierung  Entwicklungswerkzeuge  Esterel Studio  Esterel Programmiersprache  Vorteile/Nachteile  Übung

3 Geschichte  Erfinder Jean-Paul Marmorat und Jean-Paul Rigault 1982 Motivation  Design eines Roboters für ein Rennen  Keine geeigneten Programmierwerkzeuge  Kontrollalgorithmus vs. Programmiersprache Sabine Moisan  Namensgeberin für ESTEREL Laurent Cosserat  Esterel V1 Compiler basierend auf Brzozowski Algorithmus

4 Geschichte Gerard Berry  Esterel v , Esterel v Esterel v4  Vermeiden von State Space Explosion in Esterel v3  Generierung von Netzlisten  Grafischer Debugger Esterel v5  Basierend auf BDD  Letzte freie Compiler Version ist v5.92 Esterel Studio 5.2.1e benützt Compiler v7

5 Begriffsdefinitionen  Grundsätzlich Unterscheidung nach David Harel und Amir Pnueli 1985 “Transformational Systems“ “Reactive Systems“

6 Begriffsdefinitionen  Unterscheidung bei “Synchroner Programmierung“ “Transformational Systems“ “Interactive Systms“ “Reactive Systems“

7 Transformational Systems Input Output Transformational System terminiert mit einem Resultat

8 Interactive Systems Umwelt Fähigkeit sich mit ihrer Umgebung zu synchronisieren! -> zwingt Umgebung zu warten!

9 Reactive Systems Ständiges interagieren mit der Umgebung Geschwindigkeit bestimmt durch Umgebung

10 Reactive Systems  Unbeschränkte Laufzeit  Keine Terminierung  Kommunikation Extern  Interaktion mit der Umwelt Interne  Interaktion mit Subsysteme  Simultan  Deterministisch  Zuverlässigkeit für kritische Systeme

11 Synchrone Sprachen  Erfunden für Design von Reaktiven Kernels  Programmierer sieht System als einen unverzüglichen Reaktor auf externe Events  Programmierverhalten ist komplett deterministisch  Versucht Parallelität und Nicht-Determinismus zu lösen  Physikalisch Zeit durch abstrakte Zeit ersetzen “stop within 5 milliseconds“ “every 100 meters do“

12 Synchrone Programmierung  Typisch als Automat implementiert  Auswertung des Speicher führt zu Automatenzustand  Reaktion bildet den Zustandsübergang des Automaten foreach input_event do end foreach period do end “Event driven““Sampling“

13 Synchrone Paradigma  Reaktion beinhaltet viele Berechnungen  Reaktion ist atomar (aus Automatensicht)  Berücksichtigung der Eingänge zwischen zwei Reaktionen  Reaktion benötigt keine Zeit -> INSTANT  Alle Events während Reaktion sind simultan

14 Instant  Instant ist “logisch Zeit“  Bei jeder Instant lesen/berechnen/schreiben gleichzeitig  Historie des Systems: geordnete Reihe von Instants  Kommunikation findet sofort statt (unverzüglich – “synchronous broadcast“)  Berechnungen intern geordnet

15 Programmier-Tools

16 Esterel Hintergrund  Synchrone Programmierumgebung Sprache  Reaktive Systeme, kontroll-dominant  Konstrukte für sequencing, concurrency, preemption Compiler  sorted Boolean equations  Causality checking, symbolic debugging, verification  Implementierung in C, C++, VHDL und Verilog

17 Esterel Basics  Synchronous Hypothesis  Kommunikation über Broadcast Signale Signals, Sensors Pure, Valued  Modularität: Programm = Kollektion von Modulen  Kurz und Prägnante Programme Write Things Once (WTO)  Gut definierte Semantik

18 Esterel Studio

19 Esterel Studio

20 Esterel Studio  Esterel Studio Demo Beispiele ESTEREL BASICS ABRO COUNT UP/DOWN COUNTER WRISTWACH 1 WRISTWACH 2 ÜBUNGSBEISPIEL embsys.technikum-wien.at/courses/esterel

21 Beispiel: Present, Absent, Emit module PAE: output A,B,C; emit A; if A then emit B end; pause; emit C; end module emit A Signal A in momentanen Zyklus präsent. Wenn nicht präsent dann abwesend pause Stop in diesem Zyklus, im nächsten Zyklus wird vorgesetzt if A then p else q end Führt p im momentanen Zyklus sofort aus wenn A präsent, sonst q

22 Signal Coherence Rules  Ein Signal ist entweder “präsent“ oder “Abwesend“, niemals beides  Signale zuerst senden und dann lesen  Daher: if A then emit A end  Deadlock  Fehlermeldung durch Compiler

23 Zeitkontrolle every 5 T do emit C end every  Beispiel garantiert, dass alle 5 T ein C emittiert wird

24 Der || Operator  Gruppe von Anweisungen getrennt durch || laufen parallel zueinander und terminieren wenn alle beteiligten terminiert haben [ emit A; pause; emit B; pause; pause;pause;pause; || pause; emit C; pause; emit D; ]; emit E;

25 Kommunikation  Ein Signal in einem Zyklus ist sofort sichtbar [ pause; emit A; pause; emit A; || pause; if A then emit B end ]

26 Bidirektionale Kommunikation  Prozesses können in einem Zyklus vorwärts und rückwärts kommunizieren [ pause; emit A; if B then emit C end; pause; emit A; || pause; if A then emit B end ]

27 Beispiel: Await  “await“ Anweisung wartet auf einen bestimmten Zyklus, “await A“ wartet auf den nächsten Zyklus wo A präsent ist. [ emit A; pause; pause; emit A; || await A; emit B; ]

28 Beispiel: Await immediate  Normalerweise wartet “await“ einen Zyklus vor ihrer Verifizierung; “await immediate“ überprüft den Initialzyklus [ emit A; pause; pause; emit A; || await immediate A; emit B; ]

29 Schleifen  Esterel hat eine “infinite“ Schleifenanweisung “loop“  Regel: Schleife kann nicht sofort terminieren (instantaneous loop)  Braucht mindestens eine “pause“, “await“, usw. Anweisung  Kann in einem Zyklus keine unendliche Arbeit leisten.

30 Schleifen/Synchronisation  Kombination von “loop“ und “await“ stellen mächtig Synchronisations-Mechanismen zur Verfügung loop await 5 T; emit C; end loop

31 Preemption  Eine Ausführung unterbrechen um anderes zu tun (Beispiel: Unix Ctrl-C).  Viele Konstruktionen sind verfügbar  Grundlegend allgemeine Form: abort statement when condition  Lauft statement durch, bei condition sofortige Beendigung

32 Preemption Beispiel abort pause; emit A; when C; emit B;

33 Beispiel: ABRO

34 Beispiel: COUNT  Zähle die Anzahl der Eingänge von I und sende (Broadcast) den Wert von COUNT nach jedem Event von I. ?COUNT vs. pre(?COUNT) every COUNT do Body p end every Handhabung Initialwert (immediate) Verwendung einer Variable

35 Vorteile  Programmier erhält durch Model genau Kontrolle über die Zeit  Parallelität für Spezifikation von Kontrollsystemen  Deterministisch Mutex, Semaphore usw. nicht nötig  Finite-State Language Leicht zu analysieren Ausführungszeit vorhersagbar Leichter Formal zu verifizieren  Implementierungsvarianten Hardware Software

36 Nachteil  Limitierte Flexibilität Keine dynamische Speicheranforderung Keine dynamische Prozesserzeugung  Wenig Unterstützung für Datenhandhabung  Vermeidung von Kausalitätsverletzungen oft sehr schwierig  Schwer zu kompilieren  Geringe Anzahl an Benutzer und Tools  Fehleranfälligkeit der Tools

37 Übung People Counter Construct an Esterel program that counts the number of people in a room. People enter the room from one door with a photocell that changes from 0 to 1 when the light is interrupted, and leave from a second door with a similar photocell. These inputs may be true for more than one clock cycle. The two photocell inputs are called ENTER and LEAVE. There are two outputs: EMPTY and FULL, which are present when the room is empty and contains three  Conditioner detects rising edges of signal from photocell.  Counter tracks number of people in the room.