Bài giảng Deadlock
lượt xem 33
download
Bài giảng Deadlock cung cấp cho các bạn những kiến thức về mô hình hóa hệ thống; đồ thị cấp phát tài nguyên; phương pháp giải quyết deadlock; ngăn deadlock; tránh, phát hiện, phục hồi khỏi deadlock. Bài giảng phục vụ cho các bạn chuyên ngành Công nghệ thông tin và những ngành có liên quan.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Deadlock
- Deadlock Moâ hình hoùa heä thoáng Ñoà thò caáp phaùt taøi nguyeân Phöông phaùp giaûi quyeát deadlock Ngaên deadlock Traùnh deadlock Phaùt hieän deadlock Phuïc hoài khoûi deadlock 1
- From A.Gottlieb 2
- Vaán ñeà deadlock trong heä thoáng Moät taäp caùc process laø deadlock(ed) khi moãi process trong taäp naøy giöõ taøi nguyeân vaø chôø taøi nguyeân maø moät process khaùc trong taäp ñang giöõ Ví duï ● Giaû söû heä thoáng coù moät printer vaø moät DVD drive. Quaù trình P1 ñang giöõ DVD drive, quaù trình P2 ñang giöõ printer. Baây giôø P1 yeâu caàu printer vaø phaûi ñôïi, vaø P2 yeâu caàu DVD drive vaø phaûi ñôïi 3
- Moâ hình hoùa heä thoáng Heä thoáng goàm caùc loaïi taøi nguyeân, kí hieäu R1, R2,…, Rm ● Taøi nguyeân: CPU cycle, khoâng gian boä nhôù, thieát bò I/O, file,… • Moãi loaïi taøi nguyeân Ri coù Wi thöïc theå (instance) Process söû duïng taøi nguyeân theo caùc böôùc ● Yeâu caàu (request): process phaûi chôø neáu yeâu caàu khoâng ñöôïc ñaùp öùng ngay ● Söû duïng (use): process söû duïng taøi nguyeân ● Hoaøn traû (release): process hoaøn traû taøi nguyeân 4
- Caùc taùc vuï yeâu caàu vaø hoaøn traû ñöôïc goïi qua system call. Ví duï ● request/release device ● open/close file ● allocate/free memory 5
- Deadlock: Ñieàu kieän caàn (1/2) Boán ñieàu kieän caàn (necessary condition) ñeå xaûy ra deadlock 1. Mutual exclusion: moät taøi nguyeân coù theå ñöôïc caáp phaùt cho nhieàu laém laø 1 quaù trình (töùc laø khoâng chia seû ñöôïc) 2. Hold and wait: moät quaù trình ñang giöõ taøi nguyeân ñöôïc pheùp yeâu caàu theâm taøi nguyeân khaùc Nhaän xeùt: “mutual exclusion” ôû ñaây vaø “mutual exclusion” trong chöông veà ñoàng boä laø hai khaùi nieäm khaùc nhau 6
- Deadlock: Ñieàu kieän caàn (2/2) 3. No preemption: (= no resource preemption) khoâng laáy laïi taøi nguyeân ñaõ caáp phaùt cho quaù trình, ngoaïi tröø khi quaù trình töï hoaøn traû noù 4. Circular wait: toàn taïi moät taäp {P1,…,Pn} caùc quaù trình ñang ñôïi sao cho P1 ñôïi moät taøi nguyeân maø P2 ñang giöõ P2 ñôïi moät taøi nguyeân maø P3 ñang giöõ … Pn ñôïi moät taøi nguyeân maø P1 ñang giöõ Ñeå yù: Neáu moät taøi nguyeân goàm nhieàu instance thì “taøi nguyeân” ñeà caäp ôû treân laø moät instance cuûa taøi nguyeân 7
- Boán ñieàu kieän caàn cho deadlock: nhaän xeùt Lieân quan ñeán chính saùch caáp phaùt taøi nguyeân cuûa heä thoáng Ñaëc ñieåm tónh cuûa heä thoáng vaø caùc taøi nguyeân ● Luoân ñuùng hoaëc luoân sai, khoâng thay ñoåi theo thôøi gian 8
- Resource Allocation Graph (1/2) Resource allocation graph (RAG) laø ñoà thò coù höôùng, vôùi taäp ñænh V vaø taäp caïnh E ● Taäp ñænh V goàm 2 loaïi: P = {P1, P2,…, Pn } (Taát caû process trong heä thoáng) R = {R1, R2,…, Rm } (Taát caû caùc loaïi taøi nguyeân trong heä thoáng) ● Taäp caïnh E goàm 2 loaïi: Request edge: caïnh coù höôùng töø Pi ñeán Rj Assignment edge: caïnh coù höôùng töø Rj ñeán Pi 9
- Resource Allocation Graph (2/2) Kyù hieäu Process: Pi Rj Loaïi taøi nguyeân vôùi 4 thöïc theå: Rj Pi yeâu caàu moät thöïc theå cuûa Rj : Pi Rj Pi ñang giöõ moät thöïc theå cuûa Rj : Pi 10
- Ví duï veà RAG (1/2) R1 R3 P1 P2 P3 R2 R4 11
- Ví duï veà RAG (2/2) R1 R3 P1 P2 P3 Deadlock xaûy ra! R2 R4 12
- RAG vaø deadlock (1/2) Ví duï moät RAG chöùa chu trình nhöng khoâng xaûy ra deadlock: tröôøng hôïp P4 traû laïi instance cuûa R2. R1 P2 P1 R2 P3 P4 13
- RAG vaø deadlock (2/2) RAG khoâng chöùa chu trình khoâng coù deadlock RAG chöùa moät (hay nhieàu) chu trình ● Neáu moãi loaïi taøi nguyeân chæ coù moät thöïc theå deadlock ● Neáu moãi loaïi taøi nguyeân coù nhieàu thöïc theå coù theå xaûy ra deadlock 14
- Caùc phöông phaùp giaûi quyeát deadlock (1/2) • Ba phöông phaùp • 1. Baûo ñaûm raèng heä thoáng khoâng rôi vaøo tình traïng deadlock baèng caùch ngaên (preventing) hoaëc traùnh (avoiding) deadlock. • Khaùc bieät ● Ngaên deadlock: khoâng cho pheùp (ít nhaát) moät trong 4 ñieàu kieän caàn cho deadlock ● Traùnh deadlock: caùc quaù trình caàn cung caáp thoâng tin veà taøi nguyeân noù caàn ñeå heä thoáng caáp phaùt taøi nguyeân moät caùch phuø hôïp 15
- Caùc phöông phaùp giaûi quyeát deadlock (2/2) • 2. Cho pheùp heä thoáng vaøo traïng thaùi deadlock, nhöng sau ñoù phaùt hieän deadlock vaø phuïc hoài heä thoáng. • 3. Boû qua moïi vaán ñeà, xem nhö deadlock khoâng bao giôø xaûy ra trong heä thoáng. ● Deadlock khoâng ñöôïc phaùt hieän, daãn ñeán vieäc giaûm hieäu suaát cuûa heä thoáng. Cuoái cuøng, heä thoáng coù theå phaûi ngöng hoaït ñoäng vaø phaûi ñöôïc khôûi ñoäng laïi. ● Khaù nhieàu heä ñieàu haønh söû duïng phöông phaùp naøy. 16
- Ngaên deadlock (1/4) Ngaên deadlock baèng caùch ngaên moät trong 4 ñieàu kieän caàn cuûa deadlock 1. Ngaên Mutual Exclusion ● ñoái vôùi nonsharable resource (vd: printer): khoâng laøm ñöôïc ● ñoái vôùi sharable resource (vd: read-only file vaø taùc vuï cho pheùp leân file chæ laø ñoïc): khoâng caàn thieát 17
- Ngaên deadlock (2/4) 2. Ngaên Hold and Wait ● Caùch 1: moãi process yeâu caàu toaøn boä taøi nguyeân caàn thieát moät laàn. Neáu coù ñuû taøi nguyeân thì heä thoáng seõ caáp phaùt, neáu chöa ñuû taøi nguyeân thì process seõ bò blocked. ● Caùch 2: khi yeâu caàu taøi nguyeân, process khoâng ñang giöõ baát kyø taøi nguyeân naøo. Neáu ñang giöõ thì phaûi traû laïi tröôùc khi yeâu caàu. ● Ví duï ñeå so saùnh hai caùch treân: in döõ lieäu töø tape drive. Theo caùch 1: process yeâu caàu tape drive vaø printer moät laàn; coù theå vöøa ñoïc vöøa in hoaëc ñoïc xong roài in Theo caùch 2: process yeâu caàu tape drive, ñoïc vaøo boä nhôù, traû laïi tape drive, roài yeâu caàu printer… ● Nhaän xeùt: caùch 1 laø tröôøng hôïp ñaëc bieät cuûa caùch 2. 18
- 2. (tt) ● Khuyeát ñieåm cuûa caùc caùch treân: Hieäu suaát söû duïng taøi nguyeân (resource utilization) thaáp Quaù trình coù theå bò starvation 19
- Ngaên deadlock (3/4) 3. Ngaên No Preemption Cho pheùp laáy laïi taøi nguyeân ñaõ caáp phaùt cho quaù trình (thöôøng phaûi baûo ñaûm quaù trình sau ñoù coù theå tieáp tuïc bình thöôøng) Chæ thích hôïp cho loaïi taøi nguyeân coù traïng thaùi deã daøng löu vaø phuïc hoài nhö ● CPU ● Register ● Vuøng nhôù Khoâng thích hôïp cho loaïi taøi nguyeân nhö printer, DVD drive 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Hệ điều hành - Chương 5: Deadlock
36 p | 184 | 24
-
Bài giảng Hệ điều hành: Chương 4 - Deadlock
48 p | 330 | 24
-
Bài giảng Hệ điều hành: Chương 6 - ThS. Hà Lê Hoài Thương
45 p | 159 | 20
-
Bài giảng Hệ điều hành: Chương 4 - ĐH Bách khoa TP HCM
22 p | 93 | 12
-
Bài giảng Hệ điều hành - Chương 3: Deadlock (Lương Minh Huấn)
62 p | 87 | 12
-
Bài giảng Hệ điều hành: Chương 4 - Thoại Nam, Lê Ngọc Minh
16 p | 46 | 7
-
Bài giảng Hệ điều hành: Chương 6 - ThS. Hà Lê Hoài Trung
52 p | 68 | 6
-
Bài giảng Hệ điều hành: Chương 6.2 - ThS. Phan Đình Duy
34 p | 86 | 6
-
Bài giảng Hệ điều hành: Chapter 6.1 - ThS. Trần Thị Như Nguyệt
30 p | 40 | 5
-
Bài giảng Hệ điều hành: Chapter 6.2 - ThS. Trần Thị Như Nguyệt
33 p | 68 | 5
-
Bài giảng Nguyên lý hệ điều hành (Bài giảng tuần 5) - Nguyễn Hải Châu
11 p | 97 | 5
-
Bài giảng Hệ điều hành: Chương 6.1 - ThS. Phan Đình Duy
28 p | 56 | 4
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 3 - Nguyễn Thị Uyên Nhi
64 p | 45 | 4
-
Bài giảng Hệ điều hành: Chương 6.2 - ĐH Công nghệ thông tin
34 p | 66 | 4
-
Bài giảng Hệ điều hành nâng cao: Bài 6 - Trần Hạnh Nhi
4 p | 35 | 3
-
Bài giảng Hệ điều hành: Chương 6.1 - ĐH Công nghệ thông tin
28 p | 48 | 3
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Deadlock
28 p | 29 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn