DEADLOCK 2 DEADLOCK n n nh ngha deadlock

  • Slides: 35
Download presentation
DEADLOCK

DEADLOCK

2

2

DEADLOCK n n Ñònh nghóa deadlock Ñieàu kieän ñeå coù deadlock Caùc phöông phaùp

DEADLOCK n n Ñò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 3

n Ví duï P 1 10 KB 8 KB P 2 P 3 4

n Ví duï P 1 10 KB 8 KB P 2 P 3 4 KB spooler 3 KB 7 KB 15 KB buffer Taéc ngheõn trong giao thoâng printer Taéc ngheõn trong quaûn lyù in aán 4

n Ví dụ: tắc nghẽn trên cầu Hai (hay nhiều hơn) ô tô đi

n Ví dụ: tắc nghẽn trên cầu Hai (hay nhiều hơn) ô tô đi ngược chiều trên một cây cầu hẹp chỉ đủ độ rộng cho một chiếc. ¨ Mỗi đoạn của cây cầu có thể xem như một tài nguyên. ¨ Nếu deadlock xuất hiện, nó có thể được giải quyết nếu một hay một số ô tô lùi lại nhường đường rồi tiến sau. ¨ 5

Mọi xe đều đợi xe phía trước mình đi => không xe nào qua

Mọi xe đều đợi xe phía trước mình đi => không xe nào qua được 6

BAØI TOAÙN VEÀ 5 TRIEÁT GIA AÊN TOÁI Naêm nhaø trieát hoïc cuøng ngoài

BAØI TOAÙN VEÀ 5 TRIEÁT GIA AÊN TOÁI 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. Moãi nhaø trieát hoïc seõ suy ngaãm caùc trieát lyù cuûa mình ñeán khi caûm thaáy ñoùi thì döï ñònh laàn löôït caàm 1 caùi nóa beân traùi vaø 1 caùi nóa beân phaûi ñeå aên. 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. 7

ÑÒNH NGHÓA n n n Moãi quaù trình trong taäp hôïp ñeàu chôø ñôïi

ÑÒNH NGHÓA n n n Moãi quaù trình trong taäp hôïp ñeàu chôø ñôïi moät söï kieän maø chæ coù moät quaù trình khaùc trong taäp hôïp môùi coù theå phaùt sinh. Hay : Moãi quaù trình trong taäp hôïp ñeàu chôø ñöôïc caáp phaùt taøi nguyeân hieän ñang bò moät quaù trình khaùc cuõng ôû traïng thaùi blocked chieám giöõ. Moät heä thoáng bò deadlock : coù quaù trình bò deadlock. 8

