chapter 5: deadlock

50
Chapter 5: Chapter 5: DEADLOCK DEADLOCK

Upload: kobe

Post on 16-Jan-2016

86 views

Category:

Documents


0 download

DESCRIPTION

Chapter 5: DEADLOCK. Chương 5 : DEADLOCK. Nội dung: Ñònh nghóa deadlock Ñieàu kieän ñeå coù deadlock Caùc phöông phaùp giaûi quyeát Ngaên ngöøa deadlock Traùnh deadlock Phaùt hieän deadlock Phuïc hoài deadlock Baøi taäp. P1. 10KB. 8KB. P2. 8KB. spooler. 4KB. 3KB. P3. 7KB. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter 5: DEADLOCK

Chapter 5: Chapter 5: DEADLOCKDEADLOCK

Page 2: Chapter 5: DEADLOCK

2

Chương 5 : DEADLOCKChương 5 : DEADLOCKNội dung:Nội dung: Ñònh nghóa deadlockÑònh nghóa deadlock Ñieàu kieän ñeå coù deadlockÑieàu kieän ñeå coù deadlock Caùc phöông phaùp giaûi quyeátCaùc phöông phaùp giaûi quyeát

Ngaên ngöøa deadlockNgaên ngöøa deadlock Traùnh deadlockTraùnh deadlock Phaùt hieän deadlockPhaùt hieän deadlock Phuïc hoài deadlockPhuïc hoài deadlock

Baøi taäpBaøi taäp

Page 3: Chapter 5: DEADLOCK

3

15KB buffer

8KB

4KB

3KB

printer

10KB

8KB

7KB

P1

P2

P3

spooler

Taéc ngheõn trong giao thoâng

Taéc ngheõn trong quaûn lyù in aán

Ví duïVí duï

Page 4: Chapter 5: DEADLOCK

4

Naêm nhaø trieát hoïc cuøng ngoài aên toái vôùi moùn spaghetti noåi tieáng. Moãi nhaø trieát hoïc duøng 2 caùi nóa ñeå coù theå aên spaghetti. Nhöng treân baøn chæ coù toång coäng 5 caùi nóa ñeå xen keõ vôùi 5 caùi ñóa. Neáu 5 nhaø trieát hoïc ñeàu caàm 5 caùi nóa beân traùi cuøng luùc, thì seõ khoâng coù ai coù caùi nóa beân phaûi ñeå coù theå baét ñaàu thöôûng thöùc spaghetti.

BAØI TOAÙN VEÀ 5 TRIEÁT GIA AÊN TOÁI

Page 5: Chapter 5: DEADLOCK

5

Moãi tieán trình trong taäp hôïp ñeàu chôø Moãi tieán trình trong taäp hôïp ñeàu chôø ñôïi moät söï kieän maø chæ coù moät tieán ñôïi moät söï kieän maø chæ coù moät tieán trình khaùc trong taäp hôïp môùi coù theå trình khaùc trong taäp hôïp môùi coù theå phaùt sinh.phaùt sinh.

Hay : Moãi tieán trình trong taäp hôïp ñeàu Hay : Moãi tieán trình trong taäp hôïp ñeàu chôø ñöôïc caáp phaùt taøi nguyeân hieän chôø ñöôïc caáp phaùt taøi nguyeân hieän ñang bò moät quaù trình khaùc cuõng ôû ñang bò moät quaù trình khaùc cuõng ôû traïng thaùi blocked chieám giöõ.traïng thaùi blocked chieám giöõ.

Moät heä thoáng bò deadlock : coù tieán trình Moät heä thoáng bò deadlock : coù tieán trình bò deadlock.bò deadlock.

ÑÒNH NGHÓAÑÒNH NGHÓA

Page 6: Chapter 5: DEADLOCK

6

VÍ DUÏ & BAÛN CHAÁT VÍ DUÏ & BAÛN CHAÁT DEADLOCKDEADLOCK

Hai tieán trình bò deadlock:Hai tieán trình bò deadlock:

Process1Process1

P(S1);P(S1);

P(S2);P(S2);Critical Critical Section;Section;

V(S1);V(S1);

V(S2);V(S2);

Process2Process2

P(S2);P(S2);

P(S1);P(S1);Critical Critical Section;Section;

V(S2);V(S2);

V(S1);V(S1);

Process1

R1

Process2

R2

Daïng deadlock:

Page 7: Chapter 5: DEADLOCK

7

DEADLOCK VAØ TRÌ DEADLOCK VAØ TRÌ HOAÕN VOÂ HAÏN ÑÒNHHOAÕN VOÂ HAÏN ÑÒNH DeadlockDeadlock

Ñôïi söï kieän Ñôïi söï kieän khoâng bao giôø xaûy rakhoâng bao giôø xaûy ra Nguyeân nhaân ?Nguyeân nhaân ?

