chapter 5: deadlock
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 PresentationTRANSCRIPT
Chapter 5: Chapter 5: DEADLOCKDEADLOCK
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
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ï
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
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
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:
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 ?
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)
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
10
Ví duï veà RAG Ví duï veà RAG R1 R3
P1 P2 P3
R2 R4
11
Ví duï veà RAG (tt) Ví duï veà RAG (tt) R1 R3
P1 P2 P3
R2 R4
Deadlock xaûy ra!
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
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
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
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.
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)
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
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ù.
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
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
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).
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.
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öõ
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öõ
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.
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
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)
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
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
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
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 ?
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
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
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
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?
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
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
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
39
BAØI TAÄP : GIAÛN BAØI TAÄP : GIAÛN ÖÔÙC ÖÔÙC
R1
P1
P3
P2
P4R2
R6
R5
R3
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
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
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
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
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
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
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
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>
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
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
50
Tìm traïng thaùi cuûa heä thoáng sauTìm traïng thaùi cuûa heä thoáng sau