Synchrone Botschaften

Ähnliche Dokumente
Datenparallelität. Bildverarbeitung Differentialgleichungen lösen Finite Element Methode in Entwurfssystemen

Parallele Prozesse. Prozeß wartet

Klausur Nichtsequentielle Programmierung

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

Wie kann man die Korrektheit reaktiver Systeme gewährleisten?

Inhaltsverzeichnis. Carsten Vogt. Nebenläufige Programmierung. Ein Arbeitsbuch mit UNIX/Linux und Java ISBN:

Verteilte Systeme. Nebenläufigkeit. Prof. Dr. Oliver Haase

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

Vorlesung Informatik II

Synchronisation und Kommunikation über Nachrichten

Vorlesung Betriebssysteme II

Verteilte Systeme - Übung

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Rainer Oechsle. Parallele und verteilte. Anwendungen in Java. 4., neu bearbeitete Auflage. Mit 165 Listings, 5 Tabellen und 71 HANSER

Verteilte Algorithmen TI5005

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

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur

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

Literatur. VA SS Teil 5/Messages

{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel

Verhaltensbeschreibung und Spezifikationssprachen

4.3 Verifikation von Aussagen über Algorithmen

Betriebssysteme Teil 11: Interprozess-Kommunikation

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (4) Eine untere Schranke für den Platzbedarf

Info B VL 16: Monitore und Semaphoren

Wichtige Rechnerarchitekturen

CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik)

Betriebssysteme. G: Parallele Prozesse. (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen)

Aufgabe 1: Interprozesskommunikation In der Vorlesung wurden zentrale Aspekte von grundlegenden Kommunikationsmustern vorgestellt.

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

Verteilte Systeme CS5001

Präzedenz von Operatoren

Ausnahmebehandlung in Java

Aufgabenblatt 8 Musterlösung

Nebenläufige und verteilte Programme CS2301

Prozessalgebren (CCS & CSP) Vortragender: Tim Michaelis

Nebenläufigkeit und Kommunikation in Go

Nebenläufige Programmierung in Java: Threads

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen

Testen nebenläufiger Objekte

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

Parallele und verteilte Anwendungen in Java

Monitore. Klicken bearbeiten

Kommunikationsmodelle

Klausur Betriebssysteme I

Verteilte Systeme. Diffusionsalgorithmen. Secure Identity Research Group

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

Beispiel für überladene Methode

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

Nebenläufige und verteilte Programme CS2301

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Verteilte Systeme. Graphenalgorithmen. Secure Identity Research Group

Aufrufe von Objektmethoden

Tagesprogramm

Javakurs für Fortgeschrittene

PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker

Parallele Prozesse Prozeß Parallele Prozesse verzahnte Prozesse Nebenläufige Prozesse: Threads Vorlesung Software-Entwicklung / Folie 131 Ziele:

Informatik 12 Kapitel 2 - Kommunikation und Synchronisation von Prozessen

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Formale Systeme Logik: Verifikation von Aussagen über Algorithmen. Ana Sokolova statt Robert Elsässer

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Konzepte der Programmiersprachen

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

WS 05/06 mod Verifikation

Elementare Konzepte von

Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation

Objektorientierte Programmierung

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:

Wiederholungen / Schleifen

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Aufgabenblatt 7 Musterlösung

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben

Algorithmen und Programmieren II Programmverifikation {V} P {N}

Softwaretechnik 1 Übung 5

Induktion nach der Länge n von x

Inhaltsverzeichnis. Rainer Oechsle. Parallele und verteilte Anwendungen in Java ISBN: Weitere Informationen oder Bestellungen unter

Fachhochschule Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt

einseitige Selektion zweiseitige Selektion

Info B VL 17: Deadlocks

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

1) Gegeben Sei der auf der rechten Seite beschriebene Prozess mit folgenden globalen Deklarationen. const int N := 4; chan c[n]; int wert := 0;

Verteilte Systeme - Java Networking (Sockets) 2 -

Javakurs für Anfänger

Einführung in die Informatik Algorithms

Programmieren 2 12 Netzwerke

Schleifen in C/C++/Java

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

Flussdiagramm / Programmablaufplan (PAP)

Einstieg in die Informatik mit Java

Java Concurrency Utilities

Java-Grundkurs für Wirtschaftsinformatiker

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Einstieg in die Informatik mit Java

Einführung Verteilte Systeme - Java Threads I -

Wechselseitiger Ausschluss in verteilten Systemen / Elektionsalgorithmen. Özden Urganci Ulf Sigmund Ömer Ekinci

FD Informatik Mauch SSDL (WHRS) Reutlingen. Algorithmen

Verteilte Algorithmen TI5005

Programmieren I. Kapitel 5. Kontrollfluss

Domänenmodell: Fadenkommunikation und -synchronisation

Transkript:

Synchrone Botschaften PPJ-84 Prozesse kommunizieren und synchronisieren sich direkt miteinander, bzw. über Kanäle, die höchstens eine Botschaft aufnehmen. Operationen: send (b): receive (v): blockiert bis Partnerprozess bereit ist, die Botschaft zu empfangen blockiert bis Partnerprozess bereit ist, eine Botschaft zu senden. Wenn Sender und Empfänger bereit sind, wir die Botschaft übertragen; Zuweisung v := b; send-receive-paar ist Datenübertragung und Synchronisationspunkt zugleich Ursprung: Communicating Sequential Processes (CSP) [C.A.R. Hoare, CACM 21, 8, 178] Notation in CSP und Occam: p:... q! Ausdruck... sende den Wert des Ausdrucks an Prozess q q:... p? Variable... empfange von Prozess p einen Wert in der Variablen auch mit verschiedenen Ports an einem Prozess und mit zusammengesetzten Botschaften: p:... q! Port1 (a1,..,an)... q:... p? Port1 (v1,..,vn)... Vorlesung Parallele Programmierung in Java SS 2000 / Folie 84 Grundkonzepte der synchronen Botschaften Erläuterungen zu den Operationen und zur Notation Vergleich mit asynchronen Botschaften Synchronisation auch ohne Antwortkanal Beispiel: Kopierprozess Verständnisfragen: Vergleichen Sie die Grundkonzepte synchroner und asynchroner Botschaften.

Selektives Warten PPJ-85 Verzweigung abhängig von Bedingungen und Kommunikationsbereitschaft (Guard) if Bedingung1; p! x-> Anweisung1 [] Bedingung2; q? y-> Anweisung2 [] Bedingung3; r? z-> Anweisung3 fi Kommunikationsanweisung im Guard liefert wahr, falls Partnerprozess bereit ist, falsch, falls er terminiert ist, offen sonst Sind einige Guards wahr, wird einer gewählt, die Kommunikation und die Anweisung ausgeführt Sind alle Guards falsch, wird die Selektion Ausführen einer Anweisung beendet. Sonst wird gewartet, bis einer der beiden Fälle eintritt. Selektive Schleifen werden wiederholt bis alle Guards falsch liefern: do Bedingung1; p! x-> Anweisung1 [] Bedingung2; r? z-> Anweisung2 fi Auch indizerte Selektion: if (i: 1..n) Bedingung; p[i]? v -> Anweisungen fi Beispiel: Beschränkter Puffer: do cnt < N; Prod? buf[rear] -> cnt++; rear = rear % N + 1; [] cnt > 0; Cons! buf[front] -> cnt--; front = front % N + 1; od Konzept der Guards verstehen Vorlesung Parallele Programmierung in Java SS 2000 / Folie 85 Notwendig, weil nicht das Vorliegen von Botschaften ohne Blockieren geprüft werden kann. Erläuterung der 3-wertigen Guards Bedingungen brauchen nur einmal geprüft zu werden Beispiel erläutern gegenseitiger Ausschluss: Prozess mit Synchronisationspunkten Bedingungssynchronisation: Bedingung im Guard Verständnisfragen: Vergleichen Sie das Selektive Warten mit der empty- und der receive-if-not-empty-operation bei asynchronen Botschaften.

Präfix-Summen mit synchronen Botschaften PPJ-86 Synchrone Kommunikation leistet Übertragung des Datums und Synchronisation. Nur notwendige Synchronisation (vergl. Barrieren, PPJ-47) const N := 6; var a [0:N-1] : int; process Worker (i := 0 to N-1) var d := 1, sum, new: int ein Prozess für jedes Element sum := a[i]; do d < N-1 -> {Invariante SUM: sum = a[i-d+1] +... + a[i]} if (i+d) < N -> Worker(i+d)! sum fi alter Wert nach rechts if (i-d) >= 0-> Worker(i-d)? new; sum := sum + new fi neuer Wert von links d := 2*d Abstandsverdopplung od {SUM and d >= N-1} end Es gibt immer paarige Operationen Worker(i+d)! sum und Worker(j-d)? new => kein Deadlock Vorlesung Parallele Programmierung in Java SS 2000 / Folie 86 Synchrone Botschaften im Einsatz Kommunikation an Graphik erläutern Zeigen, dass kein Deadlock eintritt Vergleich mit Programm für asynchrone Botschaften Verständnisfragen: Begründen Sie: Programme mit synchronen Botschaften sind kompakter und weniger redundant als mit asynchronen Botschaften.

Client/Server-Schema mit synchronen Botschaften PPJ-87 Technik: für jede vom Server angebotene Operationsart Kommunikation über 2 Ports: oprreq für die Übertragung der Parameter oprrepl für die Übertragung der Antwort Schema der Client-Prozesse: process Client (I := 1 to N)... Server! oprreq (myargs) Server? oprrepl (myres)... end Schema des Server-Prozesses: process Server ()... do (c: 1..N) BedingungOpr1; Client[c]? oprreq(oprargs) -> Anfrage bearbeiten... Client[c]! oprrepl(oprresults) [] ebenso für weitere Operationen... od end Schema kennenlernen Erläuterungen dazu Vorlesung Parallele Programmierung in Java SS 2000 / Folie 87 Vergleich mit Monitor (PPj-34) Vergleich mit asynchronen Botschaften (PPJ-64) Wenn Operationen nicht immer sofort erfüllbar sind, müssen die Parameter gespeichert und die Antwort später gesendet werden. Ein Kanal reicht aus, wenn es keine Parameter oder kein Ergebnis gibt und die Operation immer sofort erfüllbar ist. Spezielle Ausprägung: Ressourcenvergabe mit Operationen request und release Erweiterung auf mehrere Server Konversationsfolgen werden in "Anfrage bearbeiten" eingesetzt. Protokoll wird in Folgen von Kommunikationsoprationen und selektives Warten für Alternativen umgesetzt. Verständnisfragen: Skizzieren Sie einen Server zur Ressourcenvergabe nach diesem Schema.