Trì hoaõn voâ haïn ñònhTrì hoaõn voâ haïn ñònh ( (Indefinite Indefinite postponementpostponement)) Ñôïi söï kieän Ñôïi söï kieän coù theå xaûy racoù theå xaûy ra nhöng nhöng

khoâng xaùc ñònh thôøi ñieåmkhoâng xaùc ñònh thôøi ñieåm Bieåu hieän nhö deadlockBieåu hieän nhö deadlock Nguyeân nhaân ?Nguyeân nhaân ?

Deadlock coù khaùc voøng laëp voâ haïn ?Deadlock coù khaùc voøng laëp voâ haïn ?

Page 8: Chapter 5: DEADLOCK

8

ÑIEÀU KIEÄN XAÛY RA ÑIEÀU KIEÄN XAÛY RA DEADLOCKDEADLOCK

1.1. Coù söû duïng taøi nguyeân khoâng theå Coù söû duïng taøi nguyeân khoâng theå chia seû (chia seû (mutual exclusion)mutual exclusion)

2.2. Söï chieám giöõ vaø yeâu caàu theâm taøi Söï chieám giöõ vaø yeâu caàu theâm taøi nguyeân (nguyeân (wait forwait for ) )

3.3. Khoâng thu hoài taøi nguyeân töø tieán Khoâng thu hoài taøi nguyeân töø tieán trình ñang giöõ chuùng (trình ñang giöõ chuùng (no-preemptionno-preemption))

4.4. Toàn taïi moät chu trình trong ñoà thò Toàn taïi moät chu trình trong ñoà thò caáp phaùt taøi nguyeân (caáp phaùt taøi nguyeân (circular-wait)circular-wait)

Page 9: Chapter 5: DEADLOCK

9

ÑOÀ THÒ CAÁP PHAÙT TAØI ÑOÀ THÒ CAÁP PHAÙT TAØI NGUYEÂNNGUYEÂN

((Resource Allocation Graph)Resource Allocation Graph) Process:Process:

Loaïi taøi nguyeân vôùi 4 thöïc theå:Loaïi taøi nguyeân vôùi 4 thöïc theå:

PPii yeâu caàu moät thöïc theå cuûa yeâu caàu moät thöïc theå cuûa RRjj : :

PPii ñang giöõ moät thöïc theå cuûa ñang giöõ moät thöïc theå cuûa RRjj : :

Pi

Pi

Pi

Rj

Rj

Rj

Kyù hieäuKyù hieäu

Page 10: Chapter 5: DEADLOCK

10

Ví duï veà RAG Ví duï veà RAG R1 R3

P1 P2 P3

R2 R4

Page 11: Chapter 5: DEADLOCK

11

Ví duï veà RAG (tt) Ví duï veà RAG (tt) R1 R3

P1 P2 P3

R2 R4

Deadlock xaûy ra!

Page 12: Chapter 5: DEADLOCK

12

RAG vaø deadlockRAG vaø deadlock Ví duï moät RAG Ví duï moät RAG chöùa chu trìnhchöùa chu trình nhöng nhöng

khoângkhoâng xaûy ra deadlock: P xaûy ra deadlock: P44 coù theå coù theå traû laïi instance cuûa Rtraû laïi instance cuûa R22..R1

P1

P2

P3R2

P4

Page 13: Chapter 5: DEADLOCK

13

RAG vaø deadlock (tt)RAG vaø deadlock (tt) RAG khoâng chöùa chu trình (cycle) RAG khoâng chöùa chu trình (cycle)

khoâng coù deadlockkhoâng coù deadlock RAG chöùa moät (hay nhieàu) chu trình RAG chöùa moät (hay nhieàu) chu trình

Neáu moãi loaïi taøi nguyeân chæ coù Neáu moãi loaïi taøi nguyeân chæ coù moät thöïc theå moät thöïc theå deadlock deadlock

Neáu moãi loaïi taøi nguyeân coù Neáu moãi loaïi taøi nguyeân coù nhieàu thöïc theå nhieàu thöïc theå coù theåcoù theå xaûy ra xaûy ra deadlockdeadlock

Page 14: Chapter 5: DEADLOCK

14

ÑOÀ THÒ CAÁP PHAÙT TAØI ÑOÀ THÒ CAÁP PHAÙT TAØI NGUYEÂNNGUYEÂN((Resource Allocation Graph)Resource Allocation Graph) Coù theå söû duïng moät ñoà thò ñeå moâ Coù theå söû duïng moät ñoà thò ñeå moâ

hình hoaù vieäc caáp phaùt taøi nguyeân.hình hoaù vieäc caáp phaùt taøi nguyeân.

Tieán trình

Taøi nguyeân

P1 yeâu caàu n taøi nguyeân loaïi R1

P1n

R1

P2 R2

