• Keine Ergebnisse gefunden

DreiKomplexit¨atsresultatezumMutual-Exclusion-Problem Prinzipien,Modelle&AlgorithmenderNebenl¨aufigenProgrammierung

N/A
N/A
Protected

Academic year: 2021

Aktie "DreiKomplexit¨atsresultatezumMutual-Exclusion-Problem Prinzipien,Modelle&AlgorithmenderNebenl¨aufigenProgrammierung"

Copied!
32
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prinzipien, Modelle & Algorithmen der Nebenl¨ aufigen Programmierung Wintersemester 2020/21

Drei Komplexit¨ atsresultate zum Mutual-Exclusion-Problem

Prof. Dr. David Sabel

LFE Theoretische Informatik

Letzte ¨Anderung der Folien: 30. Dezember 2020

(2)

Ubersicht ¨

1 Eine genaue Schranke f¨ ur den Platzbedarf

2 Ein Resultat zur Laufzeit

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 2/17 Platz Zeit

(3)

Komplexit¨ atsresultate

Platzbedarf Zeitbedarf

Beachte: Modell ist immer noch: Nur atomare Lese- und Schreibbefehle f¨ ur den gemeinsamen Speicher.

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 3/17 Platz Zeit

(4)

Eine untere Schranke f¨ ur den Platzbedarf

Theorem

Jeder Deadlock-freie Mutual-Exclusion Algorithmus f¨ ur n Prozesse ben¨ otigt mindestens n gemeinsam genutzte Speicherpl¨ atze.

Bemerkungen zum Beweis (1980 von J.Burns und N.A. Lynch):

Bei Single-Writer, Multiple-Reader Algorithmen einfach, da jeder Prozess, den Speicher ver¨ andern muss, bevor er den kritischen Abschnitt erkennt, sonst w¨ are wechselseitiger Ausschluss unm¨ oglich (Prozesse m¨ ussen erkennen, ob ein anderer Prozess im kritischen Abschnitt ist.)

Der allgemeine Beweis ist relativ kompliziert. Teile der Argumentation sind, dass mit weniger Speicherpl¨ atzen, nicht unterschieden werden kann, ob ein Prozess im restlichen Code oder im Kritischen Abschnitt ist, woraus sich wechselseitiger Ausschluss widerlegen l¨ asst.

Wir lassen den Beweis weg.

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 4/17 Platz Zeit

(5)

Eine untere Schranke f¨ ur den Platzbedarf

Theorem

Jeder Deadlock-freie Mutual-Exclusion Algorithmus f¨ ur n Prozesse ben¨ otigt mindestens n gemeinsam genutzte Speicherpl¨ atze.

Bemerkungen zum Beweis (1980 von J.Burns und N.A. Lynch):

Bei Single-Writer, Multiple-Reader Algorithmen einfach, da jeder Prozess, den Speicher ver¨ andern muss, bevor er den kritischen Abschnitt erkennt, sonst w¨ are wechselseitiger Ausschluss unm¨ oglich (Prozesse m¨ ussen erkennen, ob ein anderer Prozess im kritischen Abschnitt ist.)

Der allgemeine Beweis ist relativ kompliziert. Teile der Argumentation sind, dass mit weniger Speicherpl¨ atzen, nicht unterschieden werden kann, ob ein Prozess im restlichen Code oder im Kritischen Abschnitt ist, woraus sich wechselseitiger Ausschluss widerlegen l¨ asst.

Wir lassen den Beweis weg.

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 4/17 Platz Zeit

(6)

Eine untere Schranke f¨ ur den Platzbedarf

Theorem

Jeder Deadlock-freie Mutual-Exclusion Algorithmus f¨ ur n Prozesse ben¨ otigt mindestens n gemeinsam genutzte Speicherpl¨ atze.

Bemerkungen zum Beweis (1980 von J.Burns und N.A. Lynch):

Bei Single-Writer, Multiple-Reader Algorithmen einfach, da jeder Prozess, den Speicher ver¨ andern muss, bevor er den kritischen Abschnitt erkennt, sonst w¨ are wechselseitiger Ausschluss unm¨ oglich (Prozesse m¨ ussen erkennen, ob ein anderer Prozess im kritischen Abschnitt ist.)

Der allgemeine Beweis ist relativ kompliziert. Teile der Argumentation sind, dass mit weniger Speicherpl¨ atzen, nicht unterschieden werden kann, ob ein Prozess im restlichen Code oder im Kritischen Abschnitt ist, woraus sich wechselseitiger Ausschluss widerlegen l¨ asst.

