Ch04 Deadlock

  • Upload
    dinesh

  • View
    268

  • Download
    0

Embed Size (px)

Citation preview

  • 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"/