P2 ñang giöõ 1 taøi nguyeân loaïi R2Taøi nguyeân

P1 P2

R1

R2

Moät tình huoáng taéc ngheõn

Page 15: Chapter 5: DEADLOCK

15

CAÙC PHÖÔNG PHAÙP XÖÛ LYÙ CAÙC PHÖÔNG PHAÙP XÖÛ LYÙ DEADLOKDEADLOK

Coù ba höôùng tieáp caän ñeå Coù ba höôùng tieáp caän ñeå xöû lyù taéc ngheõnxöû lyù taéc ngheõn

Söû duïng phöông thöùc (protocol) ñeå Söû duïng phöông thöùc (protocol) ñeå baûo ñaûm raèng heä thoáng khoâng baûo ñaûm raèng heä thoáng khoâng bao giôø xaûy ra taéc ngheõn.bao giôø xaûy ra taéc ngheõn.

Cho pheùp xaûy ra taéc ngheõn vaø tìm Cho pheùp xaûy ra taéc ngheõn vaø tìm caùch söûa chöõa taéc ngheõn.caùch söûa chöõa taéc ngheõn.

Hoaøn toaøn boû qua vieäc xöû lyù taéc Hoaøn toaøn boû qua vieäc xöû lyù taéc ngheõn, xem nhö heä thoáng khoâng ngheõn, xem nhö heä thoáng khoâng bao giôø xaûy ra taéc ngheõn. bao giôø xaûy ra taéc ngheõn.

Page 16: Chapter 5: DEADLOCK

16

GIAÛI QUYEÁT GIAÛI QUYEÁT DEADLOCKDEADLOCK

Ngaên ngöøa deadlockNgaên ngöøa deadlock (deadlock (deadlock prevention)prevention) Qui ñònh caáp, duøng taøi nguyeân nghieâm Qui ñònh caáp, duøng taøi nguyeân nghieâm

ngaëtngaët Khoâng cho caùc ñieàu kieän deadlock xaûy raKhoâng cho caùc ñieàu kieän deadlock xaûy ra

Traùnh deadlockTraùnh deadlock (deadlock avoidance)(deadlock avoidance) Vaãn cho caùc ñieàu kieän deadlock toàn taïiVaãn cho caùc ñieàu kieän deadlock toàn taïi Caáp taøi nguyeân hôïp lyù, an toaønCaáp taøi nguyeân hôïp lyù, an toaøn

Phaùt hieän deadlockPhaùt hieän deadlock (deadlock detection)(deadlock detection) Phuïc hoài deadlockPhuïc hoài deadlock (deadlock recovery)(deadlock recovery)

Page 17: Chapter 5: DEADLOCK

17

NGAÊN NGÖØA DEADLOCKNGAÊN NGÖØA DEADLOCK

Caám ñieàu kieän taøi nguyeân Caám ñieàu kieän taøi nguyeân khoâng theå chia seû (khoâng theå chia seû (multual-multual-exclusionexclusion ) )

Caám ñieàu kieän Söï chieám giöõ vaø Caám ñieàu kieän Söï chieám giöõ vaø yeâu caàu theâm taøi nguyeân (yeâu caàu theâm taøi nguyeân (hold hold & wait)& wait)Tieán trình yeâu caàu taát caû taøi Tieán trình yeâu caàu taát caû taøi

nguyeân moät laàn nguyeân moät laàn Chæ ñöôïc xöû lyù khi ñaõ ñuû taát caû Chæ ñöôïc xöû lyù khi ñaõ ñuû taát caû

taøi nguyeân caàn thieáttaøi nguyeân caàn thieát

Page 18: Chapter 5: DEADLOCK

18

NGAÊN NGÖØA DEADLOCKNGAÊN NGÖØA DEADLOCK

Caám ñieàu kieän khoâng thu hoài taøi Caám ñieàu kieän khoâng thu hoài taøi nguyeân nguyeân

((no-preemption)no-preemption) Neáu yeâu caàu taøi nguyeân khoâng ñöôïc, Neáu yeâu caàu taøi nguyeân khoâng ñöôïc,

tieán trình phaûi giaûi phoùng taát caû taøi tieán trình phaûi giaûi phoùng taát caû taøi nguyeân ñang giöõ vaø yeâu caàu laïi. nguyeân ñang giöõ vaø yeâu caàu laïi. (?)(?)

Loaïi boû moät chu kyø (Loaïi boû moät chu kyø (circular-wait)circular-wait) Saép xeáp taøi nguyeân theo traät töï vaø Saép xeáp taøi nguyeân theo traät töï vaø

chung caáp cho tieán trình theo ñuùng traät chung caáp cho tieán trình theo ñuùng traät töï ñoù.töï ñoù.

Page 19: Chapter 5: DEADLOCK

19