Wir lassen den Beweis weg.

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 4/17 Platz Zeit

(7)

Eine obere Schranke f¨ ur den Platzbedarf

Theorem

Es gibt einen Deadlock-freien Mutual-Exclusion-Algorithmus f¨ ur n Prozesse der n gemeinsame Bits verwendet.

Beweis:

Ein-Bit-Algorithmus

sowohl J.E.Burns im Jahr 1981 als auch von L.Lamport im Jahr 1986

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 5/17 Platz Zeit

(8)

Idee des Ein-Bit-Algorithmus

Initial: f¨ ur i = 1, . . . n want[i]= False, Programm des i. Prozesses

loop forever (1) restlicher Code (2) want[i]:= True;

(3) for local:= 1 to n do

(4) if local6= i then await want[local] = False;

(5) Kritischer Abschnitt (6) want[i] = False end loop

Erf¨ ullt wechselseitigen Ausschluss:

Der erste Prozess im Kritischen Abschnitt hat want auf True, jeder andere wird dies lesen und stecken bleiben

Erf¨ ullt nicht die Deadlock-Freiheit Algorithmus so falsch!

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 6/17 Platz Zeit

(9)

Idee des Ein-Bit-Algorithmus

Initial: f¨ ur i = 1, . . . n want[i]= False, Programm des i. Prozesses

loop forever (1) restlicher Code (2) want[i]:= True;

(3) for local:= 1 to n do

(4) if local6= i then await want[local] = False;

(5) Kritischer Abschnitt (6) want[i] = False end loop

Erf¨ ullt wechselseitigen Ausschluss:

Der erste Prozess im Kritischen Abschnitt hat want auf True, jeder andere wird dies lesen und stecken bleiben

Erf¨ ullt nicht die Deadlock-Freiheit Algorithmus so falsch!

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 6/17 Platz Zeit

(10)

Der Ein-Bit-Algorithmus

Initial: f¨ ur i = 1, . . . n want[i]= False, Programm des i. Prozesses

loop forever (1) restlicher Code (2) repeat

(3) want[i]:= True;

(4) local := 1:

(5) while (want[i] = True) and (local < i) do (6) if want[local] = True then

(7) want[i] := False;

(8) await want[local] = False;

(9) local := local + 1 (10) until want[i] = True;

(11) for local:= i+1 to n do (12) await want[local] = False;

(13) Kritischer Abschnitt (14) want[i] = False end loop

Idee im Groben wie vorher:

Teste alle anderen want-Wert auf False, bevor in den KA eingetreten wird. Daher: wechselseitiger Ausschluss ist erf¨ ullt.

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 7/17 Platz Zeit

Tests f¨ ur j = 1 . . . i − 1

Tests f¨ ur j = i + 1 . . . n

(11)

Der Ein-Bit-Algorithmus

Initial: f¨ ur i = 1, . . . n want[i]= False, Programm des i. Prozesses

loop forever (1) restlicher Code (2) repeat

(3) want[i]:= True;

(4) local := 1:

(5) while (want[i] = True) and (local < i) do (6) if want[local] = True then

(7) want[i] := False;

(8) await want[local] = False;

(9) local := local + 1 (10) until want[i] = True;

(11) for local:= i+1 to n do (12) await want[local] = False;

(13) Kritischer Abschnitt (14) want[i] = False end loop

Idee im Groben wie vorher:

Teste alle anderen want-Wert auf False, bevor in den KA eingetreten wird.

Daher: wechselseitiger Ausschluss ist erf¨ ullt.

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 7/17 Platz Zeit

Tests f¨ ur j = 1 . . . i − 1

Tests f¨ ur j = i + 1 . . . n

(12)

Der Ein-Bit-Algorithmus (2)

Initial: f¨ ur i = 1, . . . n want[i]= False, Programm des i. Prozesses

loop forever (1) restlicher Code (2) repeat

(3) want[i]:= True;

(4) local := 1:

(5) while (want[i] = True) and (local < i) do (6) if want[local] = True then

(7) want[i] := False;

(8) await want[local] = False;

(9) local := local + 1 (10) until want[i] = True;

(11) for local:= i+1 to n do (12) await want[local] = False;

(13) Kritischer Abschnitt (14) want[i] = False end loop

