distribuirani algoritmi i sistemi · distribuirani algoritmi i sistemi autor izvorne prezentacije:...

44
DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje sa read/write promenljivama 1

Upload: others

Post on 07-Mar-2020

22 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

DISTRIBUIRANI ALGORITMI I SISTEMI

Autor izvorne prezentacije:

Prof. Jennifer WelchIz kursa CSCE 668

Proleće 2014

Postavka 7: međusobno isključivanje sa read/write promenljivama 1

Page 2: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Read/Write deljene promenljive2

U jednom atomskom koraku procesor može

da očita vrednost promenljive ili

da upiše novu vrednost u promenljivu

ali ne može da izvrši obe operacije istovremeno!

Page 3: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Algoritam sa ceduljicama

(Bakery Algorithm)3

To je algoritam za

međusobno isklučivanje

bez trajnog zaključavanja

koristi 2n deljenih read/write promenljivih

Bulove prom. Choosing[i] : inicijalno false, u koje

upisuje pi a čitaju ih drugi

Celi br. Number[i] : inicijalno 0, u koje upisuje pi a

čitaju ih drugi

Page 4: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Algoritam sa ceduljicama4

Kod za ulaznu sekciju:

Choosing[i] := true

Number[i] := max{Number[0], …, Number[n-1]} + 1

Choosing[i] := false

for j := 0 to n-1 (except i) do

wait until Choosing[j] = false

wait until Number[j] = 0 or

(Number[j],j) > (Number[i],i)

endfor

Kod za izlaznu sekciju:

Number[i] := 0

Page 5: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Algoritam sa ceduljicama obezbeđuje

međusobno isključivanje5

Lema (3.5): Ako je pi u kritičnoj sekciji i

Number[k] ≠ 0 (k ≠ i), onda

(Number[k],k) > (Number[i],i).

Dokaz: Razmotrimo dva slučaja:

pi u KS i

Number[k] ≠ 0

Page 6: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Algoritam sa ceduljicama obezbeđuje

međusobno isključivanje5

Lema (3.5): Ako je pi u kritičnoj sekciji i

Number[k] ≠ 0 (k ≠ i), onda

(Number[k],k) > (Number[i],i).

Dokaz: Razmotrimo dva slučaja:

pi u KS i

Number[k] ≠ 0

pi -jevo najnovije

čitanje Number[k];

Slučaj 1: vraća 0

Slučaj 2: (Number[k],k) > (Number[i],i)

Page 7: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Međusobno isključivanje: Slučaj 16

pi u KS i

Number[k] ≠ 0

Page 8: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Međusobno isključivanje: Slučaj 16

pi u KS i

Number[k] ≠ 0

pi -jevo najnovije

čitanje Number[k],

vraća 0.

Znači pk je u ostatku

ili bira broj.

Page 9: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Međusobno isključivanje: Slučaj 16

pi u KS i

Number[k] ≠ 0

pi -jevo najnovije

čitanje Number[k],

vraća 0.

Znači pk je u ostatku

ili bira broj.

pi -jevo najnovije

čitanje Choosing[k],

vraća false.

Znači pk nije usred

biranja broja.

Page 10: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Međusobno isključivanje: Slučaj 16

pi u KS i

Number[k] ≠ 0

pi -jevo najnovije

čitanje Number[k],

vraća 0.

Znači pk je u ostatku

ili bira broj.

pi -jevo najnovije

čitanje Choosing[k],

vraća false.

Znači pk nije usred

biranja broja.

pi -jev najnoviji

upis u Number[i]

Page 11: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Međusobno isključivanje: Slučaj 16

pi u KS i

Number[k] ≠ 0

pi -jevo najnovije

čitanje Number[k],

vraća 0.

Znači pk je u ostatku

ili bira broj.

pi -jevo najnovije

čitanje Choosing[k],

vraća false.

Znači pk nije usred

biranja broja.

pi -jev najnoviji

upis u Number[i]