NGAÊN NGÖØA DEADLOCK NGAÊN NGÖØA DEADLOCK ((HavenderHavender))

Ví duïVí duïTieán Tieán trìnhtrình

Yeâu caàu Yeâu caàu

thöïc teáthöïc teá

P1P1 R6, R4, R1R6, R4, R1

P2P2 R2, R5, R4R2, R5, R4

P3P3 R3, R7, R1R3, R7, R1

R1 R5R2 R3 R4 R6 R7 P2

P1

P3

Nhaän xeùt veà p/p ngaên ngöøa deadlock

Page 20: Chapter 5: DEADLOCK

20

Moät soá khaùi nieäm cô sôûMoät soá khaùi nieäm cô sôû Traïng thaùi an toaøn.Traïng thaùi an toaøn. Moät chuoãi caáp phaùt an toaøn.Moät chuoãi caáp phaùt an toaøn. Chieán löôïc caáp phaùt.Chieán löôïc caáp phaùt. Giaûi thuaät xaùc ñònh traïng Giaûi thuaät xaùc ñònh traïng

thaùi an toaøn.thaùi an toaøn. Giaûi thuaät yeâu caàu taøi Giaûi thuaät yeâu caàu taøi

nguyeân.nguyeân.

TRAÙNH DEADLOCKTRAÙNH DEADLOCK

Page 21: Chapter 5: DEADLOCK

21

Traïng thaùi safe vaø Traïng thaùi safe vaø unsafeunsafe

Moät traïng thaùi cuûa heä thoáng Moät traïng thaùi cuûa heä thoáng ñöôïc goïi laø ñöôïc goïi laø an toaønan toaøn (safe) neáu toàn (safe) neáu toàn taïi moät taïi moät chuoãi an toaønchuoãi an toaøn (safe (safe sequence).sequence).

Page 22: Chapter 5: DEADLOCK

22

Chuoãi an toaønChuoãi an toaøn Moät chuoãi quaù trình <PMoät chuoãi quaù trình <P11, P, P22,…, P,…, Pnn > >

laø moät laø moät chuoãi an toaønchuoãi an toaøn neáu neáuVôùi moïi i = 1,…,n, yeâu caàu toái ña Vôùi moïi i = 1,…,n, yeâu caàu toái ña

veà taøi nguyeân cuûa Pveà taøi nguyeân cuûa Pii coù theå coù theå ñöôïc thoûa bôûiñöôïc thoûa bôûi taøi nguyeân maø heä thoáng ñang taøi nguyeân maø heä thoáng ñang

coù saün saøng (available)coù saün saøng (available) cuøng vôùi taøi nguyeân maø taát cuøng vôùi taøi nguyeân maø taát

caû Pcaû Pjj , j < i, ñang giöõ., j < i, ñang giöõ. Moät traïng thaùi cuûa heä thoáng ñöôïc Moät traïng thaùi cuûa heä thoáng ñöôïc

goïi laø goïi laø khoâng an toaønkhoâng an toaøn (unsafe) neáu (unsafe) neáu khoâng toàn taïi moät chuoãi an toaøn.khoâng toàn taïi moät chuoãi an toaøn.

Page 23: Chapter 5: DEADLOCK

23

Chuoãi an toaøn (tt)Chuoãi an toaøn (tt)Ví duï: Heä thoáng coù 12 tape drives vaø Ví duï: Heä thoáng coù 12 tape drives vaø

3 quaù trình P3 quaù trình P00, P, P11, P, P22

Taïi thôøi ñieåm tTaïi thôøi ñieåm t0 0

Coøn 3 tape drive saün saøng.Coøn 3 tape drive saün saøng.Chuoãi <PChuoãi <P11, P, P00, P, P22> laø chuoãi an > laø chuoãi an

toaøn toaøn heä thoáng laø an toaøn heä thoáng laø an toaøn

PP00 1010 55

PP11 44 22

PP22 99 22

caàn toái ña ñang giöõ

Page 24: Chapter 5: DEADLOCK

24

Chuoãi an toaøn (tt)Chuoãi an toaøn (tt) Giaû söû taïi thôøi ñieåm tGiaû söû taïi thôøi ñieåm t11, P, P22 yeâu yeâu

caàu vaø ñöôïc caáp phaùt 1 tape caàu vaø ñöôïc caáp phaùt 1 tape drivedrivecoøn 2 tape drive saün saøngcoøn 2 tape drive saün saøng

• Heä thoáng trôû neân khoâng an Heä thoáng trôû neân khoâng an toaøn. toaøn.

PP00 1010 55

PP11 44 22

PP22 99 33

caàn toái ña ñang giöõ

Page 25: Chapter 5: DEADLOCK

25