Deadlock-Freiheit:

Beweis-Idee: Bei

Deadlock-Berechnungsfolge kann man schließen:

Irgendwann alle Prozesse:

await in Zeile (8)

in der for-Schleife in Zeilen (11)-(12) oder f¨ ur immer im restlichen Code und: mind. ein Prozess in der for-Schleife

Prozess mit gr¨ oßter Nummer wird for-Schleife durchlaufen

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 8/17 Platz Zeit

(13)

Eigenschaften des Ein-Bit-Algorithmus

Garantiert wechselseitigen Ausschluss und Deadlock-Freiheit Starvation ist m¨ oglich

Nicht symmetrisch: Z.B. Prozess mit Nummer 1 durchl¨ auft die repeat-Schleife sofort

Nicht schnell: Wenn nur ein Prozess in den KA will, muss er alle n-Bits testen Aber: Platz-optimal, da nur n-Bits gemeinsamer Speicher

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 9/17 Platz Zeit

(14)

Ein Resultat zur Laufzeit

Theorem (R. Alur und G.Taubenfeld, 1992)

Es gibt keinen (Deadlock-freien) Mutual-Exclusion-Algorithmus f¨ ur 2 (oder auch n) Prozesse, der eine obere Schranke hat f¨ ur die Anzahl an Speicherzugriffen (des gemeinsamen Speichers), die ein Prozess ausf¨ uhren muss, bevor er den kritischen Abschnitt betreten darf.

D.h. Prozesse m¨ ussen beliebig lang “warten”, bis sie in den kritischen Abschnitt d¨ urfen

Es gibt keinen Algorithmus der das verhindern kann

Achtung: F¨ ur dieses Modell (Lese- und Schreiboperationen atomar)!

Resultat meint alle F¨ alle, es gibt Unterf¨ alle in denen man eine Schranke angeben kann

z.B.: Fall, in dem nur ein Prozess in den kritischen Abschnitt will

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 10/17 Platz Zeit

(15)

Beweis

Sei M ein Deadlock-freier Mutual-Exclusion-Algorithmus f¨ ur 2 Prozesse P 1 und P 2 Berechnungsbaum T M f¨ ur M :

bin¨ arer Baum

Jeder Knoten entspricht Zustand der Ausf¨ uhrung (alle Belegungen)

Prozessinterne Schritte (Schritte, die nicht auf dem Speicher operieren), sind als ein Knoten dargestellt.

Wurzel: Erster interessanter Zustand: P 1 und P 2 direkt vor dem Eintritt in Initialsierungscode

linkes Kind eines Knotens: Nachfolgezustand nach einem Schritt von P 1

rechtes Kind eines Knotens: Nachfolgezustand nach einem Schritt von P 2 Blatt: P 1 oder P 2 hat kritischen Abschnitt betreten (dann stoppe)

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 11/17 Platz Zeit

(16)

Beweis(2)

Markierung der Knoten von T M

Blatt ist genau mit 1 oder genau mit 2 markiert, jenachdem welches P i im KA ist innerer Knoten ist mit 1, 2 oder (1 und 2) markiert, je nachdem wie seine Kinder markiert sind.

Ahnlichkeit ¨

Zwei Knoten v, w sind ¨ ahnlich bzgl. P i (geschrieben vhP i iw), gdw.

Schritte die P

i

von der Wurzel zu v macht = Schritte die P

i

von der Wurzel zu w macht

Gemeinsame Variablen und lokalen Variablen von P

i

sind identisch f¨ ur v und w

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 12/17 Platz Zeit

(17)

Beweis (3)

Theorem ist bewiesen wenn:

F¨ ur jedes n > 0 und i ∈ {1, 2}:

Es gibt ein Blatt v mit Markierung i, sodass auf dem Pfad von der Wurzel bis zu v

werden mehr als n Schritte f¨ ur Prozess P i ausgef¨ uhrt Wurzel

v 1

> n mal nach links

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 13/17 Platz Zeit

(18)

Beweis (3)

Theorem ist bewiesen wenn:

F¨ ur jedes n > 0 und i ∈ {1, 2}:

Es gibt ein Blatt v mit Markierung i, sodass auf dem Pfad von der Wurzel bis zu v

werden mehr als n Schritte f¨ ur Prozess P i ausgef¨ uhrt Wurzel

v 2

> n mal nach rechts

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 13/17 Platz Zeit