VÍ DUÏ & BAÛN CHAÁT DEADLOCK Hai quaù deadlock: Process 1 P(S 1); P(S

VÍ DUÏ & BAÛN CHAÁT DEADLOCK Hai quaù deadlock: Process 1 P(S 1); P(S 2); Critical Section; V(S 1); V(S 2); trình Process 2 P(S 2); P(S 1); Critical Section; V(S 2); V(S 1); bò Daïng deadlock: R 1 R 2 Process 1 Process 2 9

DEADLOCK VAØ TRÌ HOAÕN VO HAÏN ÑÒNH n n n Deadlock ¨ Ñôïi söï

DEADLOCK VAØ TRÌ HOAÕN VO HAÏN ÑÒNH n n n Deadlock ¨ Ñôïi söï kieän khoâng bao giôø xaûy ra ¨ Nguyeân nhaân ? Trì hoaõn voâ haïn ñònh (Indefinite postponement) ¨ Ñôïi söï kieän coù theå xaûy ra nhöng khoâng xaùc ñònh thôøi ñieåm ¨ Bieåu hieän nhö deadlock ¨ Nguyeân nhaân ? Deadlock coù khaùc voøng laëp voâ haïn ? 10

ÑIEÀU KIEÄN XAÛY RA DEADLOCK 1. 2. 3. 4. Coù söû duïng taøi nguyeân

ÑIEÀU KIEÄN XAÛY RA DEADLOCK 1. 2. 3. 4. Coù söû duïng taøi nguyeân khoâng theå chia seû (mutual exclusion) Söï chieám giöõ vaø yeâu caàu theâm taøi nguyeân (wait for ) Khoâng thu hoài taøi nguyeân töø quaù trình ñang giöõ chuùng (no-preemption) Toàn taïi moät chu kyø trong ñoà thò caáp phaùt taøi nguyeân (circular-wait) 11

ÑOÀ THÒ CAÁP PHAÙT TAØI NGUYE N n Coù theå söû duïng moät ñoà

ÑOÀ THÒ CAÁP PHAÙT TAØI NGUYE N n Coù theå söû duïng moät ñoà thò ñeå moâ hình hoaù vieäc caáp phaùt taøi nguyeân. P 1 yeâu caàu n taøi nguyeân loaïi R 1 Quaù trình n P 1 Taøi nguyeân R 1 P 2 ñang giöõ 1 taøi nguyeân loaïi R 2 P 2 Taøi nguyeân R 1 P 2 Moät tình huoáng taét ngheõn R 2 12

CAÙC PHÖÔNG PHAÙP XÖÛ LYÙ DEADLOK Coù ba höôùng tieáp caän ñeå xöû lyù

CAÙC PHÖÔNG PHAÙP XÖÛ LYÙ DEADLOK Coù ba höôùng tieáp caän ñeå xöû lyù taéc ngheõn n Söû duïng nghi thöùc (protocol) ñeå baûo ñaûm raèng heä thoáng khoâng bao giôø xaûy ra taéc ngheõn. Cho pheùp xaûy ra taéc ngheõn vaø tìm caùch söûa chöõa taéc ngheõn. Hoaøn toaøn boû qua vieäc xöû lyù taéc ngheõn, xem nhö heä thoáng khoâng bao giôø xaûy ra taéc ngheõn. 13

GIAÛI QUYEÁT DEADLOCK n n Ngaên ngöøa deadlock (deadlock prevention) ¨ Qui ñònh caáp

GIAÛI QUYEÁT DEADLOCK n n Ngaên ngöøa deadlock (deadlock prevention) ¨ Qui ñònh caáp , duøng taøi nguyeân nghieâm ngaët ¨ Khoâng cho caùc ñieàu kieän deadlock xaûy ra Traùnh deadlock (deadlock avoidance) ¨ Vaãn cho caùc ñieàu kieän deadlock toàn taïi ¨ Caáp taøi nguyeân hôïp lyù, an toaøn Phaùt hieän deadlock (deadlock detection) Phuïc hoài deadlock (deadlock recovery) 14

NGAÊN NGÖØA DEADLOCK n n Caám ñieàu kieän taøi nguyeân khoâng theå chia seû

NGAÊN NGÖØA DEADLOCK n n Caám ñieàu kieän taøi nguyeân khoâng theå chia seû (multual-exclusion ) Caám ñieàu kieän Söï chieám giöõ vaø yeâu caàu theâm taøi nguyeân (hold & wait) ¨ Quaù trình yeâu caàu taát caû taøi nguyeân moät laàn ¨ Chæ ñöôïc xöû lyù khi ñaõ ñuû taát caû taøi nguyeân caàøn thieát n Caám ñieàu kieän khoâng thu hoài taøi nguyeân (no-preemption) ¨ Neáu yeâu caàu taøi nguyeân khoâng ñöôïc, quaù trình phaûi giaûi phoùng taát caû taøi nguyeân ñang giöõ vaø yeâu caàu laïi. (? ) n Loaïi boû moät chu kyø (circular-wait) ¨ Saép xeáp taøi nguyeân theo traät töï vaø chung caáp 15

n NGAÊN NGÖØA DEADLOCK (Havender) Ví duï Quaù trình Yeâu caàu thöïc teá P

n NGAÊN NGÖØA DEADLOCK (Havender) Ví duï Quaù trình Yeâu caàu thöïc teá P 1 R 6, R 4, R 1 P 2 R 2, R 5, R 4 P 3 R 3, R 7, R 1 P 3 P 1 P 2 l R 1 R 2 R 3 R 4 R 5 R 6 R 7 Nhaän xeùt veà p/p ngaên ngöøa deadlock 16

TRAÙNH DEADLOCK Moät soá khaùi nieäm cô sôû n n n Traïng thaùi an

TRAÙNH DEADLOCK Moät soá khaùi nieäm cô sôû n n n Traïng thaùi an toaøn. Moät chuoãi caáp phaùt an toaøn. Chieán löôïc caáp phaùt. Giaûi thuaät xaùc ñònh traïng thaùi an toaøn. Giaûi thuaät yeâu caàu taøi nguyeân. 17

TRAÙNH DEADLOCK n n Giaûi thuaät nhaø baêng (Banker’s Algorithm) ¨ Heä ñieàu haønh

TRAÙNH DEADLOCK n n Giaûi thuaät nhaø baêng (Banker’s Algorithm) ¨ Heä ñieàu haønh ~ nhaø Baêng ¨ Quaù trình ~ khaùch haøng ¨ Taøi nguyeân ~ voán vay Raøng buoäc ¨ Yeâu caàu vay cöïc ñaïi voán nhaø baêng ¨ Khaùch khoâng traû voán neáu vay chöa ñuû yeâu caàu cöïc ñaïi ¨ Khi vay ñuû, khaùch phaûi traû ñuû voán sau thôøi gian höõu haïn Traïng thaùi nhaø baêng ¨ An toaøn (Safe): thoûa yeâu caàu moïi khaùch, ngaân haøng thu voán ñuû ¨ Khoâng an toaøn ( Unsafe) : ngöôïc laïi coù theå deadlock Heä thoáng phaûi caáp phaùt taøi nguyeân sao cho khoâng rôi vaøo traïng thaùi Unsafe 18

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

VÍ DUÏ n Traïng thaùi sau laø an toaøn. Taïi sao ? Ñang möôïn Caàn toái ña Caàn theâm P 1 1 4 3 P 2 4 6 2 P 3 5 8 3 Voán 12 , coøn laïi 2 n Traïng thaùi sau laø khoâng an toaøn. Taïi sao ? Ñang möôïn Caàn toái ña Caàn theâm P 1 8 10 2 P 2 2 5 3 P 3 1 3 2 Voáân 12 , coøn laïi 1 19

PHAÙT HIEÄN DEADLOCK n n Ghi nhaän, theo doõi yeâu caàu, söï caáp phaùt

PHAÙT HIEÄN DEADLOCK n n 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. Duøng ñoà thò caáp phaùt taøi nguyeân. P 1 yeâu caàu n taøi nguyeân loaïi R 1 Quaù trình Taøi nguyeân n P 1 R 1 P 2 ñang giöõ 1 taøi nguyeân loaïi R 2 P 2 R 2 20

PHAÙT HIEÄN DEADLOCK n n n Giaûn löôïc ñoà thò caáp phaùt 1. Taøi

PHAÙT HIEÄN DEADLOCK n n n Giaûn löôïc ñoà thò caáp phaùt 1. Taøi nguyeân raûnh caáp cho quaù trình yeâu caàu 2. Quaù trình ñuû taøi nguyeân xoaù moïi caïnh vaøo, xoaù quaù qtrình 3. Laëp laïi 1 vôùi caùc quaù trình khaùc ñeán khi toái giaûn Khi giaûi thuaät döøng ¨ Ñoà thò caáp phaùt khoâng coøn caïnh: khoâng coù deadlock ¨ Ñoà thò caáp phaùt coù chu trình (cycle): deadlock Nhaän xeùt 21

VÍ DUÏ 1 : GIAÛN ÖÔÙC P 2 P 3 R 1 R 3

VÍ DUÏ 1 : GIAÛN ÖÔÙC P 2 P 3 R 1 R 3 P 4 P 1 P 2 P 3 R 2 R 3 P 4 P 1 P 4 P 3 R 1 R 2 R 1 P 2 P 2 R 2 P 3 R 1 R 3 P 4 P 1 R 2 22

BAØI TAÄP : GIAÛN ÖÔÙC R 1 P 2 P 1 R 5 R

BAØI TAÄP : GIAÛN ÖÔÙC R 1 P 2 P 1 R 5 R 6 R 2 P 3 P 4 R 3 23

PHUÏC HOÀÀI DEADLOCK Ñình chæ hoaït ñoäng cuûa caùc quaù trình lieân quan. n

PHUÏC HOÀÀI DEADLOCK Ñình chæ hoaït ñoäng cuûa caùc quaù trình lieân quan. n Thu hoài taøi nguyeân. n Khoù coù theå giaûi quyeát troïn veïn n 24

25

25

BAØI TAÄP Tìm traïng thaùi cuûa heä thoáng sau QUAÙ TRÌNH Nhu caàu toái

BAØI TAÄP Tìm traïng thaùi cuûa heä thoáng sau QUAÙ TRÌNH Nhu caàu toái ña (CAÀN COÙ ÑUÛ SOÁ TAØI NGUYE N ÑEÅ XÖÛ LYÙÛ) Ñaõ möôïn (CAÁP PHAÙT TAØI NGUYE N) Hieän coøn laïi (TAØI NGUYE N COØN TÖÏ DO) A B C P 1 3 2 2 1 0 0 4 1 2 P 2 6 1 3 2 1 1 P 3 3 1 4 2 1 1 P 4 4 2 2 0 0 2 26

Need Ñaõ möôïn (CAÁP PHAÙT TAØI NGUYE N) QUAÙ TRÌNH Hieän coøn laïi (TAØI

Need Ñaõ möôïn (CAÁP PHAÙT TAØI NGUYE N) QUAÙ TRÌNH Hieän coøn laïi (TAØI NGUYE N COØN TÖÏ DO) A B C P 1 2 2 2 1 0 0 4 1 2 P 2 4 0 2 2 1 1 P 3 1 0 3 2 1 1 P 4 4 2 0 0 0 2 27

Need Ñaõ möôïn (CAÁP PHAÙT TAØI NGUYE N) QUAÙ TRÌNH Hieän coøn laïi (TAØI

Need Ñaõ möôïn (CAÁP PHAÙT TAØI NGUYE N) QUAÙ TRÌNH Hieän coøn laïi (TAØI NGUYE N COØN TÖÏ DO) A B C P 1 2 2 2 1 0 0 6 2 3 P 2 0 0 0 P 3 1 0 3 2 1 1 P 4 4 2 0 0 0 2 28

Need Ñaõ möôïn (CAÁP PHAÙT TAØI NGUYE N) QUAÙ TRÌNH Hieän coøn laïi (TAØI

Need Ñaõ möôïn (CAÁP PHAÙT TAØI NGUYE N) QUAÙ TRÌNH Hieän coøn laïi (TAØI NGUYE N COØN TÖÏ DO) A B C P 1 0 0 0 7 2 3 P 2 0 0 0 P 3 1 0 3 2 1 1 P 4 4 2 0 0 0 2 29

Need Ñaõ möôïn (CAÁP PHAÙT TAØI NGUYE N) QUAÙ TRÌNH Hieän coøn laïi (TAØI

Need Ñaõ möôïn (CAÁP PHAÙT TAØI NGUYE N) QUAÙ TRÌNH Hieän coøn laïi (TAØI NGUYE N COØN TÖÏ DO) A B C P 1 0 0 0 9 3 4 P 2 0 0 0 P 3 0 0 0 P 4 4 2 0 0 0 2 30

Need Ñaõ möôïn (CAÁP PHAÙT TAØI NGUYE N) QUAÙ TRÌNH Hieän coøn laïi (TAØI

Need Ñaõ möôïn (CAÁP PHAÙT TAØI NGUYE N) QUAÙ TRÌNH Hieän coøn laïi (TAØI NGUYE N COØN TÖÏ DO) A B C P 1 0 0 0 9 3 6 P 2 0 0 0 P 3 0 0 0 P 4 0 0 0 31

Chuoãi caáp phaùt an toaøn : <P 2, P 1, P 3, P 4>

Chuoãi caáp phaùt an toaøn : <P 2, P 1, P 3, P 4> n 32

quaù trình P 2 thay baèng yeâu caàu (0, 4, 2) Tìm traïng thaùi

quaù trình P 2 thay baèng yeâu caàu (0, 4, 2) Tìm traïng thaùi cuûa heä thoáng. Neáu sau thì heä thoáng caáp phaùt töùc thôøi cho noù khoâng ? Nhu caàu toái ña Ñaõ möôïn Hieän coøn laïi A B C P 1 0 0 1 1 5 2 P 2 1 7 5 1 0 P 3 0 6 5 0 P 4 0 6 5 0 Need Ñaõ möôïn Hieän coøn laïi A B C P 1 0 0 0 1 1 5 2 0 P 2 0 4 2 1 0 0 6 3 P 3 0 0 2 0 6 3 0 1 P 4 0 6 4 0 0 1 33

Chuoãi caáp phaùt an toaøn <P 1, P 3, P 2, P 4> Need

Chuoãi caáp phaùt an toaøn <P 1, P 3, P 2, P 4> Need Ñaõ möôïn (CAÁP PHAÙT TAØI NGUYE N) QUAÙ TRÌNH Hieän coøn laïi (TAØI NGUYE N COØN TÖÏ DO) A B C P 1 0 0 0 2 11 7 P 2 0 0 0 P 3 0 0 0 P 4 0 0 0 34

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

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