Prozessalgebren (CCS & CSP) Vortragender: Tim Michaelis

Ähnliche Dokumente
Korrektheit durch modulare Konstruktion. Wie kann man die Korrektheit reaktiver Systeme gewährleisten?

Wie kann man die Korrektheit reaktiver Systeme gewährleisten?

Verhaltensbeschreibung und Spezifikationssprachen

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Wichtige Rechnerarchitekturen

Synchrone Botschaften

Definition und Implementierung einer formalen Sprache zur Spezifikation, Verifikation und Implementierung von parallelen und verteilten Systemen

MODELLIERUNG UND SPEZIFIKATION

Example Ptolemy Model of Comp.: Synchronous Reactive

Nebenläufige Prozesse und Reaktion

Reaktive Programmierung Vorlesung 16 vom : Theorie der Nebenläufigkeit

Thomas Schirrmann Nebenläufigkeit. Nebenläufigkeit. Vortrag Thomas Schirrmann. Seminar Systementwurf Dozentin Daniela Weinberg

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II)

Fakultät für Informatik der Technischen Universität München. Probleme

Studienarbeit: Komposition von Web Services. Luhme IX Christian Stahl

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Model Checking I. Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg

Interaktionsdiagramme in UML

Foundations of Systems Development

Einführung in den π-kalkül -1-

An Overview of the Signal Clock Calculus

Verteilte Algorithmen TI5005

Synchronisation und Kommunikation über Nachrichten

Übungsblatt 1. Gruppenübungen

Besteht aus Aktoren (actors) und use-cases sowie deren Verbindungen.

Einführung in die Theoretische Informatik

1 Algorithmische Grundlagen

Definition (Modus Ponens) Wenn A, dann B. A gilt Also, gilt B

Einführung in die Theoretische Informatik

Rechnerstrukturen, Teil 1. Vorlesung 4 SWS WS 14/15

Zusammenfassung der letzten LVA. Einführung in die Theoretische Informatik. Syntax der Aussagenlogik. Inhalte der Lehrveranstaltung

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II)

Zusammenfassung der letzten LVA. Einführung in die Theoretische Informatik. Syntax der Aussagenlogik. Inhalte der Lehrveranstaltung

Was bisher geschah Modellierung in Logiken: klassische Prädikatenlogik FOL(Σ, X) Spezialfall klassische Aussagenlogik AL(P)

Vorlesung Betriebssysteme II

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

UML (Unified Modelling Language) von Christian Bartl

Modellierung verteilter Systeme

Mehrsortige Strukturen

Grundlagen: Überblick

LTL und Spin. Stefan Radomski

Unified Modeling Language (UML )

Das UML Benutzerhandbuch

Software Engineering in der Praxis

VHDL - Synthese. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Was bisher geschah Modellierung von Daten durch Mengen Beziehungen (Zusammenhänge und Eigenschaften) durch Relationen, Graphen und Funktionen

Motivation. Motivation

Spezifikation von Kommunikationssystemen

Domänenmodell: Fadenkommunikation und -synchronisation

Kapitel 3: Workflow-Modellierungssprachen Einführung in High-Level Petrinetze

Einführung in die Theoretische Informatik. Inhalte der Lehrveranstaltung. Definition (Boolesche Algebra) Einführung in die Logik

Formale Systeme. Prof. Dr. Bernhard Beckert. Winter 2008/2009. Fakultät für Informatik Universität Karlsruhe (TH)

1. Motivation. Modelchecking. NuSMV. NuSMV und SMV. 2. Modellierung. Erinnerung (Kapitel II)

7.2 Conjoining Specifications

Programmieren 2 12 Netzwerke

Mathematische Grundlagen der Computerlinguistik Algebren

/26

Prof. Dr. Th. Letschert CS5001. Verteilte Systeme. Master of Science (Informatik) - Modelle verteilter Berechnung - Th Letschert FH Gießen-Friedberg

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II)

Kapitel 3: Petrinetze und Workflow Modellierung

Kapitel 2. Prozesse und Java-Threads