Khi moät process yeâu caàu moät taøi Khi moät process yeâu caàu moät taøi nguyeân ñang saün saøng, heä thoáng nguyeân ñang saün saøng, heä thoáng seõ kieåm tra: neáu vieäc caáp phaùt seõ kieåm tra: neáu vieäc caáp phaùt naøy khoâng daãn ñeán tình traïng naøy khoâng daãn ñeán tình traïng unsafe thì seõ caáp phaùt ngay.unsafe thì seõ caáp phaùt ngay.

Page 26: Chapter 5: DEADLOCK

26

Traïng thaùi safe/unsafe vaø Traïng thaùi safe/unsafe vaø deadlock deadlock

Neáu heä thoáng ñang ôû traïng thaùi safe Neáu heä thoáng ñang ôû traïng thaùi safe khoâng deadlock. khoâng deadlock.

Neáu heä thoáng ñang ôû traïng thaùi Neáu heä thoáng ñang ôû traïng thaùi unsafe unsafe coù theåcoù theå daãn ñeán deadlock. daãn ñeán deadlock.

Traùnh deadlock baèng caùch baûo ñaûm Traùnh deadlock baèng caùch baûo ñaûm heä thoáng khoâng ñi ñeán traïng thaùi heä thoáng khoâng ñi ñeán traïng thaùi unsafe. unsafe.

safe

unsafedeadlock

Page 27: Chapter 5: DEADLOCK

27

TRAÙNH DEADLOCKTRAÙNH DEADLOCK Giaûi thuaät bankerGiaûi thuaät banker

AÙp duïng cho heä thoáng caáp phaùt AÙp duïng cho heä thoáng caáp phaùt taøi nguyeân trong ñoù moãi loaïi taøi taøi nguyeân trong ñoù moãi loaïi taøi nguyeân coù theå coù nhieàu instance.nguyeân coù theå coù nhieàu instance.

Baét chöôùc nghieäp vuï ngaân haøng Baét chöôùc nghieäp vuï ngaân haøng (banking)(banking)

Page 28: Chapter 5: DEADLOCK

28

TRAÙNH DEADLOCKTRAÙNH DEADLOCK Giaûi thuaät nhaø baêng (Banker’s Giaûi thuaät nhaø baêng (Banker’s

Algorithm)Algorithm) Heä ñieàu haønh = nhaø BaêngHeä ñieàu haønh = nhaø Baêng Tieán trình = khaùch haøngTieán trình = khaùch haøng Taøi nguyeân = voán vayTaøi nguyeân = voán vay

Raøng buoäcRaøng buoäc Yeâu caàu vay cöïc ñaïi Yeâu caàu vay cöïc ñaïi voán nhaø baêng voán nhaø baêng Khaùch khoâng traû voán neáu vay chöa Khaùch khoâng traû voán neáu vay chöa

ñuû yeâu caàu cöïc ñaïiñuû yeâu caàu cöïc ñaïi Khi vay ñuû, khaùch phaûi traû ñuû voán Khi vay ñuû, khaùch phaûi traû ñuû voán

sau thôøi gian höõu haïnsau thôøi gian höõu haïn

Page 29: Chapter 5: DEADLOCK

29

TRAÙNH DEADLOCKTRAÙNH DEADLOCK

Traïng thaùi nhaø baêngTraïng thaùi nhaø baêngAn toaøn (An toaøn (SafeSafe): thoûa yeâu caàu moïi ): thoûa yeâu caàu moïi

khaùch, ngaân haøng thu voán ñuûkhaùch, ngaân haøng thu voán ñuûKhoâng an toaøn ( Khoâng an toaøn ( UnsafeUnsafe) : ngöôïc laïi ) : ngöôïc laïi

coù theå deadlock coù theå deadlock Heä thoáng phaûi caáp phaùt taøi Heä thoáng phaûi caáp phaùt taøi

nguyeân sao cho khoâng rôi vaøo nguyeân sao cho khoâng rôi vaøo traïng thaùi Unsafetraïng thaùi Unsafe

Page 30: Chapter 5: DEADLOCK

30

VÍ DUÏVÍ DUÏ Traïng thaùi sau laø an toaøn. Taïi sao ?Traïng thaùi sau laø an toaøn. Taïi sao ?

Ñang Ñang möôïnmöôïn

Caàn toái Caàn toái ñaña

Caàn Caàn theâmtheâm

P1P1 11 44 33

P2P2 44 66 22

P3P3 55 88 33

Voán 12 , coøn laïi 2Voán 12 , coøn laïi 2

Page 31: Chapter 5: DEADLOCK

31

VÍ DUÏVÍ DUÏ

Ñang Ñang möôïnmöôïn

Caàn toái Caàn toái ñaña

Caàn Caàn theâmtheâm

P1P1 88 1010 22

P2P2 22 55 33

P3P3 11 33 22

Voáân 12 , coøn laïi 1Voáân 12 , coøn laïi 1

