Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7...
Transcript of Distribuované systémy a výpočty - cvut.cz...X36DSV - Distribuované systémy a výpočty (9) 7...
![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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/1.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/2.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/3.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/4.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/5.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/6.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/7.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/8.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/9.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/10.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/11.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/12.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/13.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/14.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/15.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/16.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/17.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/18.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/19.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/20.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/21.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/22.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/23.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/24.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/25.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/26.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/27.jpg)
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é](https://reader033.fdocuments.net/reader033/viewer/2022041810/5e574d610f98e446476ad78b/html5/thumbnails/28.jpg)
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