Znači pk bira broj u ovom intervalu,

pogleda pi -jev broj, i izabira veći broj.

Page 12: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Međusobno isključivanje: Slučaj 27

Se dokazuje korišćenjem argumenata sličnih

onima za Slučaj 1.

Page 13: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Međusobno isključivanje za

algoritam sa ceduljicama8

Lema (3.6): Ako je pi u kritičnoj sekciji, onda Number[i] > 0.

Dokaz je na osnovu neposredne indukcije.

Međusobno isključivanje: Predpos. da su pi i pk

istovremeno u KS.

Po Lemi 3.6, oba imaju Number > 0.

Po Lemi 3.5,

(Number[k],k) > (Number[i],i) i

(Number[i],i) > (Number[k],k)

Page 14: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Međusobno isključivanje za

algoritam sa ceduljicama8

Lema (3.6): Ako je pi u kritičnoj sekciji, onda Number[i] > 0.

Dokaz je na osnovu neposredne indukcije.

Međusobno isključivanje: Predpos. da su pi i pk

istovremeno u KS.

Po Lemi 3.6, oba imaju Number > 0.

Po Lemi 3.5,

(Number[k],k) > (Number[i],i) i

(Number[i],i) > (Number[k],k)

Page 15: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Algoritam sa ceduljicama:

Nema trajnog zaključavanja9

Pred. radi kontradikcije da postoji blokiran procesor.

Blokirani procesori čekaju u Liniji 5 ili 6 (iskazi čekanja), ne čekaju dok biraju broj.

Neka je pi blokiran procesor sa najmanjim parom (Number[i],i).

Bilo koji procesor koji ulazi u krit. sekc. nako što je pi

izabrao svoj broj, bira veći broj.

Svaki procesor sa manjim brojem konačno ulazi u KS (ne ostaje blokiran) i izlazi iz nje.

Zato pi ne može da čeka u Liniji 5 ili 6.

Page 16: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Algoritam sa ceduljicama:

Nema trajnog blokiranja9

Pred. radi kontradikcije da postoji blokiran procesor.

Blokirani procesori čekaju u Liniji 5 ili 6 (iskazi čekanja), ne čekaju dok biraju broj.

Neka je pi blokiran procesor sa najmanjim parom (Number[i],i).

Bilo koji procesor koji ulazi u krit. sekc. nako što je pi

izabrao svoj broj, bira veći broj.

Svaki procesor sa manjim brojem konačno ulazi u KS (ne ostaje blokiran) i izlazi iz nje.

Zato pi ne može da čeka u Liniji 5 ili 6.

Page 17: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Prostorna složenost

algoritma sa cedunjicama10

Broj deljenih promenljivih je 2n

Choosing su Bulove promenljive

Number promenljive su neograničene

Da li je moguće da algoritam koristi manje deljenog

prostora?

Page 18: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

ME algoritam: Ograničen prostor, 2-

procesora11

Koristi 3 binarne read/write deljene promenljive:

W[0] : inicijalno 0, u nju upisuje p0 a čita je p1

W[1] : inicijalno 0, u nju upisuje p1 a čita je p0

Priority : inicijalno 0, oba procesora je čitaju i

pišu

Page 19: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

ME algoritam bez međusobnog

blokiranja (ND = No Deadlock)12

Krećemo sa ograničenim algoritmom za 2procesora i ND uslovom, zatim proširujemo na NL uslov, i na kraju proširujemo na n procesora.

Neke ideje iz algoritma sa 2 procesora:

svaki procesor ima deljenu Bul. prom. W[i] koja ukazuje da li on želi da uđe u KS

p0 uvek ima prednost u odnosu na p1 ; asimetričan kod

Page 20: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

ME algoritam bez međusobnog

blokiranja13

Kod za ulaznu sekciju p0 :

1 .

2 .

3 W[0] := 1

4 .

5 .

6 wait until W[1] = 0

Kod za izlaznu sekciju p0 :

7 .

8 W[0] := 0