Warum Modellierung? OE-Vorlesung 2016 Einführung in Petrinetze. Was ist ein Modell? Und warum Petrinetze? Petrinetze sind ein Modellierungswerkzeug.

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II)

Sequenz- und Kommunikationsdiagrammen. Systemmodellierung mit SysML von Michel Manthey

Bounded Model Checking mit SystemC

Rapide An Event-Based Architecture Definition Language

Formale Systeme. Die Sprache PROMELA. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

2.5 Relationale Algebra

Korrektheit und Hoare-Kalkül für Imperative Programme

Parallele Programmierung mit C++ SS 2011

Ereignisdiskrete Systeme

Objektorientierte Analyse (OOA) Dynamisches Modell. Objektorientierte Analyse (OOA) Sequenzdiagramm

Lineare Algebra. 1. Übungsstunde. Steven Battilana

Teil II. Grundlagen und Notationen

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Wahlalgorithmen auf beliebigen Netzstrukturen. Verteilte Algorithmen (VA), WS 2003/04 43

Zeit als Mittel der Reihenfolgebestimmung

Übungsaufgaben UML Zertifizierung Fundamental-Level

Einführung in die Informatik 1

Modellieren im Informatikunterricht

Modellierung verteilter Systeme

CONCURRENCY MODELS. Auf der Suche nach dem heiligen Gral der ManyCores Peter Sturm. (c) Peter Sturm, Universität Trier

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

4. Alternative Temporallogiken

Computergestützte Modellierung und Verifikation

Techniken der Projektentwicklungen

Algorithmen & Programmierung. Logik

Einsatz der UML für die Entwicklung sicherheitskritischer Systeme

GTI Bonus VHDL - EXTRA

Sequenzdiagramme. Lebenslinie. Kathrin Gaißer, Jörg Depner Didaktik der Informatik

Modellierung von parallelen und verteilten Systemen mit domänenspezifischen Sprachen

auf C[; ] sind linear III Formale Dierentiation und Integration: Die Abbildungen und a + a t + + a n t n a + a t + + na n t n a + a t + + a n t n an a

Egon Börger (Pisa) S-BPM. Über den praktischen Gewinn. einer wissenschaftlichen Fundierung

Protokoll-Spezifikationen

Würzburg. Gleichungen 1 E1. Vorkurs, Mathematik

1. Einführung in Temporallogik CTL

Tableaukalkül für Aussagenlogik

Transkript:

Prozessalgebren (CCS & CSP) Vortragender: Tim Michaelis

Begriffsklärung: Prozess Prozess = Abfolge von Aktionen = Aufeinanderfolge von Zuständen Äussere Eigenschaften sequentiell oder parallel? kooperierend oder konkurrierend? Prozeßalgebren 2

Prozesskommunikation (Datenaustausch) Kommunikation Synchronisation über gemeinsam genutzte Datenbereiche über Nachrichten (Operationen: Senden / Empfangen) Prozeßalgebren 3

Kommunikationsarten asynchron: Nachrichtenpuffer Sende- und Empfangsaktion zu unterschiedlichen Zeitpunkten synchron: Sende- und Empfangsaktion als eine gleichzeitige Aktion Prozeßalgebren 4

Begriffsklärung: Prozessalgebra Prozessalgebra = algebraische Modellierung von parallelen Prozessen besteht aus elementaren (atomaren) Aktionen Verknüpfung von Aktionen über Operationen Prozeßalgebren 5

Begriffsklärung: elementare Aktion = Prozess, dessen Verhalten nicht weiter detailliert als bis auf Aktion wird ausgeführt Aktion hält an Prozeßalgebren 6

Wozu Prozessalgebren? Darstellung komplexer Systeme mit Hilfe weniger Operationen ermöglicht automatische Verifikation Hintergrund: gewachsene Komplexität von verteilten und parallelen Systemen Prozeßalgebren 7