Verständnisfragen (1) PPJ-88 Grundbegriffe 1. Erklären Sie die Begriffe sequentielle parallele, verzahnte, nebenläufige Prozesse. 2. Beschreiben Sie die 2 Arten in Java Threads erzeugen (3 Schritte). 3. Geben Sie die wichtigsten Methoden der Klasse Thread an. 4. Erklären Sie die Begriffe Atomare Aktion, Art-most-once Eigenschaft 5. Wie wird Interferenz zwischen Prozessen definiert? Monitore 6. Erklären Sie wie Monitore die 2 Synchronisationskonzepte realisieren. 7. Semantik von Bedingungsvariablen und Varianten dazu. 8. Aus welchen 3 Gründen können Prozesse am Monitor warten? 9. Beschränkter Puffer auch mit 1 Bedingungsvariablen? 10.Warum muss man bei signal-and-continue die Bedingung in Schleife prüfen? 11.Eigenschaften der Monitore in Java. 12.Unter welchen Umständen kann man notify statt notifyall verwenden? 13.Wann gilt eine Monitor-Invariante? Vorlesung Parallele Programmierung in Java SS 2000 / Folie 88 Wiederholung und Verständnis des Stoffes unterstützen Einige Fragen beispielhaft beantworten (lassen).

Verständnisfragen (2) PPJ-89 14.Systematischer Monitor-Entwurf in 5 Schritten 15.Monitor-Invariante zum Leser/Schreiber-Schema 16.Strategien ausdrücken: Schreiber bevorzugen. Keinen bevorzugen. 17.Entwurfsmethode zur Begegnung von Prozessen 18.Wie werden Wartebedingungen und Weck-Operationen bei der Zählvariablenmethode eingefügt? Barrieren 19.Abstandsverdopplung am Beispiel Präfixsummen 20.Barrieren-Regel 21.Baum-Barriere 22.Symmetrische, verteilte Barriere Datenparallelität 23.Datenparallel Listenenden finden 24.Schleifen zu trapezförmigem Iterationsraum angeben 25.Abhängigkeitsvektoren, Zulässigkeit in sequentiellen Schleifen Vorlesung Parallele Programmierung in Java SS 2000 / Folie 89 Wiederholung und Verständnis des Stoffes unterstützen Einige Fragen beispielhaft beantworten (lassen).

Verständnisfragen (3) PPJ-90 26.SRP-Transformationen 27.Benutzung der Transformationsmatrizen 28.Mit welchen Transformationen kann man die innere Schleife parallelisieren, wenn die Abhängigkeitsvektoren (0,1) und (1,0) vorliegen? Asynchrone Botschaften 29.Begriff des Kanals und seine Operationen 30.wichtige Kanal-Strukturen 31.Client/Server Kanal-Strukturen 32.Welches Problem tritt auf, wenn mehrere Prozesse jeweils von mehreren Kanälen empfangen? 33.Erklären Sie den Begriff Konversationsfolgen. 34.Welche Operationen führt ein Knoten bei Broadcast im Netz aus? 35.Welche Operationen führt ein Knoten bei Probe/Echo im Netz aus? 36.Wieviele Botschaften werden bei Probe/Echo versandt? Vorlesung Parallele Programmierung in Java SS 2000 / Folie 90 Wiederholung und Verständnis des Stoffes unterstützen Einige Fragen beispielhaft beantworten (lassen).

Verständnisfragen (4) PPJ-91 Botschaften in verteilten Systemen 37.Wie geht man in Java mit Ports und Sockets um? 38.Erläutern Sie das Worker-Paradigma. 39.Skizzieren Sie die Prozess-Schnittstellen für verteiltes Branch-and-Bound. 40.Erläutern Sie die Technik Terminierung im Ring. 41.Was sind die Aufgaben bei Methodenfernanrufen (RMI)? 42.Geben Sie die Entwicklungsschritte zur RMI-Implementierung an. Synchrone Botschaften 43.Vergleichen Sie die Grundkonzepte synchroner und asynchroner Botschaften. 44.Erklären Sie das Konstrukt zu selektiven Warten bei synchronen Botschaften. 45.Warum sind Programme mit synchronen Botschaften weniger redundant als mit asynchronen Botschaften. 46.Skizzieren Sie einen Server zur Ressourcenvergabe nach dem Schema für synchrone Botschaften. Vorlesung Parallele Programmierung in Java SS 2000 / Folie 91 Wiederholung und Verständnis des Stoffes unterstützen Einige Fragen beispielhaft beantworten (lassen).