Page 21: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

ME algoritam bez međusobnog

blokiranja14

Kod za ulaznu sekciju p1 :

1 W[1] := 0

2 wait until W[0] = 0

3 W[1] := 1

4 .

5 if (W[0] = 1) then goto Line 1

6 .

Kod za izlaznu sekciju p1 :

7 .

8 W[1] := 0

Page 22: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Diskusija ME algoritam bez

međusobnog blokiranja15

Obezbeđuje međusobno isključivanje: procesori

koriste W promenljive da bi ovo obezbedili

Obezbeđuje da nema međusob. blokiranja (vežba)

Ali nije fer (moguće trajno zaključavanje)

Ispravka ovog nedostatka: procesori naizmenično

dobijaju veći prioritet:

deljena promenljiva Priority, oba procesora je

čitaju i pišu

Page 23: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

ME algoritam bez međusobnog i

bez trajnog blokiranja16

Kod za ulaznu sekciju:

1 W[i] := 0

2 wait until W[1-i] = 0 or Priority = i

3 W[i] := 1

4 if (Priority = 1-i) then

5 if (W[1-i] = 1) then goto Line 1

6 else wait until (W[1-i] = 0)

Kod za izlaznu sekciju:

7 Priority := 1-i

8 W[i] := 0

Page 24: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Analiza ME algoritma:

međusobno isključivanje17

Međusobno isključivanje: Pret. radi kontradikcije

da su p0 i p1 istovremeno u KS.

W[0] = W[1] = 1,

oba proc u KS

Page 25: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Analiza ME algoritma:

međusobno isključivanje17

Međusobno isključivanje: Pret. radi kontradikcije

da su p0 i p1 istovremeno u KS.

W[0] = W[1] = 1,

oba proc u KSp1 -jev naj-

noviji upis

1-ce u W[1]

(Linija 3)

Page 26: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Analiza ME algoritma:

međusobno isključivanje17

Međusobno isključivanje: Pret. radi kontradikcije

da su p0 i p1 istovremeno u KS.

W[0] = W[1] = 1,

oba proc u KSp1 -jev naj-

noviji upis

1-ce u W[1]

(Linija 3)

p0 -jev naj-

noviji upis

1-ce u W[0]

(Linija 3)

Page 27: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Analiza ME algoritma:

međusobno isključivanje17

Međusobno isključivanje: Pret. radi kontradikcije

da su p0 i p1 istovremeno u KS.

W[0] = W[1] = 1,

oba proc u KSp1 -jev naj-

noviji upis

1-ce u W[1]

(Linija 3)

p0 -jev naj-

noviji upis

1-ce u W[0]

(Linija 3)

p0 -jevo najnovije

čitanje W[1] (Linija 6):

mora da vrati 1, ne 0!

Page 28: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Analiza ME algoritma:

međusobno isključivanje17

Međusobno isključivanje: Pret. radi kontradikcije

da su p0 i p1 istovremeno u KS.

W[0] = W[1] = 1,

oba proc u KSp1 -jev naj-

noviji upis

1-ce u W[1]

(Linija 3)

p0 -jev naj-

noviji upis

1-ce u W[0]

(Linija 3)

p0 -jevo najnovije

čitanje W[1] (Linija 6):

mora da vrati 1, ne 0!

Page 29: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Analiza ME algoritma:

nema međusobnog blokiranja18

Korisno za pokazivanje da nema trajnog zaključa.

Ako jedan proc. ikad uđe u ostatak za uvek, drugi

proc. ne može biti trajno zaključan (starved).

Npr: Ako p1 uđe u ostatak za uvek, onda će p0 uvek

videti W[1] = 0.

Znači, bilo koje međusobno blokiranje bi blokiralo

oba proc.

Page 30: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Analiza ME algoritma:

nema međusobnog blokiranja19

Pred. radi kontradikcije da je došlo do među.

blok.

Pret. da Priority ostaje na 0 nakon što su se

