Vorlesung 10 Mutual Exclusion Peter B. Ladkin Sommersemester 2001 Universität Bielefeld Technische Fakultät.

Slides:



Advertisements
Ähnliche Präsentationen
Christian Scheideler SS 2009
Advertisements

Informatik II: Algorithmen und Datenstrukturen SS 2013
Kapitel 11 Deadlocks RW-Systemarchitekur Kap. 11.
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Asymptotische Notation
10.2 Wechselseitiger Ausschluss in Hardware
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
C Tutorium – Semaphoren –
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 4 / 1 Termalgebren Definition "Freie Algebra" Die -Algebra A = [A, F ] heißt.
Algorithmen und Komplexität
An Axiomatic Proof Technique for Parallel Programs
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken IX Christian Schindelhauer
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken X Christian Schindelhauer
Systeme 1 Kapitel 3 Dateisysteme WS 2009/10.
Kapitel 6.1 Nebenläufigkeit und wechselseitiger Ausschluss
Systeme 1 Kapitel 5 Scheduling WS 2009/10.
Systeme 1 Kapitel 7 Deadlocks WS 2009/10.
Kapitel 7.2 Dining philosophers problem
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
Übung 6.1Turing-Maschine 1.Machen Sie sich mit der Funktionsweise des Busy Beaver-Programms vertraut Vollziehen sie die 11 Schritte der ersten Turing-Tabelle.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Halbzeit: Kurze Wiederholung
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Kapitel 5 Stetigkeit.
Kapitel 6 Differenzierbarkeit. Kapitel 6: Differenzierbarkeit © Beutelspacher Juni 2005 Seite 2 Inhalt 6.1 Die Definition 6.2 Die Eigenschaften 6.3 Extremwerte.
Vorl. 6: Single- und Multitasking Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 4: Memory Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin Wintersemester.
Technische Informatik I
Technische Informatik 1 Vorlesung 1: Speicherelemente Peter B. Ladkin Sommersemester 2001 Universität Bielefeld Technische.
Vorlesung 2 Rechnerarchitektur Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 9.2: Specification Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 5: Interrupts Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin Wintersemester.
Technische Informatik II Rechnerarchitektur und Betriebssysteme Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter.
Technische Informatik II Vorlesung 12bis: Mehr über Security Sommersemester 2001 Prof. Peter B. Ladkin PhD Universität Bielefeld.
Vorlesung 9.1: Erinnerung Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 5 Interrupts Peter B. Ladkin
1 Vorlesung 14 Mehr über Security Peter B. Ladkin Sommersemester 2001.
Vorlesung 9.1: Erinnerung Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin Wintersemester.
Vorlesung 2 Rechnerarchitektur Peter B. Ladkin Wintersemester 2001/2002 Universität Bielefeld Technische Fakultät.
Rechnerarchitektur Vorlesung 2 Peter B. Ladkin
Christian Schindelhauer
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 14: Schrittweise.
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Effiziente Algorithmen
Beispiel 9.10 Theorie der Zinsstruktur
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 10 SS 2000 Quadtrees.
Diskrete Mathematik II
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
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.
Prozess-synchronisation
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VIII Christian Schindelhauer
Abteilungen  ELEKTRONIK und TECHNISCHE INFORMATIK Fachschule/ Höhere/ Kolleg  ELEKTROTECHNIK Fachschule/ Höhere  MASCHINENBAU Fachschule/
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
1 Technische Informatik II Rechnerarchitektur und Betriebssysteme Peter B. Ladkin
Technische Informatik I Vorlesung 4: Vereinfachung von Schaltfunktionen Mirco Hilbert Universität Bielefeld Technische Fakultät.
Aufgaben Semaphore Übersicht (Dijkstra)
 Präsentation transkript:

Vorlesung 10 Mutual Exclusion Peter B. Ladkin Sommersemester 2001 Universität Bielefeld Technische Fakultät

20 January, 2014Technische Informatik II: Vorlesung 102 Sequentielle Operationen in Logik Sei es, wir möchten eine Sequenz von Operationen spezifizieren:- Also == ( ; ; Logik hat keine Sequentializierungs-Operator Wir definieren : pc = `a' : pc = `b' : pc = `c' pc = `b' pc = `c' pc = `d' und == ¿ ( NoOp)

20 January, 2014Technische Informatik II: Vorlesung 103 Sequentielle Operationen in Logik Ausser der Werte des Program-Counters haben beide Programme das gleiche Verhalten Für andere Constructs gibt es Tricks: Für loop( ; ; endloop definiert man lieber : pc = `c' pc = `a' da nach könnte nur ausgeführt werden

20 January, 2014Technische Informatik II: Vorlesung 104 Sequentielle Operationen in Logik Wie könnte man also das folgende Programm in Logik schreiben? var integer x,y = 0; semaphore sem = 1; cobegin loop P(sem); ; V(sem) endloop [] loop P(sem); V(sem) endloop

20 January, 2014Technische Informatik II: Vorlesung 105 Sequentielle Operationen in Logik Also: Init == pc1 = `a' pc2 = `a' x = 0 y = 0 sem = 1 ProgVars == Unchanged == (

20 January, 2014Technische Informatik II: Vorlesung 106 Sequentielle Operationen in Logik 1 == pc1 = `a' pc1 = `b' 0 < sem sem = sem - 1 Unchanged ProgVars 1 == pc1 = `c' pc1 = `d' sem = sem + 1 Unchanged ProgVars

20 January, 2014Technische Informatik II: Vorlesung 107 Sequentielle Operationen in Logik 1 == pc1 = `b' pc1 = `c' x = x+1 Unchanged Ähnlich für den zweiten Thread für y, sagen wir 2, 2, 2 1 == 1 == 2 == 1 2 NoOp == Init ¿

20 January, 2014Technische Informatik II: Vorlesung 108 Übung Schreib, 2 in voll

20 January, 2014Technische Informatik II: Vorlesung 109 Bemerkungen Die volle Aufschreibung in Logik ist lästig Aber nicht so lästig wie ein Programm, die unerwartete Nebeneffeckten hat Es geht leider nicht anders. Spezifikation muss genau sein und das bedeutet u.a., dass man sagen muss, was mit allen betroffenen Variablen bei jedem Schritt passieren muss Das Semaphore-Verfahren hat aber das Mutex-Problem vereinfacht.

20 January, 2014Technische Informatik II: Vorlesung 1010 Bemerkungen Mutex könnte für eine beliebige Anzahl von Prozessen benötigt werden, z.B., für Drucker-Services Das Semaphore-Verfahren hat es aber auf zwei Prozessen reduziert: P(sem) und V(sem) Die Änderungen auf sem sind relative einfach zu implementieren. Was nicht so einfach ist, ist das "Unchanged" Bedingung festzustellen

20 January, 2014Technische Informatik II: Vorlesung 1011 Algorithmen für zweier Mutex Versuch 1 (V1) flag: 0..1 P0:loop while flag 0 do NoOp; ; flag = 1 endloop P1:loop while flag 1 do NoOp; ; flag = 0 endloop

20 January, 2014Technische Informatik II: Vorlesung 1012 Kommentare zu V1 Die Programme könnte nur im strikten Austausch ausgeführt werden Im Fall, dass Prozess P0 stolpert, könnte Prozess P1 nicht weiter ausgeführt werden Das gleiche für Prozess P1 gegenüber Prozess P0 V1 benutzt Busy-Waiting Gleichzeitiges Lesen/Schreiben von flag ist aber kein Problem

20 January, 2014Technische Informatik II: Vorlesung 1013 Übung Beweise die Aussagen auf der letzten Folie Hinweis: In jedem Programm gibt es drei Befehle Die Befehle könnten in einer beliebigen Reihenfolge ausgeführt werden Es gibt nur wenige Befehl-Sequenzen, die wir betrachten müssen Behauptung: nur die Interleaving muss betrachtet werden; man kann das Verfahren, in dem zwei Befehle überlappen, ignorieren

20 January, 2014Technische Informatik II: Vorlesung 1014 Algorithmen für zweier Mutex Versuch 2 (V2) flag: array [0..1] of 0..1 P0:loop flag[0] = 1; while flag[1] = 1 do NoOp; ; flag[0] = 0 endloop P1:loop flag[1] = 1; while flag[0] = 1 do NoOp; ; flag[1] = 0 endloop

20 January, 2014Technische Informatik II: Vorlesung 1015 Kommentare zu V2 Prozessen P0 und P1 könnte beliebig ausgeführt werden; sie müssen nicht im strikten Austausch ausgeführt werden Sei es, dass Prozess P0 setzt flag[0]= 1 und direkt danach Prozess P1 setzt flag[1]= 1. Es folgt, dass beide Prozessen ewig auf einander warten Dieses Verfahren, dass zwie oder mehrere Prozessen auf einander ewig warten, heisst Deadlock

20 January, 2014Technische Informatik II: Vorlesung 1016 Übung Beweise die Aussagen auf der letzten Folie

20 January, 2014Technische Informatik II: Vorlesung 1017 Algorithmen für zweier Mutex Versuch 3 (V3) flag: array [0..1] of 0..1 turn: {a,b}

20 January, 2014Technische Informatik II: Vorlesung 1018 Algorithmen für zweier Mutex V3 P0:loop flag[0] = 1; turn = b; while flag[1]=1 and turn=b do wait; ; flag[0] = 0 endloop

20 January, 2014Technische Informatik II: Vorlesung 1019 Algorithmen für zweier Mutex V3 P1:loop flag[1] = 1; turn = a; while flag[1]=1 and turn=a do wait; ; flag[1] = 0 endloop

20 January, 2014Technische Informatik II: Vorlesung 1020 Kommentare zu V3 turn ist ein Shared-Variabel Sei es, dass P0 und P1 versuchen, turn gleichseitig zu setzen. Wir müssen sicher sein, dass turn entweder Wert a oder Wert b bekommt Dies ist relative einfach, falls turn ein einfaches Bit ist Ein Hardware-Stück, dass dies sichert, heisst ein Arbiter

20 January, 2014Technische Informatik II: Vorlesung 1021 Arbiter Ein perfektes Arbiter kann nicht existieren Jedes Arbiter hat einen Bereich, in dem es nicht sichergestellt werden kann, dass 0 oder 1 definitiv auskommt Diese Phänomen heisst Metastability Die Existenz von Metastability ist in den 70en Jahren von Lamport und Palais bewiesen Gleichzeitig und davon unabhängig hat Charles Molnar ein Beispiel von Metastability bemerkt Beide Papers sind von Zeitschriften abgelehnt!

20 January, 2014Technische Informatik II: Vorlesung 1022 Kommentare zu V3 Da turn ein einfaches Bit sein muss, könnte V3 nicht ohne weiteres zu mehreren Prozessen generalisiert werden

20 January, 2014Technische Informatik II: Vorlesung 1023 Kommentare zu V1-V3 V1 und V2 sind in einem Paper von Dijkstra (1965) diskutiert Die erste Mutex-Lösung kommt auch von Dijkstra in 1965 V3 ist ein bekannter Algorithmus, Peterson's Algorithmus (G.L. Peterson, 1981) Das Mutex-Problem bleibt: Man versucht, die Voraussetzungen sowie Behauptungen für jeden Algorithmus schwächer zu machen. Ausserdem ist effizienz nach wie vor ein Problem

20 January, 2014Technische Informatik II: Vorlesung 1024 Übung Versuch zu beweisen, dass V3 Mutex guarantiert Versuch zu beweisen, dass kein Deadlock bei der Ausführung des V3 entstehen kann