(19)

Beweis (4)

Fall: Es gibt unendlichen langen Pfad in T M , der unendlich viele Knoten enth¨ alt, die alle mit i markiert sind und Prozess P i f¨ uhrt unendlich viele Schritte auf diesem Pfad aus.

i i

Prozessif¨uhrt∞-oft einen Schritt durch

i

unendlich lang

Dann: F¨ ur jedes n kann der gesuchte Pfad konstruiert werden.

Deshalb: Annahme A: T M hat keinen solchen unendlichen Pfad

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 14/17 Platz Zeit

(20)

Beweis (5)

Wir zeigen nun: Annahme A f¨ uhrt zum Widerspruch.

Da Algorithmus Deadlock-frei muss gelten (w.g. Annahme A):

Es gibt Knoten v, v 1 , v 2 mit v ist mit 1, 2 markiert

Die beiden Knoten v 1 und v 2 sind jeweils mit genau einer Zahl markiert.

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 15/17 Platz Zeit

(21)

Beweis (6): Fall 1: v 1 mit 1, v 2 mit 2 markiert

v 1,2 v 1

1

v 12

1

v 2

2 v 21

2

1 2

e 1

e 2

ρ 1

ρ 2

Annahme A = ⇒ linkester Pfad endlich lang, rechtester Pfad endlich lang (Blatt mit 1 bzw. 2 markiert)

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 16/17 Platz Zeit

(22)

Beweis (6): Fall 1: v 1 mit 1, v 2 mit 2 markiert

v 1,2

v 1

1

v 12

1

2

v 2

2

v 21

2

1 2

e 1

e 2

e 2

ρ 1

ρ 2

ρ 2

e 1 Lese-Operation: Dann gilt vhP 2 iv 1 und auch v 2 hP 2 iv 12 . Widerspruch, da ρ 2 auch f¨ ur v 12 zu Blatt mit 2 f¨ uhren muss

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 16/17 Platz Zeit

(23)

Beweis (6): Fall 1: v 1 mit 1, v 2 mit 2 markiert

v 1,2

v 1

1

v 12

1

v 2

2

v 21

2

1

1 2

e 1

e 2

e 1

ρ 1

ρ 2

ρ 1

e 2 Lese-Operation: Dann gilt vhP 1 iv 2 und auch v 1 hP 1 iv 21 . Widerspruch, da ρ 1 auch f¨ ur v 21 zu Blatt mit 1 f¨ uhren muss

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 16/17 Platz Zeit

(24)

Beweis (6): Fall 1: v 1 mit 1, v 2 mit 2 markiert

v 1,2 v 1

1

v 12

1

2

v 2

2

v 21

2

1 2

e 1

e 2

e 2

ρ 1

ρ 2

ρ 2

e 1 und e 2 Schreibe-Operation auf gleiche Variablen:

Dann gilt v 2 hP 2 iv 12 Widerspruch (wie vorher)

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 16/17 Platz Zeit

(25)

Beweis (6): Fall 1: v 1 mit 1, v 2 mit 2 markiert

v 1,2 v 1

1

v 12

1

v 2

2 v 21

2

1 2

e 1

e 2

e 2

e 1

ρ 1

ρ 2

e 1 und e 2 Schreibe-Operation auf verschiedene Variablen:

Dann gilt v 12 hP i iv 21 f¨ ur i = 1, 2.

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 16/17 Platz Zeit

(26)

Beweis (6): Fall 1: v 1 mit 1, v 2 mit 2 markiert

v 1,2 v 1

1

v 12

1

1 1

v 2

2 v 21

2

1 2

e 1

e 2

e 2

e 1

ρ 1

ρ 2

ρ 0 ρ 0

e 1 und e 2 Schreibe-Operation auf verschiedene Variablen:

Dann gilt v 12 hP i iv 21 f¨ ur i = 1, 2. Widerspruch: Da Markierungen unm¨ oglich

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 16/17 Platz Zeit

(27)

Beweis (7): Fall 2: v 1 mit 2, v 2 mit 1 markiert

v 1,2 v 1

2

v 12 2

v 2 1 v 21

1 2

unendlicher Pfad

1

unendlicher Pfad

e 1

e 2

ρ 1

ρ 2

P 2 nicht im KA in v = ⇒ P 2 nicht im KA in v 1

= ⇒ unendlicher Pfad ganz links ab v 1 (da nur P

1

Schritte macht)

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 17/17 Platz Zeit