Traïng thaùi sau laø khoâng an toaøn. Taïi sao ?Traïng thaùi sau laø khoâng an toaøn. Taïi sao ?

Page 32: Chapter 5: DEADLOCK

32

Giaûi thuaät kieåm tra traïng thaùi Giaûi thuaät kieåm tra traïng thaùi an toaøn – Ví duïan toaøn – Ví duï Coù 5 process Coù 5 process PP00 ,…, ,…, PP44

Coù 3 loaïi taøi nguyeân: Coù 3 loaïi taøi nguyeân: AA (coù 10 instance), (coù 10 instance), BB (5 instance) vaø (5 instance) vaø CC (7 instance). (7 instance).

Sô ñoà caáp phaùt trong heä thoáng taïi Sô ñoà caáp phaùt trong heä thoáng taïi thôøi ñieåm thôøi ñieåm TT00AllocationAllocation MaxMax AvailableAvailable NeedNeed

AA BB CC AA BB CC AA BB CC AA BB CC

PP00 00 11 00 77 55 33 33 33 22 77 44 33

PP11 22 00 00 33 22 22 11 22 22

PP22 33 00 22 99 00 22 66 00 00

PP33 22 11 11 22 22 22 00 11 11

PP44 00 00 22 44 33 33 44 33 11

Page 33: Chapter 5: DEADLOCK

33

GT kieåm tra traïng thaùi an toaøn – GT kieåm tra traïng thaùi an toaøn – Vd (tt)Vd (tt)

Allocation Need Work

A B C A B C A B C

P0 0 1 0 7 4 3 3 3 2

P1 2 0 0 1 2 2

P2 3 0 2 6 0 0

P3 2 1 1 0 1 1

P4 0 0 2 4 3 1

Chuoãi an toaøn <P1, P3, P4, P2, P0>

7 4 3

7 4 5

10 4 7 10 5 7

5 3 2

Page 34: Chapter 5: DEADLOCK

34

GT caáp phaùt taøi nguyeân GT caáp phaùt taøi nguyeân – – Ví duïVí duï Yeâu caàu (1, 0, 2) cuûa PYeâu caàu (1, 0, 2) cuûa P11 coù thoûa ñöôïc khoâng? coù thoûa ñöôïc khoâng?

Kieåm tra ñieàu kieän RequestKieåm tra ñieàu kieän Request11 Available: Available: (1, 0, 2) (1, 0, 2) (3, 3, 2) laø ñuùng (3, 3, 2) laø ñuùng

Giaû ñònh thoûa yeâu caàu, kieåm tra traïng thaùi môùi coù phaûi laø safe hay khoâng.Giaû ñònh thoûa yeâu caàu, kieåm tra traïng thaùi môùi coù phaûi laø safe hay khoâng.

Traïng thaùi môùi laø safe (chuoãi an toaøn laø <PTraïng thaùi môùi laø safe (chuoãi an toaøn laø <P11, P, P33, P, P44, P, P00, P, P22>), vaäy coù theå caáp phaùt taøi nguyeân cho P>), vaäy coù theå caáp phaùt taøi nguyeân cho P11..

AllocationAllocation NeedNeed AvailableAvailable

AA BB CC AA BB CC AA BB CC

PP00 00 11 00 77 44 33 22 33 00

PP11 33 00 22 00 22 00

PP22 33 00 22 66 00 00

PP33 22 11 11 00 11 11

PP44 00 00 22 44 33 11

Page 35: Chapter 5: DEADLOCK

35

GT caáp phaùt taøi nguyeân GT caáp phaùt taøi nguyeân – – Ví Ví

duï (tt)duï (tt) PP44 yeâu caàu (3, 3, 0) hoaëc P yeâu caàu (3, 3, 0) hoaëc P00 yeâu caàu yeâu caàu

(0, 2, 0) thì coù thoûa maõn ñöôïc hay (0, 2, 0) thì coù thoûa maõn ñöôïc hay khoâng?khoâng?

Page 36: Chapter 5: DEADLOCK

36

PHAÙT HIEÄN PHAÙT HIEÄN DEADLOCKDEADLOCK

Ghi nhaän, theo doõi yeâu caàu, söï caáp Ghi nhaän, theo doõi yeâu caàu, söï caáp phaùt taøi nguyeân cho caùc quaù trình.phaùt taøi nguyeân cho caùc quaù trình.

Duøng ñoà thò caáp phaùt taøi nguyeân.Duøng ñoà thò caáp phaùt taøi nguyeân.

Tieán trình

Taøi nguyeân

P1 yeâu caàu n taøi nguyeân loaïi R1

P1n

R1

P2 R2

P2 ñang giöõ 1 taøi nguyeân loaïi R2

Taøi nguyeân

Page 37: Chapter 5: DEADLOCK

37

