1.3 Verklemmungen Synchronisation löst Probleme – ist aber auch Gefahrenquelle: Prozeß wartet an Synchronisationspunkt – ist gesichert, daß er irgendwann.

Slides:



Advertisements
Ähnliche Präsentationen
Monitore in Java++ Aufgabe 2 von Markus Schlebusch Christoph Reinboth Sebastian Zok Johannes Stolte Norman Zuther.
Advertisements

Phasen und ihre Workflows
10.2 Wechselseitiger Ausschluss in Hardware
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Foliensatz von A. Weber zur Vorlesung Informatik I, Bonn, 2002/03
4 Verteilte Algorithmen
Objektorientierter Entwurf
An Axiomatic Proof Technique for Parallel Programs
Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.
Objektrelationales Mapping mit JPA Testing Jonas Bandi Simon Martinelli.
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST.
Kapitel 6.1 Nebenläufigkeit und wechselseitiger Ausschluss
Systeme 1 Kapitel 7 Deadlocks WS 2009/10.
Kapitel 7.2 Dining philosophers problem
LE LM 10 - LO3 Verfahren zur Qualitätssicherung
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.
Formale Sprachen – Mächtigkeit von Maschinenmodellen
Nebenläufige Programmierung
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Eduard Sauerbrei Formale Techniken Eduard Sauerbrei
OpenMP Präsentation im Rahmen des Seminars
3.1.7 Korrektheit von Objekten Voraussetzung für die Diskussion der Korrektheit von nichtsequentiell benutzten abstrakten Objekten: Modellbasierte Spezifikation:
Hypothesen testen: Grundidee
Situationen Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld.
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
Verklemmungen Bei sperrenbasierter Synchronisation können sogenannte Verklemmungen (engl. deadlocks) auftreten, in denen Transaktionen sich gegenseitig.
§9 Der affine Raum – Teil 2: Geraden
§8 Gruppen und Körper (8.1) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein weiteres.
Tutorium
Die Ableitung im.
Fünf-Fünf-Zwei der 3. Vorlesung/Übung Requirements Engineering WS 10/11 Marin Zec.
Effiziente Algorithmen
Petra Mutzel: DAP2, Universität Dortmund SS Rotationen (1) b(5)=2 b(7)=0 b(7)=1 5 ist unbalanciert5, 7, 8 sind balanciert b(5)=0 Rotation nach.
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Echtzeit-Systeme. Systeme zur unmittelbaren Steuerung und Abwicklung von Prozessen, welche dafür an sie gestellte quantitative Echtzeitanforderungen erfüllen.
Endliche Automaten Informatik JgSt. 13, Abitur 2009
Grenzen der Regularität
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Fehler in Rechnernetzen
Wichtige Errungenschaften
Kapitel 10 Multikollinearität
Betriebssysteme Übung Tutorium „System Calls & Multipgrogramming“
Betriebssysteme Übung 2. Tutorium. Task 1 – Locks (1) Wozu Locks? Dienen dazu, exklusiven Zugriff auf eine Ressource sicherzustellen Lock = binäre Semaphore.
deterministisches chaos
Learning By Doing Parallelverarbeitung Multithreading (Nebenläufigkeit) Alte Idee der Parallelverarbeitung statt rein sequentieller Prozesse Parallelverarbeitung.
Verlier die Hoffnung nicht
Korrektheit von Programmen – Testen
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Berechenbarkeit Klaus Becker Berechenbarkeit.
Synchronisation paralleler Transaktionen  AIFB SS Sperrverfahren Sperrverfahren (13/18) Behandlung von Konflikten bei der Sperrvergabe.
2 Nebenläufige Prozesse. 2.1 Programmstruktur und Prozesse private Prozess = Anweisungen + Daten gemeinsame Aber:Wie verhält sich das Konstrukt „Prozess“
4.4 Sperrsynchronisation
5.1.2 Sequentielle Konsistenz
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Foliendesign: Jörg Steinrücken & Tobias Kahn Vorlesung
Constraint Delaunay Triangulations
Nichtsequentielle Programmierung Klaus-Peter Löhr Freie Universität Berlin WS 2002/03.
Nsp Verklemmungen... drohen überall, wo synchronisiert wird Def. 1 (1.3  ):1.3 Beim Ablauf eines nichtsequentiellen Programms liegt eine Verklemmung.
Vs41 4 Verteilte Algorithmen. vs42 Prozesse als Systemkomponenten:  Spezifikation eines Prozesses ? (Vgl. Spezifikation eines ADT) syntaktisch:z.B. Ports.
Theory of Programming Prof. Dr. W. Reisig Was heißt „Korrektheit“? W. Reisig Workshop Modellierung Hamburg, März 2015.
Sortierverfahren Mit VB 2010 express edition JBS Tr, info Q1.
Test 1 Test 2 Test 3. Test 4 Test 5 Test 6 Test 7 Test 8 Test 9.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Threads Alexander Sczyrba Jan Krüger.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Prozesse Alexander Sczyrba Jan Krüger.
Netzwerk - Programmierung
Test.
Debugging.
Ergänzung zu „Konkurrenz der Arten“
 Präsentation transkript:

1.3 Verklemmungen Synchronisation löst Probleme – ist aber auch Gefahrenquelle: Prozeß wartet an Synchronisationspunkt – ist gesichert, daß er irgendwann fortfahren kann ?

Beispiel 1:mit fork -Variante (vgl ), die Verweis auf erzeugten Prozeß liefert Process p,q; procPprocQ... p = fork procP();... q = fork procQ(); join q; join p;... p wartet auf Beendigung von q – aber q wartet auf Beendigung von p. Ursache: Programmfehler !

Beispiel 1:mit fork -Variante (vgl ), die Verweis auf erzeugten Prozeß liefert Process p,q; procPprocQ... <p = fork procP();... q = fork procQ(); > join q; join p;... p wartet auf Beendigung von q – aber q wartet auf Beendigung von p. Ursache: Programmfehler ! !

Def.:Beim Ablauf eines nichtsequentiellen Programms liegt eine Verklemmung (deadlock) vor, wenn es Prozesse im Wartezustand gibt, die durch keine mögliche Fortsetzung des Programms daraus erlöst werden können. Bemerkung 1: Typischerweise entsteht eine Verklemmung dadurch, daß zwei oder mehr Prozesse zyklisch aufeinander warten. Bemerkung 2: Wenn kein zyklisches Warten vorliegt, spricht man häufig von hangup statt von deadlock. (Beispiel: Elternprozeß bleibt bei join hängen, weil Kindprozeß nicht terminiert.)

Beispiel 2:

Diese Verklemmung tritt nichtdeterministisch ein !

1.4 Korrektheit nichtsequentieller Programme Zur Erinnerung – Korrektheit sequentieller Programme bezüglich vorgegebener Spezifikation: partielle Korrektheit: wenn das Programm terminiert, liefert es das spezifizierte Ergebnis totale Korrektheit: garantierte Termination + partielle Korrektheit

Zusätzliche Fehlerquellen im nichtsequentiellen Fall:  Nichtdeterminismus  Verklemmungen, deterministisch oder nichtdeterministisch Bezug zur Korrektheit:  Nichtdeterminismus bedroht partielle Korrektheit  Verklemmungen gefährden Termination

Achtung: Es gibt Programme, die nicht terminieren sollen – aber natürlich auch verklemmungsfrei sein sollen Daher: Def.:Korrektheit = Sicherheit + Lebendigkeit  Sicherheit (safety) eines Programms: das Programm produziert nichts Falsches (  partielle Korrektheit, Determiniertheit)  Lebendigkeit (liveness) eines Programms: das Programm bleibt nicht hängen (  Termination, Verklemmungsfreiheit)

Merke: Korrektheit durch Testen nachweisen zu wollen ist von vornherein sinnlos (wegen des Nichtdeterminismus) Formale Verifikation ist möglich, aber schwieriger als bei sequentiellen Programmen