oba proc. blokirali u svojim ulaznim sekcijama.

p0 i p1

blok. na ulazu,

Priority = 0

Page 31: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Analiza ME algoritma:

nema međusobnog blokiranja19

Pred. radi kontradikcije da je došlo do među.

blok.

Pret. da Priority ostaje na 0 nakon što su se

oba proc. blokirali u svojim ulaznim sekcijama.

p0 i p1

blok. na ulazu,

Priority = 0

p0 nije blokiran

u Lin. 2, prošao

Lin. 5, blokiran u

Lin. 6 sa W[0] = 1

čeka da

W[1] bude 0

Page 32: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Analiza ME algoritma:

nema međusobnog blokiranja19

Pred. radi kontradikcije da je došlo do među.

blok.

Pret. da Priority ostaje na 0 nakon što su se

oba proc. blokirali u svojim ulaznim sekcijama.

p0 i p1

blok. na ulazu,

Priority = 0

p0 nije blokiran

u Lin. 2, prošao

Lin. 5, blokiran u

Lin. 6 sa W[0] = 1

čeka da

W[1] bude 0

p1 ne dopire do

Lin. 6, blokiran

u Lin. 2 sa

W[1] = 0, čeka

da W[0] bude 0

Page 33: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Analiza ME algoritma:

nema međusobnog blokiranja19

Pred. radi kontradikcije da je došlo do među.

blok.

Pret. da Priority ostaje na 0 nakon što su se

oba proc. blokirali u svojim ulaznim sekcijama.

p0 i p1

blok. na ulazu,

Priority = 0

p0 nije blokiran

u Lin. 2, prošao

Lin. 5, blokiran u

Lin. 6 sa W[0] = 1

čeka da

W[1] bude 0

p0 vidi

W[1] = 0,

ulazi u KS

p1 prošao

Lin. 6, blokiran

u Lin. 2 sa

W[1] = 0, čeka

da W[0] bude 0

Page 34: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Analiza ME algoritma:

nema međusobnog blokiranja19

Pred. radi kontradikcije da je došlo do među.

blok.

Pret. da Priority ostaje na 0 nakon što su se

oba proc. blokirali u svojim ulaznim sekcijama.

p0 i p1

blok. na ulazu,

Priority = 0

p0 nije blokiran

u Lin. 2, prošao

Lin. 5, blokiran u

Lin. 6 sa W[0] = 1

čeka da

W[1] bude 0

p0 vidi

W[1] = 0,

ulazi u KS

p1 prošao

Lin. 6, blokiran

u Lin. 2 sa

W[1] = 0, čeka

da W[0] bude 0

Page 35: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Analiza ME algoritma:

nema trajnog zaključavanja20

Pred. radi kontradikcije da je p0 trajno zaključan.

Pošto nema među. blokiranja, p1 ulazi u KS beskonačno često.

Prvi put kad p1 izvrši Lin. 7 u izlaznoj sekciji nakon što je p0 blok. na ulazu, Priority se blokira na 0.

p0 blok.

na ulazu

Page 36: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Analiza ME algoritma:

nema trajnog blokiranja20

Pred. radi kontradikcije da je p0 trajno blokiran.

Pošto nema među. blokiranja, p1 ulazi u KS beskonačno često.

Prvi put kad p1 izvrši Lin. 7 u izlaznoj sekciji nakon što je p0 blok. na ulazu, Priority se blokira na 0.

p1 u Lin. 7;

Priority = 0

zauvek posle

p0 blok.

na ulazu

Page 37: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Analiza ME algoritma:

nema trajnog blokiranja20

Pred. radi kontradikcije da je p0 trajno blokiran.

Pošto nema među. blokiranja, p1 ulazi u KS beskonačno često.

Prvi put kad p1 izvrši Lin. 7 u izlaznoj sekciji nakon što je p0 blok. na ulazu, Priority se blokira na 0.

p1 u Lin. 7;

Priority = 0

zauvek posle