(28)

Beweis (7): Fall 2: v 1 mit 2, v 2 mit 1 markiert

v 1,2 v 1

2

v 12 2

v 2 1 v 21

1 2

unendlicher Pfad

1

unendlicher Pfad

e 1

e 2

ρ 1

ρ 2

analog: unendlicher Pfad ganz rechts ab v 2

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 17/17 Platz Zeit

(29)

Beweis (7): Fall 2: v 1 mit 2, v 2 mit 1 markiert

v 1,2 v 1

2

v 12

2

2

unendlicher Pfad

v 2

1

v 21

1 2

unendlicher Pfad

1

unendlicher Pfad

e 1

e 2

e 2

ρ 1

ρ 2

ρ 2

e

1

ist Leseoperation = ⇒ v

2

hP

2

iv

12

.

= ⇒ ρ

2

auch von v

12

ausf¨ uhrbar.

= ⇒ unendlicher langer Pfad aus P

2

-Schritten,

alle Knoten mit 2 markiert. Widerspruch zu Annahme A.

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 17/17 Platz Zeit

(30)

Beweis (7): Fall 2: v 1 mit 2, v 2 mit 1 markiert

v 1,2 v 1

2

v 12 2

v 2 1 v 21

1

1

unendlicher Pfad

2

unendlicher Pfad

1

unendlicher Pfad

e 1

e 2

e 1 ρ 1

ρ 2

ρ 1

e 2 ist Leseoperation: analog

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 17/17 Platz Zeit

(31)

Beweis (7): Fall 2: v 1 mit 2, v 2 mit 1 markiert

v 1,2 v 1

2

v 12

2

2

unendlicher Pfad

v 2 1

v 21

1 2

unendlicher Pfad

1

unendlicher Pfad

e 1

e 2

e 2

ρ 1

ρ 2

ρ 2

e 1 und e 2 Schreiboperationen in die gleiche Variable. Dann gilt v 12 hP 2 iv 2 . Widerspruch.

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 17/17 Platz Zeit

(32)

Beweis (7): Fall 2: v 1 mit 2, v 2 mit 1 markiert

2 2

v 1,2 v 1

2

v 12

2

v 2

1 v 21

1

2

unendlicher Pfad

1

unendlicher Pfad

e 1

e 2

e 2

e 1

ρ 1

ρ 2

ρ 0 ρ 0

e 1 und e 2 Schreiboperationen in verschiedene Variablen. Dann gilt f¨ ur i = 1, 2:

v 12 hP i iv 2,1 . Unm¨ oglich.

TCS | 05 Komplexit¨aten zum Mutual-Exclusion-Problem | WS 2020/21 17/17 Platz Zeit

Referenzen

ÄHNLICHE DOKUMENTE

bereit/ready: Prozess will Schritte ausf¨ uhren, darf aber nicht mindestens ein Prozess l¨ auft immer (z.B. Leerlaufprozess) Scheduler f¨ uhrt Context-Switch aus:.. Bereite

TCS | 08 Semaphore | WS 2020/21 7/76 Einleitung Prozessm. Java

signalC(cond) kann effektlos sein: Entwe- der Prozess in cond wird entblockiert, oder effektlos, wenn cond leer ist. TCS | 09 Monitore | WS 2020/21 17/53 Monitore

Sei P der aufrufende Prozess, cond eine Condition Variable im Monitor monitor Erinnerung: cond ist eine FIFO-Queue (Liste). Sei lock der implizite Lock des Monitors (Lock

Ein Kanal verbindet einen sendenden Prozess mit einem empfangenden Prozess Oft erlaubt: ein Kanal verbindet mehrere sendende und empfangende Prozesse Kan¨ ale sind typisiert:

Ein Kanal verbindet einen sendenden Prozess mit einem empfangenden Prozess Oft erlaubt: ein Kanal verbindet mehrere sendende und empfangende Prozesse Kan¨ ale sind typisiert:

Im Tuple Space muss ein “Matching Tuple“ vorhanden sein Matching Tuple = gleiche L¨ ange, gleiche Typen, gleiche Werte Falls kein passendes Tuple vorhanden:.. Prozess blockiert, bis

2 Halten und Warten (Hold and Wait): Ein Prozess kann eine Ressource anfordern (auf eine Ressource warten), w¨ ahrend er eine andere Ressource bereits belegt hat.. 3