+ All Categories
Home > Documents > Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7...

Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7...

Date post: 20-Feb-2020
Category:
Upload: others
View: 4 times
Download: 0 times
Share this document with a friend
28
Distribuované systémy a výpočty X36DSV Jan Janeček (dnes Peter Macejko)
Transcript
Page 1: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

Distribuované systémy a výpočty

X36DSV

Jan Janeček(dnes Peter Macejko)

Page 2: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 2

Zablokování na prostředcích

R1 R

2R

3

P1

P2

P3

Page 3: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 3

Zablokování na prostředcích

R1 R

2R

3

P1

P2

P3

Rq

Page 4: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 4

Zablokování na prostředcích

R1 R

2R

3

P1

P2

P3

Asg

Page 5: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 5

Zablokování na prostředcích

R1 R

2R

3

P1

P2

P3

Rel

Page 6: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 6

Zablokování na prostředcích

R1 R

2R

3

P1

P2

P3

deadlock !

Page 7: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 7

Zablokování na prostředcíchDeadlock

1) Přidělení prostředku je výlučné v čase.2) Při čekání na prostředek může mít už jiný přidělený.3) Uvolnění prostředku jen z vlastní iniciativy.4) V grafu závislostí může vzniknout cyklus.

Řešenía) preventivní – pesimistické – apriorníb) dodatečné – optimistické – aposteriorní

Page 8: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 8

Prevence - Lomet

R1 R

2R

3

P1

P2

P3

Page 9: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 9

Prevence - Lomet

R1 R

2R

3

P1

P2

P3

Page 10: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 10

Prevence - Lomet

R1 R

2R

3

P1

P2

P3

Page 11: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 11

Prevence - Lomet

R1 R

2R

3

P1

P2

P3

Page 12: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 12

Prevence - Lomet

R1 R

2R

3

P1

P2

P3

Page 13: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 13

Prevence - Lomet

R1 R

2R

3

P1

P2

P3

Page 14: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 14

Prevence - Lomet

R1 R

2R

3

P1

P2

P3

Page 15: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 15

Prevence - Lomet

R1 R

2R

3

P1

P2

P3

Page 16: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 16

Prevence - Lomet

R1 R

2R

3

P1

P2

P3

a tady musim počkat ...

Page 17: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 17

Prevence – Lomet (lokální)

R1 R

2R

3

P1

P2

P3

ale jak to zařídit ?

Page 18: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 18

Prevence – Lomet (lokální)

R1 R

2R

3

P1

P2

P3

ale jak to zařídit ?… časové známky

Page 19: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 19

Detekce

R1 R

2

P1

P2

aposteriorioptimistická strategie

při uváznutí- výběr procesu (oběti)- uvolnění prostředků- vrácení výpočtu procesu

Page 20: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 20

Detekce

Rq1

transakce

Rq1

Rq1

roll-back

Page 21: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 21

DetekceSystém:

transakce T1 a T2sdílený prostředek R1 – přidělen T1časové známky začátku transakcí e(T1) a e(T2)přijde žádost od T2

Řešení 1if e(T2) < e(T1) then halt T2

else kill T2

Řešení 2if e(T2) < e(T1) then kill T1

else halt T2

!!! opakování transakce vždy s původní časovou známkou !!!

Page 22: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 22

Zablokování při komunikaci

P5

P1

P3

P2

P4

Page 23: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 23

Zablokování při komunikaci

P5

P1

P3

P2

P4

knot - zauzlení

Page 24: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 24

Zablokování při komunikaciProces P

aktivní x pasivnímnožina závislostí P – dependency set of P – DS(P)

Zablokování na množině S1) každý P z S je pasivní2) pro každý P z S platí, že DS(P) je podmnožinou Sknot = zauzlení – podgraf grafu závislostí odpovídajicí dané S

Zdánlivé zablokování- problém se zjišťováním globálního stavu

Page 25: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 25

Zablokování při komunikaciChandy – Misra - Hass

Proměnné – legendaLast[i] - poslední známé číslo testu od procesu iWait[i] - informace o aktivitě procesu iParent[i] - informace o rodiči procesu v testu od iNumber[i] - počet nezodpovězených dotazů v testu od i

Komunikační primitiva – legendaQUESTION(k,m,j,i) a ANSWER(k,m,j,i) kde

k – id zahajovacího procesu, m – pořadové číslo testu,j – odesílatel žádosti, i – příjemce žádosti

begin inicializace for i:=1 to n do begin Last[i] := 0; Wait[i] := F endend

Page 26: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 26

Zablokování při komunikaciChandy – Misra - Hass

when decision START DETECTION and State=PASSIVE do begin Last[i] := Last[i]+1; Wait[i] := T; for j in DSet do send QUESTION(i,Last[i],i,j) to j Number[i] := card(DSet) end

when received ANY OTHER MESSAGE do zpráva aplikace begin State := ACTIVE; for i:=1 to N do Wait[i] := F end

Page 27: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 27

Zablokování při komunikaciChandy – Misra - Hass

příjem dotazu when received QUESTION(k,m,j,i) and State=PASSIVE do if m>Last[k] then begin Last[k] := m; Parent[k] := j; Wait[k] := T; for r in DSet do send QUESTION(k,m,i,r) to r; Number[k] := card(DSet) end else if Wait[k] and m=Last[k] then send ANSWER(k,m,i,j) to j

Page 28: Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7 Zablokování na prostředcích Deadlock 1) Přidělení prostředku je výlučné

X36DSV - Distribuované systémy a výpočty (9) 28

Zablokování při komunikaciChandy – Misra - Hass

when received ANSWER(k,m,r,i) and State=PASSIVE do if m=Last[k] and Wait[k] then begin Number[k] := Number[k]-1; if Number[k]=0 then if k=i then { Pi je zablokován } else send ANSWER(k,m,i,Parent[k]) to Parent[i] Wait[k] := F end


Recommended