p0 blok.

na ulazu

p0 blokiran u

Lin. 6 sa

W[0] = 1, čeka

da W[1] bude 0

Page 38: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Analiza ME algoritma:

nema trajnog blokiranja20

Pred. radi kontradikcije da je p0 trajno blokiran.

Pošto nema među. blokiranja, p1 ulazi u KS beskonačno često.

Prvi put kad p1 izvrši Lin. 7 u izlaznoj sekciji nakon što je p0 blok. na ulazu, Priority se blokira na 0.

p1 u Lin. 7;

Priority = 0

zauvek posle

p0 blok.

na ulazu

p0 blokiran u

Lin. 6 sa

W[0] = 1, čeka

da W[1] bude 0

p1 ulazi u

ulaznu sekciju,

blokira se u

Lin. 2, čeka

da W[0] bude 0

Page 39: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Analiza ME algoritma:

nema trajnog blokiranja20

Pred. radi kontradikcije da je p0 trajno blokiran.

Pošto nema među. blokiranja, p1 ulazi u KS beskonačno često.

Prvi put kad p1 izvrši Lin. 7 u izlaznoj sekciji nakon što je p0 blok. na ulazu, Priority se blokira na 0.

p1 u Lin. 7;

Priority = 0

zauvek posle

p0 blok.

na ulazu

p0 blokiran u

Lin. 6 sa

W[0] = 1, čeka

da W[1] bude 0

p1 ulazi u

ulaznu sekciju,

blokira se u

Lin. 2, čeka

da W[0] bude 0

Page 40: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

ME algoritam za n procesora

21

Da li postoji mutex algoritam sa ograničenim

prostorom za n veće od 2 procesora?

Da!

Na osnovu pojma stabla za turnir: zamislimo

potpuno binarno stablo sa n-1 čvorova

stablo je semo ideja! ono ne predstavlja kanale za slanje

poruka

Svakom čvoru stabla se pridružuje kopija algoritma

za 2 procesora

uključuje zasebne kopije 3 deljene promenljive

Page 41: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Stablo za turnir (Tournament Tree)22

1

2 3

4 5 6 7

p0, p1 p2, p3 p4, p5 p6, p7

Page 42: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

ME algoritam sa stablom za turnir23

Svaki proc. počinje ulaznu sekciju u određenom listu (dva proc. po listu)

Proc. ide na sledeći nivo stabla posle pobedeu utakmici 2-proc. za tekući čvor stabla:

na levoj strani, igra ulogu p0

na desnoj strani, igra ulogu p1

Kada proc. pobedi u utakmici za koren stabla, on ulazi u KS.

Page 43: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Još o Alg. sa stablom za turnir24

Kod u knjizi je rekurzivan.

pi počinje u čvoru 2k + i/2,

igra ulogu pi mod 2, gde je k = log n -1.

Posle pobede u čvoru v, „KS" za čvor v je

ulazni kod za sve čvorove na putanji od predka čvora, a to je v/2, do korena

prava kritična sekcija

izlazni kod za sve čvorove na putanji od korena do v/2

Page 44: DISTRIBUIRANI ALGORITMI I SISTEMI · DISTRIBUIRANI ALGORITMI I SISTEMI Autor izvorne prezentacije: Prof. Jennifer Welch Iz kursa CSCE 668 Proleće 2014 Postavka 7: međusobno isključivanje

Analiza Alg. sa stablom za turnir25

Korektnost: zasniva se na korekt. algoritma za 2 procesora i strukturi turnira:

Projekcija prihvatljivog izvršenja alg. sa turnirom na određen čvor stabla daje prihvatljivo izvršenje alg. za 2 proc.

ME uslov alg. sa turnirom sledi iz ME usova alg. za 2 proc. u korenu stabla.

NL uslov za alg. sa turnirom sledi iz NL uslova za algoritme za 2 proc. u svim čvorovima stabla

Prostorna složenost: 3n Bulovih read/write deljenih promenljivih.