Bài giảng Hệ điều hành: Chương 6 - ThS. Hà Lê Hoài Thương
lượt xem 20
download
Chương 6 Tắc nghẽn (Deadlock) thuộc bài giảng hệ điều hành nhằm trình bày về các kiến thức: mô hình hệ thống, điều kiện cần của deadlock, Resource Allocation Graph (RAG), phương pháp giải quyết Deadlock, phương pháp kết hợp để giải quyết Deadlock.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Hệ điều hành: Chương 6 - ThS. Hà Lê Hoài Thương
- Chöông 6 : Taéc ngheõn(Deadlock) Moâ hình heä thoáng Ñònh nghóa Ñieàu kieän caàn cuûa deadlock Resource Allocation Graph (RAG) Phöông phaùp giaûi quyeát deadlock Deadlock prevention Deadlock avoidance Deadlock detection Deadlock recovery Phöông phaùp keát hôïp ñeå giaûi quyeát Deadlock Khoa KTMT 1
- Vaán ñeà deadlock trong heä thoáng Tình huoáng: moät taäp caùc process bò blocked, moãi process giöõ taøi nguyeân vaø ñang chôø taøi nguyeân maø process khaùc trong taäp ñang giöõ. Ví duï 1 ‟ Giaû söû heä thoáng coù 2 file treân ñóa. ‟ P1 vaø P2 moãi process ñang môû moät file vaø yeâu caàu môû file kia. Ví duï 2 ‟ Semaphore A vaø B, khôûi taïo baèng 1 P0 P1 wait(A); wait(B); wait(B); wait(A); Khoa KTMT 2
- 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 , bao goàm: ‟ CPU cycle, khoâng gian boä nhôù, thieát bò I/O, file, semaphore,… „ Moãi loaïi taøi nguyeân Ri coù Wi thöïc theå (instance). Giaû söû taøi nguyeân taùi söû duïng theo kyø (Serially Reusable Resources) ‟ 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 Caùc taùc vuï yeâu caàu (request) vaø hoaøn traû (release) ñeàu laø system call. Ví duï ‟ request/release device ‟ open/close file ‟ allocate/free memory ‟ wait/signal Khoa KTMT 3
- Ñònh nghóa Moät tieán trình goïi laø deadlocked neáu noù ñang ñôïi moät söï kieän maø seõ khoâng bao giôø xaûy ra. Thoâng thöôøng, coù nhieàu hôn moät tieán trình bò lieân quan trong moät deadlock. Moät tieán trình goïi laø trì hoaõn voâ haïn ñònh (indefinitely postponed) neáu noù bò trì hoaõn moät khoaûng thôøi gian daøi laëp ñi, laëp laïi trong khi heä thoáng ñaùp öùng cho nhöõng tieán trình khaùc . i.e. Moät tieán trình saün saøng ñeå xöû lyù nhöng noù khoâng bao giôø nhaän ñöôïc CPU. Khoa KTMT 4
- Ñieàu kieän caàn ñeå xaûy ra deadlock Boán ñieàu kieän caàn (necessary condition) ñeå xaûy ra deadlock 1. Loaïi tröø hoã töông (Mutual exclusion): ít nhaát moät taøi nguyeân ñöôïc giöõ theo nonsharable mode (ví duï: printer; ví duï sharable resource: read-only files). 2. Giöõ vaø chôø caáp theâm taøi nguyeân (Hold and wait): moät process ñang giöõ ít nhaát moät taøi nguyeân vaø ñôïi theâm taøi nguyeân do quaù trình khaùc ñang giöõ. Khoa KTMT 5
- Ñieàu kieän caàn ñeå xaûy ra deadlock (tt) 3. Khoâng tröng duïng (No preemption): (= no resource preemption) taøi nguyeân khoâng theå bò laáy laïi, maø chæ coù theå ñöôïc traû laïi töø process ñang giöõ taøi nguyeân ñoù khi noù muoán. 4. Chu trình ñôïi (Circular wait): toàn taïi moät taäp {P0,…,Pn} caùc quaù trình ñang ñôïi sao cho P0 ñôïi moät taøi nguyeân maø P1 ñang giöõ P1 ñôïi moät taøi nguyeân maø P2 ñang giöõ … Pn ñôïi moät taøi nguyeân maø P0 ñang giöõ Khoa KTMT 6
- Resource Allocation Graph (tt) 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 Khoa KTMT 7
- Ñoà thò caáp phaùt taøi nguyeân Resource Allocation Graph 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: Caïnh yeâu caàu (Request edge): ø Pi Rj Caïnh caáp phaùt (Assignment edge): Rj Pi Khoa KTMT 8
- Ví duï veà RAG R1 R3 P1 P2 P3 R2 R4 Khoa KTMT 9
- Ví duï veà RAG (tt) R1 R3 P1 P2 P3 Deadlock xaûy ra! R2 R4 Khoa KTMT 10
- RAG vaø deadlock Ví duï moät RAG chöùa chu trình nhöng khoâng xaûy ra deadlock: P4 coù theå traû laïi instance cuûa R2. R1 P2 P1 R2 P3 Lý do vì sao không xảy ra deadlock ? P4 Khoa KTMT 11
- RAG vaø deadlock (tt) RAG khoâng chöùa chu trình (cycle) 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 Khoa KTMT 12
- Caùc phöông phaùp giaûi quyeát deadlock (1) „ 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 thích hôïp Khoa KTMT 13
- Caùc phöông phaùp giaûi quyeát deadlock (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. Khaù nhieàu heä ñieàu haønh söû duïng phöông phaùp naøy. ‟ 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å ngöng hoaït ñoäng vaø phaûi ñöôïc khôûi ñoäng laïi. Khoa KTMT 14
- 1. Ngaên deadlock (deadlock prevention) 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): khoâng caàn thieát Khoa KTMT 15
- Ngaên deadlock (tt) 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 khoâng ñuû taøi nguyeân thì process phaûi bò blocked. ‟ Caùch 2: khi yeâu caàu taøi nguyeân, process khoâng ñöôïc giöõ baát kyø taøi nguyeân naøo. Neáu ñang coù thì phaûi traû laïi tröôùc khi yeâu caàu. ‟ Ví duï ñeå so saùnh hai caùch treân: moät quaù trình copy döõ lieäu töø tape drive sang disk file, saép xeáp disk file, roài in keát quaû ra printer. ‟ 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 Khoa KTMT 16
- Ngaên deadlock (tt) 3. Ngaên No Preemption: neáu process A coù giöõ taøi nguyeân vaø ñang yeâu caàu taøi nguyeân khaùc nhöng taøi nguyeân naøy chöa caáp phaùt ngay ñöôïc thì ‟ Caùch 1: Heä thoáng laáy laïi moïi taøi nguyeân maø A ñang giöõ A chæ baét ñaàu laïi ñöôïc khi coù ñöôïc caùc taøi nguyeân ñaõ bò laáy laïi cuøng vôùi taøi nguyeân ñang yeâu caàu ‟ Caùch 2: Heä thoáng seõ xem taøi nguyeân maø A yeâu caàu Neáu taøi nguyeân ñöôïc giöõ bôûi moät process khaùc ñang ñôïi theâm taøi nguyeân, taøi nguyeân naøy ñöôïc heä thoáng laáy laïi vaø caáp phaùt cho A. Neáu taøi nguyeân ñöôïc giöõ bôûi process khoâng ñôïi taøi nguyeân, A phaûi ñôïi vaø taøi nguyeân cuûa A bò laáy laïi. Tuy nhieân heä thoáng chæ laáy laïi caùc taøi nguyeân maø process khaùc yeâu caàu Khoa KTMT 17
- Ngaên deadlock (tt) 4. Ngaên Circular Wait: gaùn moät thöù töï cho taát caû caùc taøi nguyeân trong heä thoáng. ‟ Taäp hôïp loaïi taøi nguyeân: R={R1, R2,…,Rm } Haøm aùnh xaï: F: R->N ‟ Ví duï: F(tape drive) = 1, F(disk drive) = 5, F(printer) = 12 F laø haøm ñònh nghóa thöù töï treân taäp caùc loaïi taøi nguyeân. Khoa KTMT 18
- Ngaên deadlock (tt) 4. Ngaên Circular Wait (tt) ‟ Moãi process chæ coù theå yeâu caàu thöïc theå cuûa moät loaïi taøi nguyeân theo thöù töï taêng daàn (ñònh nghóa bôûi haøm F) cuûa loaïi taøi nguyeân. Ví duï Chuoãi yeâu caàu thöïc theå hôïp leä: tape drive disk drive printer Chuoãi yeâu caàu thöïc theå khoâng hôïp leä: disk drive tape drive ‟ Khi moät process yeâu caàu moät thöïc theå cuûa loaïi taøi nguyeân Rj thì noù phaûi traû laïi caùc taøi nguyeân Ri vôùi F(Ri) > F(Rj). R1 ‟ “Chöùng minh” giaû söû toàn taïi moät chu trình deadlock F(R4) < F(R1) P1 P2 F(R1) < F(R2) F(R2) < F(R3) R4 R2 F(R3) < F(R4) „ Vaäy F(R4) < F(R4), maâu thuaãn! R3 P4 P3 Khoa KTMT 19
- 2. Traùnh taéc ngheõn Deadlock avoidance Deadlock prevention söû duïng taøi nguyeân khoâng hieäu quaû. Deadlock avoidance vaãn ñaûm baûo hieäu suaát söû duïng taøi nguyeân toái ña ñeán möùc coù theå. Yeâu caàu moãi process khai baùo soá löôïng taøi nguyeân toái ña caàn ñeå thöïc hieän coâng vieäc Giaûi thuaät deadlock-avoidance seõ kieåm tra traïng thaùi caáp phaùt taøi nguyeân (resource-allocation state) ñeå baûo ñaûm heä thoáng khoâng rôi vaøo deadlock. „ Traïng thaùi caáp phaùt taøi nguyeân ñöôïc ñònh nghóa döïa treân soá taøi nguyeân coøn laïi, soá taøi nguyeân ñaõ ñöôïc caáp phaùt vaø yeâu caàu toái ña cuûa caùc process. Khoa KTMT 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Hệ điều hành: Chương 1 - ThS. Hà Lê Hoài Thương
39 p | 182 | 33
-
Bài giảng Hệ điều hành - Chương 1: Giới thiệu hệ điều hành
32 p | 167 | 16
-
Bài giảng Hệ điều hành: Chương 9 - ĐH Bách khoa TP HCM
56 p | 116 | 13
-
Bài giảng Hệ điều hành: Chương 2 - Trần Công Án (ĐH Cần Thơ)
39 p | 136 | 11
-
Bài giảng Hệ điều hành - Chương 5: Quản lý vào ra
30 p | 165 | 10
-
Bài giảng Hệ điều hành: Chương 1 - Phan Xuân Huy
25 p | 143 | 9
-
Bài giảng Hệ điều hành: Chương 1C - Cấu trúc hệ điều hành
22 p | 133 | 9
-
Bài giảng Hệ điều hành: Chương 2 - Hà Duy An (ĐH Cần Thơ)
45 p | 106 | 9
-
Bài giảng Hệ điều hành: Chương 1 - Nguyễn Phan Trung
43 p | 122 | 9
-
Bài giảng Hệ điều hành: Chương 2 - ThS. Hà Lê Hoài Trung
20 p | 123 | 9
-
Bài giảng Hệ điều hành: Chương 2 - ThS. Phan Đình Duy
36 p | 78 | 7
-
Bài giảng Hệ điều hành: Chương 1 - TS. Ngô Hữu Dũng
60 p | 122 | 7
-
Bài giảng Hệ điều hành: Chương 1 - Đặng Minh Quân
23 p | 74 | 6
-
Bài giảng Hệ điều hành: Chương 1 - ThS. Huỳnh Triệu Vỹ
156 p | 78 | 5
-
Bài giảng Hệ điều hành - Chương 1: Tổng quan hệ điều hành (Lương Minh Huấn)
109 p | 45 | 5
-
Bài giảng Hệ điều hành: Chương 1 - ĐH Bách khoa TP Hồ Chí Minh
26 p | 117 | 5
-
Bài giảng Hệ điều hành: Chương 2 - ĐH Công nghệ thông tin
36 p | 67 | 3
-
Bài giảng Hệ điều hành - Chương 1: Mở đầu
13 p | 86 | 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