Monitore in Java++ Aufgabe 2 von Markus Schlebusch Christoph Reinboth Sebastian Zok Johannes Stolte Norman Zuther.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Vertieferseminar Geoinformation WS 02/03
Kapitel 11 Deadlocks RW-Systemarchitekur Kap. 11.
10.2 Wechselseitiger Ausschluss in Hardware
Beim Start eines Prozesses in Windows NT, 2000 wird a der Programmtext aus der exe-Datei ab der dort angegebenen Adresse gespeichert.
Einführung in JavaScript II
1 Spezielle Packages des Java SDK (1.4) java.nio.
Christian A. Kopf Institut für Informatik FU Berlin Episode Recognizer Framework - Rahmenwerk zur Episodenerkennung.
Semaphore void Passieren (semaphore &s) { if (s > 0) { s--;
Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.
Netzwerke im Dialogmarketing
Kapitel 6.1 Nebenläufigkeit und wechselseitiger Ausschluss
Systeme 1 Kapitel 7 Deadlocks WS 2009/10.
Kapitel 7.2 Dining philosophers problem
Java News and Music GAME 18 & 3 SS03 / C. Kreienbrinck.
FH-Hof Deadlocks Richard Göbel. FH-Hof Deadlock - Definition Menge von Prozessen ist an einem Deadlock beteiligt: wenn jeder Prozess in dieser Menge auf.
Kapitel 10 Nebenläufigkeit und wechselseitiger Ausschluss
Nebenläufige Programmierung
Exceptions. import java.sql.*; public class MyException{ boolean b; Statement stat; public MyException(){ b = stat.execute("xyz"); } Beim Übersetzen dieses.
7.4 State-based Test Design Nils Foken. Steuerungsfehler fehlende / falsche Transition fehlendes / falsches Ereignis fehlende / falsche Aktion zusätzlicher.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Situationen Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld.
Datenbanksysteme für FÜ SS 2000 Seite Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz Isolation.
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Zerlegung und Konstruktion Frage 2: Welche Zerlegungen sind korrekt? Zerlegung ersetzt Relationstyp R(A 1,...,A n ) und Menge von assoziierten Abhängigkeiten.
The XeriScape Artificial Society Von: Ralf Kopsch Seminar: Artifical Life.
Java Threads Sebastian Werler
Gefangenenseelsorge der Diakonie.
Andreas Fink, Fathi El-Khatib, Sebastian Graul Kapitelüberschrift: Die Internetsperre Einleitung: Der Spieler befindet sich an seinem Schreibtisch.
Entwicklung verteilter eingebetteter Systeme - Einführung
Input / Wahrnehmung Control / Bewusstsein Output / Motorik Information.
Redsys 2.82 Neue Features - Userinterface. 2 Sendeliste Visualisierung des Reloadvorganges Im rechten unteren Eck des Hauptfensters von Redsys wird die.
Warum?Wie?Was? Problem – Lösung Was tun mit all den verstreuten Dateien? Wer tut eigentlich was und warum? Neues Jahr, neues.
Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 16: Ausnahmebehandlung.
VM Kreuzung : Order CrossOver OX x Vererbung eines Chromosomenabschnitts von V Teiltour der Rundreise Nachtrag von fehlenden Genen.
Parallel Programming Condition Queues
Gummi lässt die Muskeln spielen
Kommentierung & Dokumentation SE Programmierstil, Wind Markus, Überblick/Kommentierung Kommentierung Self-documenting code Arten von Kommentaren.
Die Methode public Datenelement getEnde (Datenelement d) Ziel: //Klasse Knoten public Datenelement getEnde(Datenelement d){ return nachfolger.getEnde(inhalt);
Prozess-synchronisation
Thread Synchronisation in JAVA
Betriebssysteme Übung 2. Tutorium. Task 1 – Locks (1) Wozu Locks? Dienen dazu, exklusiven Zugriff auf eine Ressource sicherzustellen Lock = binäre Semaphore.
Sein Vater sah ihn kommen. Das Mitleid ergriff ihn.
EPROG Tutorium #4 Philipp Effenberger
Learning By Doing Parallelverarbeitung Multithreading (Nebenläufigkeit) Alte Idee der Parallelverarbeitung statt rein sequentieller Prozesse Parallelverarbeitung.
Die Eingeschränkte Revision und ihre Chancen Das neue Revisionsrecht und die Wahlmöglichkeiten für KMU.
se_11_interfaces.ppt1 Softwareengineering Interfaces Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law.
Muster nebenläufiger Programmierung concurrent Packet von Java Alois Schütte AOSD1.
Robuste Programme durch Ausnahmebehandlung
Prof. Dr. Alois Schütte Advanced System Programming 1 Das concurrent Paket 1 Überblick 2 Lock 3 Condition 4 Queue 5 Executors.
Synchronisation paralleler Transaktionen  AIFB SS Sperrverfahren Sperrverfahren (13/18) Behandlung von Konflikten bei der Sperrvergabe.
MTB - Rennen in Schotten schlechtes Wetter
1.3 Verklemmungen Synchronisation löst Probleme – ist aber auch Gefahrenquelle: Prozeß wartet an Synchronisationspunkt – ist gesichert, daß er irgendwann.
Threads in Java Threads  Sprachumfang von Java Der Java-Standard fordert nur die Unterstützung von Thread-Prioritäten. Es gibt keine Forderung bzgl.:
3.2 Bedingungssynchronisation Motivation: Wenn für eine Operation auf einem Objekt die Voraussetzung nicht erfüllt ist, ist es häufig angebracht, auf deren.
Parallel Programming Semaphores / Reader - Writer - Lock
Wieland Schwinger Softwareentwicklung 2 Assertions.
93 Das Monitorkonzept (nach Hoare/Brinch-Hansen 1974) Nur ein Prozess bzw. Thread kann zu einem bestimmten Zeitpunkt im Monitor aktiv sein => gegenseitiger.
Wir präsentieren Unsere SCHULORDNUNG. Bilddarstellung.
1 VE 11 Kruskal-Realisierung Listen. 2 Auf dem Weg zur Kruskal-Realisierung Vorüberlegungen: Der Graph könnte dargestellt werden als Menge von Knoten,
© 2008 TravelTainment The Amadeus Leisure Group Thread-Programmierung im Qt-Framework Von: Simon Lubberich Erstbetreuer:
Der kritische Abschnitt
Java-Kurs - 8. Übung Klassen und Objekte: Vererbung
Aufgaben Semaphore Übersicht (Dijkstra)
Problem (präzise, spezifisch, eindeutig formuliert)
Business IN THE FAST LANE
 Präsentation transkript:

Monitore in Java++ Aufgabe 2 von Markus Schlebusch Christoph Reinboth Sebastian Zok Johannes Stolte Norman Zuther

Übersicht Einleitung Syntax Beispiel J++ Umsetzung J++ -> Java Das lebende Beispiel Vererbung unter Monitoren und Conditions

Was ist ein Monitor Ein Monitor organisiert den Zugriff auf eine von mehreren Threads gemeinsam genutzte Ressource Die Threads können nur über die Schnittstelle des Monitors auf die Ressource zugreifen Vorausgesetzt die Konsistenz der Ressource bleibt erhalten Sämtliche öffentlichen Methoden bilden zusammen einen kritischen Bereich

Was ist ein Monitor Wartet ein Thread auf das Eintreten einer Bedingung, so muss er zum Warten den kritischen Abschnitt verlassen. Wird ein Thread erweckt, so begibt er sich sofort wieder in den kritischen Abschnitt des Monitors, in dem er gewartet hat. Er wird durch einen Thread erweckt, der die Bedingung erfüllt hat. Dieser muss danach den kritischen Abschnitt verlassen

Bedingungen Eine Bedingung (Condition) ist ein boolscher Ausdruck Bewahrt den Monitor vor fehlerhaften oder inkonsistenten Zuständen Ist die Bedingung bereits erfüllt wartet der Thread nicht Warten mehrere Thread auf eine Bedingung, wird zufällig einer dieser ausgewählt

Bedingungen Wird fälschlicherweise die Erfüllung einer Bedingung signalisiert, wird eine Exception geworfen (Inkonsistenter Zustand) Ein Monitor löst nicht die Probleme des Starvation oder des Deadlocks!

Syntax Beispiel J++ monitor Buffer // <-- (1) [extends monitor/class implements (monitor)interface]{// <-- (2) int size = 0; int max = 50; Condition notFull(size<max);// <-- (3) Condition notEmpty(size>0);

Syntax Beispiel J++ 1. Mit monitor wird eine neue Monitor- Klasse generiert. 2. Es kann von Monitoren oder Klassen geerbt und Monitor- oder normale Interfaces implementiert werden. 3. Dieser Monitor enthält Bedingungen(Condition), die einen boolschen Ausdruck enthalten.

Syntax Beispiel J++ public Buffer() { notFull.setExceptionText("Someone has not put something " + "into the buffer, but he/she has signaled it."); // <-- (4) notEmpty.setExceptionText("Someone has not get something " + "from the buffer, but he/she has signaled it."); } 4. Hier kann ein Text eingegeben werden, der in der Exception enthalten ist. Diese wird geworfen wenn eine Bedingung signalisiert wurde, obwohl sie nicht erfüllt ist.

Syntax Beispiel J++ public void put(){ notFull.await();// <-- (5) this.size++; notEmpty.signal();// <-- (6) } public void get(){ notEmpty.await(); this.size--; notFull.signal(); }

Syntax Beispiel J++ 5. Hier wird auf eine Bedingung gewartet. 6. Hier wird eine Bedingung signalisiert.

Umsetzung J++ -> Java

Monitor: Dies ist die root- Klasse aller Monitore. Semaphore: Dies kann eine Klasse aus den Java-Bibliotheken sein, hier wird sie nochmal ausführlich gezeigt. Condition: Eine Condition stellt die Bedingung da, auf die gewartet oder signalisiert werden kann. ConditionNotFullFilledException: Wird eine eine nicht wahre Bedingung signalisiert, so wird diese Exception geworfen.

Das lebende Beispiel

Vererbung unter Monitoren und Conditions class A extends [monitor] B compileError class A implements [monitorinterface] B compileError interface A extends [monitorinterface] B compileError monitor A extends [class] B geht monitor A extends [monitor] B geht monitor A implements [interface] B compileError monitor A implements [monitorinterface] B geht monitorinterface A extends [monitorinterface] B geht monitorinterface A extends [interface] B geht

Fragen