PHAÙT HIEÄN PHAÙT HIEÄN DEADLOCKDEADLOCK

Giaûn löôïc ñoà thò caáp phaùtGiaûn löôïc ñoà thò caáp phaùt

1. Taøi nguyeân raûnh 1. Taøi nguyeân raûnh caáp cho quaù trình yeâu caáp cho quaù trình yeâu caàucaàu

2. Quaù trình ñuû taøi nguyeân 2. Quaù trình ñuû taøi nguyeân xoaù moïi caïnh xoaù moïi caïnh vaøo, xoaù quaù qtrìnhvaøo, xoaù quaù qtrình

3. Laëp laïi 1 vôùi caùc quaù trình khaùc ñeán khi 3. Laëp laïi 1 vôùi caùc quaù trình khaùc ñeán khi toái giaûn toái giaûn

Khi giaûi thuaät döøngKhi giaûi thuaät döøng Ñoà thò caáp phaùt khoâng coøn caïnh: khoâng Ñoà thò caáp phaùt khoâng coøn caïnh: khoâng

coù deadlockcoù deadlock Ñoà thò caáp phaùt coù chu trình (cycle): deadlockÑoà thò caáp phaùt coù chu trình (cycle): deadlock

Nhaän xeùt Nhaän xeùt Phí toån lôùnPhí toån lôùn

Page 38: Chapter 5: DEADLOCK

38

VÍ DUÏ 1 : GIAÛN ÖÔÙC VÍ DUÏ 1 : GIAÛN ÖÔÙC

P2

R1

P1 R2

P3 R3

P4

P2

R1

P1 R2

P3 R3

P4

P2

R1

P1 R2

P3 R3

P4

P2

R1

P1 R2

P3 R3

P4

Page 39: Chapter 5: DEADLOCK

39

BAØI TAÄP : GIAÛN BAØI TAÄP : GIAÛN ÖÔÙC ÖÔÙC

R1

P1

P3

P2

P4R2

R6

R5

R3

Page 40: Chapter 5: DEADLOCK

40

PHUÏC HOÀÀI PHUÏC HOÀÀI DEADLOCKDEADLOCK

Ñình chæ hoaït ñoäng cuûa caùc Ñình chæ hoaït ñoäng cuûa caùc quaù trình lieân quan.quaù trình lieân quan.

Thu hoài taøi nguyeân.Thu hoài taøi nguyeân. Khoù coù theå giaûi quyeát troïn Khoù coù theå giaûi quyeát troïn

veïnveïn

Page 41: Chapter 5: DEADLOCK

41

BAØI TAÄPBAØI TAÄP

Tìm traïng thaùi cuûa heä thoáng sauTìm traïng thaùi cuûa heä thoáng sau

QUAÙ QUAÙ TRÌNHTRÌNH

Nhu caàu toái ñaNhu caàu toái ña

(CAÀN COÙ ÑUÛ (CAÀN COÙ ÑUÛ SOÁ TAØI SOÁ TAØI

NGUYEÂN ÑEÅ NGUYEÂN ÑEÅ XÖÛ Lyù)XÖÛ Lyù)

Ñaõ möôïnÑaõ möôïn

(CAÁP PHAÙT (CAÁP PHAÙT TAØI NGUYEÂN)TAØI NGUYEÂN)

Hieän coøn laïiHieän coøn laïi

(TAØI NGUYEÂN (TAØI NGUYEÂN COØN TÖÏ DO)COØN TÖÏ DO)

AA BB CC AA BB CC AA BB CC

P1P1 33 22 22 11 00 00 44 11 22

P2P2 66 11 33 22 11 11

P3P3 33 11 44 22 11 11

P4P4 44 22 22 00 00 22

Page 42: Chapter 5: DEADLOCK

42

QUAÙ QUAÙ TRÌNHTRÌNH

NeedNeed Ñaõ möôïnÑaõ möôïn

(CAÁP PHAÙT (CAÁP PHAÙT TAØI NGUYEÂN)TAØI NGUYEÂN)

Hieän coøn laïiHieän coøn laïi

(TAØI NGUYEÂN (TAØI NGUYEÂN COØN TÖÏ DO)COØN TÖÏ DO)

AA BB CC AA BB CC AA BB CC

P1P1 22 22 22 11 00 00 44 11 22

P2P2 44 00 22 22 11 11

P3P3 11 00 33 22 11 11

P4P4 44 22 00 00 00 22

Page 43: Chapter 5: DEADLOCK

43

QUAÙ QUAÙ TRÌNHTRÌNH

NeedNeed Ñaõ möôïnÑaõ möôïn

(CAÁP PHAÙT (CAÁP PHAÙT TAØI NGUYEÂN)TAØI NGUYEÂN)

Hieän coøn laïiHieän coøn laïi

(TAØI NGUYEÂN (TAØI NGUYEÂN COØN TÖÏ DO)COØN TÖÏ DO)