Prozessalgebren: Ansätze CCS (Calculus of Communicating Systems) [Milner '80] CSP (Communicating Sequential Processes) [Hoare '85] ACP (Algebra of Communicating Processes) [Bergstra & Klop '84] LOTOS (Language of Temporal Ordered Specification) [Brinksma & Draft '88] u.v.m Prozeßalgebren 8

Heute: CCS (Calculus of Communicating Systems)

Agenten-Modell Mögliche Aktionen Interaktion mit Nachbar-Agenten Kommunikation (sychnron, d.h. Handshake) unabhängige Aktion paralle Aktion Prozeßalgebren - Teil 1 (CCS) 10

Ziele von CCS Modellierung der Kommunikation zwischen Agenten = Beschreibung des Verhaltens des Systems Untersuchung auf Äquivalenzen von Agenten Prozeßalgebren - Teil 1 (CCS) 11

Wie sieht ein Agent aus (Bsp.)? Kommunikation Labels für Port in A out Agenten-Label Port Prozeßalgebren - Teil 1 (CCS) 12

Verhalten des Beispiel-Agenten A in A out Angenommen, A kann einen Wert aufnehmen: A = in(x).a (x) A (x) = out(x).a A = in(x).out(x).a Präfix Prozeßalgebren - Teil 1 (CCS) 13

Gültigkeitsbereich von x A = in(x).a (x) A (x) = out(x).a innerhalb Ausdruck gültig durch Input Präfix innerhalb Gleichung gültig durch formalen Parameter nie über eine Gleichung hinaus Prozeßalgebren - Teil 1 (CCS) 14

CCS-Operationen Prefix (hatten wir schon, durch.) Summation (durch +) Composition (durch ) Restriction (durch \) Relabelling Prozeßalgebren - Teil 1 (CCS) 15

CCS-Operation: Summation = non-deterministische Auswahl aus Aktionen Beispiel Schokoladen-Automat Einwurf 1 EUR Ausgabe kl. Schokolade Einwurf 2 EUR Ausgabe gr. Schokolade SchA = 1EUR.klSch.SchA + 2EUR.grSch.SchA Prozeßalgebren - Teil 1 (CCS) 16

CCS-Operation: Composition 2 Agenten arbeiten unabhängig oder interagieren über komplementäre Ports Beispiel Hammer-Arbeiter geth geth inaufgabe Hammer Arb_1 puth puth outaufgabe Hammer Arb_1 Prozeßalgebren - Teil 1 (CCS) 17

CCS-Operation: Restriction (1) Beispiel Hammer-Arbeiter erweitert geth inaufgabe Arb_2 geth puth geth outaufgabe inaufgabe Hammer Arb_1 puth puth outaufgabe Prozeßalgebren - Teil 1 (CCS) 18

CCS-Operation: Restriction (2) inaufgabe Arb_2 outaufgabe inaufgabe Hammer Arb_1 outaufgabe Prozeßalgebren - Teil 1 (CCS) 19

CCS-Operation: Restriction (3) Restriction sperrt Ports Limitierung der Nutzung ((Arb_1 Arb_2) Hammer) \ {geth, puth} Auch komplementäre Ports verschwinden (= internisiert) Prozeßalgebren - Teil 1 (CCS) 20

CCS-Operation: Relabelling (1) Beispiel Hammer = geth.puth.hammer Bohrer = getb.putb.bohrer Beides Werkzeug Könne sie als Instanzen davon gesehen werden? Prozeßalgebren - Teil 1 (CCS) 21

CCS-Operation: Relabelling (2) Sei z ein Label. f ist Relabelling Function, gdw. wenn gilt: f(z) = z f(z) = z Schreibeweise: Agent[z1 /z1, z2 /z2...] Prozeßalgebren - Teil 1 (CCS) 22

CCS-Operation: Relabelling (3) Hammer = geth.puth.hammer Bohrer = getb.putb.bohrer Neuer Agent: Semaphore Sem = get.put.sem Neue Definition Hammer = Sem[getH/get, puth/put] Bohrer = Sem[getB/get, putb/put] Prozeßalgebren - Teil 1 (CCS) 23