Download - Ch04 Deadlock
-
8/16/2019 Ch04 Deadlock
1/44
Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
4. Deadlock
Moâ hình heä thoáng
Resource Allocation Graph (RAG)
Phöông phaùp giaûi queát !ea!loc"
#ea!loc" pre$ention
#ea!loc" a$oi!ance #ea!loc" !etection
#ea!loc" reco$er
-
8/16/2019 Ch04 Deadlock
2/44
Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
%aán &e' !ea!loc" trong heäthoáng Tình huoáng: oät taäp caùc process * loc"e!+ o,i process
giö- ta.i ngueân $a. &ang chô. ta.i ngueân a. process"haùc trong taäp &ang giö-/
%0 !u1 23 Giaû söû heä thoáng coù oät printer $a. oät #%# !ri$e/ 4uaù
trình P2 &ang giö- #%# !ri$e+ quaù trình P5 &ang giö- printer/6aâ giô. P2 eâu ca'u printer+ $a. P5 eâu ca'u #%# !ri$e/
%0 !u1 53 7eaphore A $a. 6+ "hôûi ta1o a8ng 2
P9 P2:ait(A); :ait(6);
:ait(6); :ait(A);
-
8/16/2019 Ch04 Deadlock
3/44
Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Moâ hình hoùa heä thoáng
-
8/16/2019 Ch04 Deadlock
4/44
Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Iie'u "ieän ca'n &e Jaû ra!ea!loc"6oán &ie'u "ieän ca'n (necessar con!ition) &e
Jaû ra !ea!loc"
1 !utua" e#c"u$ion: 0t nhaát oät ta.i ngueân &öô1cgiö- theo nonsharale o!e ($0 !u1? printer; $0 !u1
sharale resource? rea!Konl Eles)/
% Ho"d and &ait : oät process &ang giö- 0t nhaátoät ta.i ngueân $a. &ô1i theâ ta.i ngueân !o
quaù trình "haùc &ang giö-/
-
8/16/2019 Ch04 Deadlock
5/44
Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Iie'u "ieän ca'n &e Jaû ra!ea!loc" (tt)
' (o )reem)tion: (L no resource preeption) "hoâng
laá la1i ta.i ngueân &a- caáp phaùt cho process+ngoa1i trö. "hi process tö1 hoa.n traû noù/
* +ircu"ar &ait : to'n ta1i oät taäp P9+=+PnN caùc
quaù trình &ang &ô1i sao cho P9 &ô1i oät ta.i ngueân a. P2 &ang giö-
P2 &ô1i oät ta.i ngueân a. P5 &ang giö-
=
Pn &ô1i oät ta.i ngueân a. P9 &ang giö-
-
8/16/2019 Ch04 Deadlock
6/44
Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Resource Allocation Graph Re$ource a""ocation gra)h (RAG) la. &o' th* coù
höôùng+ $ôùi taäp &Onh , $a. taäp ca1nh -
3 >aäp &Onh , go' 5 loa1i? . L .2+ .5+=+ .n N (>aát caû process trong heä thoáng)
R L R2+ R5+=+ Rm N (>aát caû caùc loa1i ta.i ngueân trongheä thoáng)
3 >aäp ca1nh - go' 5 loa1i? Re/ue$t edge: ca1nh coù höôùng tö. .i &eán R 0 $$ignment edge: ca1nh coù höôùng tö. R 0 &eán .i
-
8/16/2019 Ch04 Deadlock
7/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Resource Allocation Graph (tt)ù hieäu
Process?
Qoa1i ta.i ngueân $ôùi thö1c the?
.i eâu ca'u oät thö1c the cuûa R 0 ?
.i &ang giö- oät thö1c the cuûa R 0 ?
P i
Pi
Pi
R j
R j
R j
-
8/16/2019 Ch04 Deadlock
8/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
%0 !u1 $e' RAGR
1 R
3
P1
P2
P3
R2
R4
-
8/16/2019 Ch04 Deadlock
9/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
%0 !u1 $e' RAG (tt)R
1 R
3
P1
P2
P3
R2
R4
#ea!loc" Jaû ra
-
8/16/2019 Ch04 Deadlock
10/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
RAG $a. !ea!loc" %0 !u1 oät RAG chöùa chu trình nhöng "hoâng Jaû
ra !ea!loc"? tröô.ng hô1p PR traû la1i instance cuûaR5/
R1
P1
P2
P3R
2
P4
-
8/16/2019 Ch04 Deadlock
11/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
RAG $a. !ea!loc" (tt) RAG "hoâng chöùa chu trình ⇒ "hoâng coù !ea!loc" RAG chöùa oät (ha nhie'u) chu trình
3 Teáu o,i loa1i ta.i ngueân chO coù oät thö1c the ⇒ !ea!loc"
3 Teáu o,i loa1i ta.i ngueân coù nhie'u thö1c the ⇒ coù
the Jaû ra !ea!loc"
-
8/16/2019 Ch04 Deadlock
12/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
@aùc phöông phaùp giaûi queát!ea!loc" (2)F 6a phöông phaùp
F 2) 6aûo &aû ra8ng heä thoáng "hoâng rôi$a.o tình tra1ng !ea!loc" a8ng caùch nga2n (pre$enting) hoaUc tra3nh (a$oi!ing) !ea!loc"/
F haùc ieät
3 TgaVn !ea!loc"? "hoâng cho pheùp (0t nhaát) oättrong &ie'u "ieän ca'n cho !ea!loc"
3 >raùnh !ea!loc"? caùc quaù trình ca'n cung caápthoâng tin $e' ta.i ngueân noù ca'n &e heä thoángcaáp phaùt ta.i ngueân oät caùch th0ch hô1p
-
8/16/2019 Ch04 Deadlock
13/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
@aùc phöông phaùp giaûi queát!ea!loc" (5)F 5) @ho pheùp heä thoáng $a.o tra1ng thaùi
!ea!loc"+ nhöng sau &où phaùt hieän !ea!loc"$a. phu1c ho'i heä thoáng/
F W) 6oû qua o1i $aán &e'+ Je nhö !ea!loc"
"hoâng ao giô. Jaû ra trong heä thoáng/haù nhie'u heä &ie'u ha.nh söû !u1ng phöông
phaùp na./3 #ea!loc" "hoâng &öô1c phaùt hieän+ !a,n &eán
$ieäc giaû hieäu suaát cuûa heä thoáng/ @uoáicu.ng+ heä thoáng coù the ngöng hoa1t &oäng$a. phaûi &öô1c "hôûi &oäng la1i/
-
8/16/2019 Ch04 Deadlock
14/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
TgaVn !ea!loc" TgaVn !ea!loc" a8ng caùch ngaVn oät trong
&ie'u "ieän ca'n cuûa !ea!loc"
2/ TgaVn utual eJclusion3 &oái $ôùi nonsharale resource ($!? printer)? "hoâng la.
&öô1c3 &oái $ôùi sharale resource ($!? rea!Konl Ele)? "hoângca'n thieát
-
8/16/2019 Ch04 Deadlock
15/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
TgaVn !ea!loc" (tt)5/ TgaVn
-
8/16/2019 Ch04 Deadlock
16/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
TgaVn !ea!loc" (tt)W/ TgaVn To Preeption? neáu process A coù giö- ta.i ngueân
$a. &ang eâu ca'u ta.i ngueân "haùc nhöng ta.i ngueânna. chöa caáp phaùt nga &öô1c thì3 @aùch 2?
-
8/16/2019 Ch04 Deadlock
17/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
TgaVn !ea!loc" (tt)/ TgaVn @ircular Xait? taäp caùc loa1i ta.i ngueân trong heä
thoáng &öô1c gaùn oät thöù tö1 hoa.n toa.n/
3 %0 !u1? [(tape !ri$e) L 2+ [(!is" !ri$e) L \+ [(printer) L 25 [ la. ha. &*nh ngh]a thöù tö1 treân taäp caùc loa1i ta.i
ngueân/
-
8/16/2019 Ch04 Deadlock
18/44
-
8/16/2019 Ch04 Deadlock
19/44
-
8/16/2019 Ch04 Deadlock
20/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
>ra1ng thaùi saHe $a. unsaHe Moät tra1ng thaùi cuûa heä thoáng &öô1c go1i la. an
toaøn (saHe) neáu to'n ta1i oät chuo4i an toaøn (saHe sequence)/
-
8/16/2019 Ch04 Deadlock
21/44
-
8/16/2019 Ch04 Deadlock
22/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
@huo,i an toa.n (tt)%0 !u1? a1i thô.i &ie t9 + giaû söû heä thoáng co.n W tape
!ri$e sadn sa.ng/
3 @huo,i 〈P2+ P9+ P5 〉 la. chuo,i an toa.n ⇒ heä thoáng la. antoa.n
P9 29 \P2 5
P5 5
ca'n toái &a &ang giö-
-
8/16/2019 Ch04 Deadlock
23/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
@huo,i an toa.n (tt) Giaû söû ta1i thô.i &ie t2+ P5 eâu ca'u $a. &öô1c
caáp phaùt 2 tape !ri$e3 co.n 5 tape !ri$e sadn sa.ng
F
-
8/16/2019 Ch04 Deadlock
24/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
f töôûng cho giaûi phaùp traùnh !ea!loc"? hi
oät process eâu ca'u oät ta.i ngueân &angsadn sa.ng+ heä thoáng se- "ie tra? neáu $ieäccaáp phaùt na. "hoâng !a,n &eán tình tra1ngunsaHe thì se- caáp phaùt nga/
-
8/16/2019 Ch04 Deadlock
25/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
>ra1ng thaùi saHeCunsaHe $a.!ea!loc" Teáu heä thoáng &ang ôû tra1ng thaùi saHe ⇒ "hoâng !ea!loc"/
Teáu heä thoáng &ang ôû tra1ng thaùi unsaHe ⇒ coù the !a,n&eán !ea!loc"/ >raùnh !ea!loc" a8ng caùch caáp phaùt ta.i ngueân sao cho
heä thoáng "hoâng &i &eán tra1ng thaùi unsaHe/
safe
deadlock unsafe
-
8/16/2019 Ch04 Deadlock
26/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Giaûi thuaät an"er Afp !u1ng cho heä thoáng caáp phaùt ta.i ngueân
trong &où o,i loa1i ta.i ngueân coù the coù nhie'uinstance/
6aYt chöôùc nghieäp $u1 ngaân ha.ng (an"ing)
Iie'u "ieän3 Mo,i process phaûi "hai aùo soá löô1ng thö1c the (instance)
toái &a cuûa o,i loa1i ta.i ngueân a. noù ca'n
3 hi process eâu ca'u ta.i ngueân thì coù the phaûi &ô1iaUc !u. ta.i ngueân &öô1c eâu ca'u &ang coù sadn
3 hi process &a- coù &öô1c &a' &uû ta.i ngueân thì phaûihoa.n traû trong oät "hoaûng thô.i gian hö-u ha1n na.o &où/
-
8/16/2019 Ch04 Deadlock
27/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Giaûi thuaät an"er (tt)n: soá process+ m: soá loa1i ta.i ngueân
@aùc caáu truùc !ö- lieäu 6ai"a7"e: $ector &oä !a.i m
A$ailale ^ L 5 ⇔ loa1i ta.i ngueân R 0 coù 5 instance sadnsa.ng
!a# : a traän n ×
MaJ i+ ^ L " ⇔ quaù trình Pi eâu ca'u toái &a " instance cuûaloa1i ta.i ngueân R ^
""ocation: a traän n × Allocationi+ ^ L " ⇔ Pi &a- &öô1c caáp phaùt " instance cuûa R^
(eed: a traän n × Tee!i+ ^ L " ⇔ Pi coù the eâu ca'u theâ " instance cuûa R^ Thaän Jeùt? Tee!i+ ^ L MaJi+ ^ 3 Allocationi+ ^
ù hieäu ≤ ⇔ i ≤ i+ $0 !u1 (9+ W+ 5+ 2) ≤ (2+ j+ W+ 5)
û
-
8/16/2019 Ch04 Deadlock
28/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Giaûi thuaät "ie tra tra1ngthaùi an toa.n
>ì oät chuo,i an toa.n
2/ Go1i Xor" $a. [inish la. hai $ector &oä !a.i la. $a. n/ hôûi ta1oXor" ?L A$ailale
[inish i ?L Halse+ i L 2+=+ n
5/ >ì i thoûa(a) [inish i L Halse
() Tee!i ≤ Xor" (ha.ng thöù i cuûa Tee!)
Teáu "hoâng to'n ta1i i nhö $aä+ &eán öôùc /
W/ Xor" ?L Xor" k Allocationi[inish i ?L truequa $e' öôùc 5/
/ Teáu [inish i L true+ i L 2+=+ n+ thì heä thoáng &ang ôû tra1ngthaùi saHe
>hô.i gian cha1 cuûa giaûi thuaät la. 8(mn5)
û á ù
-
8/16/2019 Ch04 Deadlock
29/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Giaûi thuaät caáp phaùt ta.ingueânGo1i Requesti (&oä !a.i ) la. request $ector cuûa
process Pi /Requesti ^ L " ⇔ Pi ca'n " instance cuûa ta.ingueân R ^ /
2/ Teáu Requesti ≤ Tee!i thì &eán öôùc 5/ Teáu"hoâng+ aùo lo,i $ì process &a- $öô1t eâu ca'utoái &a/
5/ Teáu Requesti ≤ A$ailale thì qua öôùc W/ Teáu"hoâng+ Pi phaûi chô. $ì ta.i ngueân "hoâng co.n&uû &e caáp phaùt/
û á ù
-
8/16/2019 Ch04 Deadlock
30/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Giaûi thuaät caáp phaùt ta.ingueân (tt)W/ Giaû &*nh caáp phaùt ta.i ngueân &aùp öùng eâu
ca'u cuûa Pi a8ng caùch caäp nhaät tra1ng thaùi heäthoáng nhö sau?A$ailale ?L A$ailale – RequestiAllocationi ?L Allocationi k RequestiTee!i ?L Tee!i 3 Requesti
Afp !u1ng giaûi thuaät "ie tra tra1ng thaùi an toa.n leân tra1ngthaùi treân
Teáu tra1ng thaùi la. saHe thì ta.i ngueân &öô1c caáp thö1c sö1cho Pi /
Teáu tra1ng thaùi la. unsaHe thì Pi phaûi &ô1i+ $a.F phu1c ho'i tra1ng thaùi?
A$ailale ?L A$ailale k Request iAllocationi ?L Allocationi − RequestiTee!i ?L Tee!i k Requesti
Gi ûi h ä "i 1 h ùi
-
8/16/2019 Ch04 Deadlock
31/44Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Giaûi thuaät "ie tra tra1ng thaùian toa.n 3 %0 !u1
@où \ process .9 +=+ .
@où W loa1i ta.i ngueân? (coù 29 instance)+ 9 (\ instance)$a. + (j instance)/
>ra1ng thaùi caáp phaùt ta.i ngueân cuûa heä thoáng ta1ithô.i &ie T 9
Allocation MaJ A$ailale Tee! 9 + 9 + 9 + 9 +
P9 9 2 9 j \ W W W 5 j W
P2 5 9 9 W 5 5 2 5 5
P5 W 9 5 9 5 m 9 9
PW 5 2 2 5 5 5 9 2 2
P 9 9 5 W W W 2
G> "i 1 h ùi
-
8/16/2019 Ch04 Deadlock
32/44
Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
G> "ie tra tra1ng thaùi antoa.n 3 %! (tt)
Allocation Need Work
A B C A B C A B C
P 0 0 1 0 7 4 3 3 3 2
P 1 2 0 0 1 2 2
P 2 3 0 2 6 0 0
P 3 2 1 1 0 1 1
P 4 0 0 2 4 3 1
#u.ng giaûi thuaät "ie tra tra1ng thaùi+ tì &öô1c oät
chuo,i an toa.n la. 〈.2+ .W+ .+ .5+ .9 〉?
7 4 3
7 4 5
10 4 7 10 5 7
5 3 2
G> á h ù i â
-
8/16/2019 Ch04 Deadlock
33/44
Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
G> caáp phaùt ta.i ngueân 3%0 !u1 eâu ca'u (2+ 9+ 5) cuûa P2 coù thoûa &öô1c "hoâng3 ie tra &ie'u "ieän Request2 ≤ A$ailale?
(2+ 9+ 5) ≤ (W+ W+ 5) la. &uùng3 Giaû söû &aùp öùng eâu ca'u+ "ie tra tra1ng thaùi ôùi coù phaûi la. saHe ha "hoâng?
3 >ra1ng thaùi ôùi la. saHe (chuo,i an toa.n la. 〈P2+ PW+ P+ P9+ P5 〉)+ $aä coù the caáp phaùt ta.i ngueân cho P 2/
Allocation Tee! A$ailale
9 + 9 + 9 +P9 9 2 9 j W 5 W 9
P2 W 9 5 9 5 9
P5 W 9 5 m 9 9
PW 5 2 2 9 2 2P 9 9 5 W 2
G> á h ù i â
-
8/16/2019 Ch04 Deadlock
34/44
Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
G> caáp phaùt ta.i ngueân 3%0 !u1 (tt)
PR eâu ca'u (W+ W+ 9) hoaUc P9 eâu ca'u (9+ 5+ 9)
thì coù thoûa a-n &öô1c ha "hoâng
ù
-
8/16/2019 Ch04 Deadlock
35/44
Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Phaùt hieän !ea!loc" @haáp nhaän Jaû ra !ea!loc" trong heä thoáng+
"ie tra tra1ng thaùi heä thoáng a8ng giaûithuaät phaùt hieän !ea!loc"/F Teáu coù !ea!loc" thì tieán ha.nh phu1c ho'i heä
thoáng
@aùc giaûi thuaät phaùt hieän !ea!loc" thöô.ngsöû !u1ng RAG/
Giaûi thuaät phaùt hieän !ea!loc" &öô1c thieát "eá
cho o,i tröô.ng hô1p sau2/ Mo,i loa1i ta.i ngueân chO coù oät thö1c the5/ Mo,i loa1i ta.i ngueân coù the coù nhie'u thö1c the
M ,i l 1i t i â h ù
-
8/16/2019 Ch04 Deadlock
36/44
Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Mo,i loa1i ta.i ngueân chO coùoät thö1c the
7öû !u1ng &ait;or gra)h3
XaitKHor graph &öô1c !a,n Juaát tö. RAG a8ng caùch oû caùc no!eieu !ie,n ta.i ngueân $a. gheùp caùc ca1nh töông öùng? @où ca1nh tö. .i &eán . 0 ⇔ .i &ang chô. ta.i ngueân tö. . 0
Go1i &*nh ". oät giaûi thuaät "ie tra coù to'n ta1i chu trìnhtrong :aitKHor graph ha "hoâng/ Giaûi thuaät phaùt hieän chutrình coù thô.i gian cha1 la. 8(n 5)+ $ôùi n la. soá &Onh cuûagraph/
R1 R3 R4
P2P1 P3
P5
R2 R5P4
P2P1 P3
P5
P4
M ,i l 1i t i â ù
-
8/16/2019 Ch04 Deadlock
37/44
Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Mo,i loa1i ta.i ngueân coùnhie'u thö1c the
Phöông phaùp !u.ng :aitKHor graph "hoâng aùp !u1ng &öô1c cho
tröô.ng hô1p o,i loa1i ta.i ngueân coù nhie'u instance/
Giaûi thuaät phaùt hieän !ea!loc" tröô.ng hô1p o,i loa1i ta.i
ngueân coù nhie'u instance? caùc caáu truùc !ö- lieäu
F 6ai"a7"e: $ector &oä !a.i
F soá instance sadn sa.ng cuûa o,i loa1i ta.i ngueân
F ""ocation: a traän n ×
F soá instance cuûa o,i loa1i ta.i ngueân &a- caáp phaùt cho o,i
process
F Re/ue$t : a traän n ×
F eâu ca'u hieän ta1i cuûa o,i process/
F Request i+ ^ L " ⇔ Pi &ang eâu ca'u theâ " instance cuûa R^
Gi ûi th ät h ùt hi ä
-
8/16/2019 Ch04 Deadlock
38/44
Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Giaûi thuaät phaùt hieän!ea!loc"2/ @aùc ieán Wor5 $a.
-
8/16/2019 Ch04 Deadlock
39/44
Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Giaûi thuaät phaùt hieän!ea!loc" (tt) Thaän Jeùt?
3 hi giaûi thuaät phaùt hieän !ea!loc" "hoâng thaá heäthoáng &ang !ea!loc"+ chöa chaYc trong töông lai heäthoáng $a,n "hoâng !ea!loc"/
Gi ûi th ät h ùt hi ä
-
8/16/2019 Ch04 Deadlock
40/44
Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Giaûi thuaät phaùt hieän!ea!loc" 3 %0 !u1
-
8/16/2019 Ch04 Deadlock
41/44
Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Giaûi thuaät phaùt hieän!ea!loc" 3 %0 !u1 (tt)
.5 eâu ca'u theâ oät instance cuûa +/ Ma traän Request
nhö sau?
Request
9 +
.9 9 9 9
.2 5 9 5
.5 9 9 2
.W 2 9 9
. 9 9 5
3 >ra1ng thaùi cuûa heä thoáng la. gì (saHe+ unsaHe+ !ea!loc")
@où the thu ho'i ta.i ngueân &ang giö- ôûi process .9 nhöng$a,n "hoâng &uû &aùp öùng eâu ca'u cuûa caùc process "haùc/
F %aä to'n ta1i !ea!loc"+ ao go' caùc process .2+ .5+ .W+ $a. . /
Ph 1 h 'i "h ûi ! !l "
-
8/16/2019 Ch04 Deadlock
42/44
Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Phu1c ho'i "hoûi !ea!loc" @aùc giaûi phaùp "hi phaùt hieän !ea!loc"
3 aùo ngöô.i $aän ha.nh (operator)+ ngöô.i na. se- Jöûlù tieáp
hoaUc3 heä thoáng tö1 &oäng phu1c ho'i a8ng caùch phaù
!ea!loc"?
Giaûi phaùp chaá !öùt quaù trìnhhoaUc
Giaûi phaùp laá la1i ta.i ngueân
Phu1c ho'i "hoûi !ea!loc"? @haá
-
8/16/2019 Ch04 Deadlock
43/44
Khoa Khoa Hoïc & K õ Thuaät Maù Tính – Ñaïi Hoïc Baùch
Phu1c ho'i "hoûi !ea!loc"? @haá!öùt quaù trình
Phu1c ho'i heä thoáng "hoûi !ea!loc" a8ng caùch
3 @haá !öùt taát caû process * !ea!loc"e!+ hoaUc3 @haá !öùt la'n löô1t tö.ng process cho &eán "hi "hoâng co.n!ea!loc" 7öû !u1ng giaûi thuaät phaùt hieän !ea!loc" &e Jaùc &*nh
co.n !ea!loc" ha "hoâng
#ö1a treân eáu toá na.o &e cho1n process ca'n &öô1cchaá !öùt3 Ioä öu tieân cuûa process3 >hô.i gian &a- thö1c thi cuûa process $a. thô.i gian co.n la1i
3 Qoa1i ta.i ngueân a. process &a- söû !u1ng3 >a.i ngueân a. process ca'n theâ &e hoa.n taát coâng $ieäc3 7oá löô1ng process ca'n &öô1c chaá !öùt3 Process la. interacti$e process ha atch process
Phu1c ho'i "hoûi !ea!loc"? Qaá la1i
-
8/16/2019 Ch04 Deadlock
44/44
Phu1c ho'i "hoûi !ea!loc"? Qaá la1ita.i ngueân
Qa'n löô1t laá la1i ta.i ngueân tö. caùc process+ caáp
phaùt chuùng cho process "haùc cho &eán "hi "hoângco.n !ea!loc" nö-a/
@aùc $aán &e' "hi thu ho'i ta.i ngueân?3 @ho1n `na1n nhaân? cho1n ta.i ngueân $a. process na.o (coù
the !ö1a treân soá ta.i ngueân sôû hö-u+ thô.i gian @P &a-tieâu toán+///)
3 Rollac"? rollac" process * laá la1i ta.i ngueân trôû $e'tra1ng thaùi saHe+ ro'i tieáp tu1c process tö. tra1ng thaùi &où/#o &où heä thoáng ca'n löu giö- oät soá thoâng tin $e'tra1ng thaùi caùc process &ang thö1c thi/
3 7tar$ation? &e traùnh star$ation+ phaûi aûo &aû "hoângcoù process na.o a. luoân * laá la1i ta.i ngueân o,i "hiphu1c ho'i "hoûi !ea!loc"/