AA BB CC AA BB CC AA BB CC

P1P1 22 22 22 11 00 00 66 22 33

P2P2 00 00 00 00 00 00

P3P3 11 00 33 22 11 11

P4P4 44 22 00 00 00 22

Page 44: Chapter 5: DEADLOCK

44

QUAÙ QUAÙ TRÌNHTRÌNH

NeedNeed Ñaõ möôïnÑaõ möôïn

(CAÁP PHAÙT (CAÁP PHAÙT TAØI NGUYEÂN)TAØI NGUYEÂN)

Hieän coøn laïiHieän coøn laïi

(TAØI NGUYEÂN (TAØI NGUYEÂN COØN TÖÏ DO)COØN TÖÏ DO)

AA BB CC AA BB CC AA BB CC

P1P1 00 00 00 00 00 00 77 22 33

P2P2 00 00 00 00 00 00

P3P3 11 00 33 22 11 11

P4P4 44 22 00 00 00 22

Page 45: Chapter 5: DEADLOCK

45

QUAÙ QUAÙ TRÌNHTRÌNH

NeedNeed Ñaõ möôïnÑaõ möôïn

(CAÁP PHAÙT (CAÁP PHAÙT TAØI NGUYEÂN)TAØI NGUYEÂN)

Hieän coøn laïiHieän coøn laïi

(TAØI NGUYEÂN (TAØI NGUYEÂN COØN TÖÏ DO)COØN TÖÏ DO)

AA BB CC AA BB CC AA BB CC

P1P1 00 00 00 00 00 00 99 33 44

P2P2 00 00 00 00 00 00

P3P3 00 00 00 00 00 00

P4P4 44 22 00 00 00 22

Page 46: Chapter 5: DEADLOCK

46

QUAÙ QUAÙ TRÌNHTRÌNH

NeedNeed Ñaõ möôïnÑaõ möôïn

(CAÁP PHAÙT (CAÁP PHAÙT TAØI NGUYEÂN)TAØI NGUYEÂN)

Hieän coøn laïiHieän coøn laïi

(TAØI NGUYEÂN (TAØI NGUYEÂN COØN TÖÏ DO)COØN TÖÏ DO)

AA BB CC AA BB CC AA BB CC

P1P1 00 00 00 00 00 00 99 33 66

P2P2 00 00 00 00 00 00

P3P3 00 00 00 00 00 00

P4P4 00 00 00 00 00 00

Page 47: Chapter 5: DEADLOCK

47

Chuoãi caáp phaùt an toaøn :Chuoãi caáp phaùt an toaøn :

<P2,P1,P3,P4><P2,P1,P3,P4>

Page 48: Chapter 5: DEADLOCK

48

Nhu Nhu caàu caàu

toái ñatoái ña

Ñaõ Ñaõ möôïnmöôïn

Hieän Hieän coøn coøn laïilaïi

AA BB CC AA BB CC AA BB CC

PP11

00 00 11 00 00 11 11 55 22

PP22

11 77 55 11 00 00

PP33

00 66 55 00 66 33

PP44

00 66 55 00 00 11

Neáu quaù trình P2 thay baèng yeâu caàu (0,4,2) thì heä thoáng caáp phaùt töùc thôøi cho noù khoâng ?

Tìm traïng thaùi cuûa heä thoáng sauTìm traïng thaùi cuûa heä thoáng sau

NeedNeed Ñaõ Ñaõ möôïnmöôïn

Hieän Hieän coøn coøn laïilaïi

AA BB CC AA BB CC AA BB CC

PP11

00 00 00 00 00 11 11 55 22

PP22

00 44 22 11 00 00

PP33

00 00 22 00 66 33

PP44

00 66 44 00 00 11

Page 49: Chapter 5: DEADLOCK

49

Chuoãi caáp phaùt an toaøn Chuoãi caáp phaùt an toaøn <P1,P3,P2,P4><P1,P3,P2,P4>

QUAÙ QUAÙ TRÌNHTRÌNH

NeedNeed Ñaõ möôïnÑaõ möôïn

(CAÁP PHAÙT (CAÁP PHAÙT TAØI NGUYEÂN)TAØI NGUYEÂN)

Hieän coøn laïiHieän coøn laïi

(TAØI NGUYEÂN (TAØI NGUYEÂN COØN TÖÏ DO)COØN TÖÏ DO)

AA BB CC AA BB CC AA BB CC

P1P1 00 00 00 00 00 00 22 1111 77

P2P2 00 00 00 00 00 00

P3P3 00 00 00 00 00 00

P4P4 00 00 00 00 00 00

Page 50: Chapter 5: DEADLOCK

50

Tìm traïng thaùi cuûa heä thoáng sauTìm traïng thaùi cuûa heä thoáng sau