Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 49 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
49
Dung lượng
1,47 MB
Nội dung
CT107 Hệ Điều Hành Chương Deadlock (Khóa Chết) Giảng viên: Trần Công Án (tcan@cit.ctu.edu.vn) Bộ môn Mạng máy tính & Truyền thông Khoa Công Nghệ Thông Tin & Truyền Thông Đại học Cần Thơ 2014 [CT107] Ch6 Deadlock Mục Tiêu Mô tả tình trạng deadlock hệ thống – trạng thái mà tiến trình tiến triển để hoàn thành tác vụ chúng Trình bày phương pháp để ngăn chặn tránh deadlock; biện pháp để phát phục hồi hệ thống deadlock xảy TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock [CT107] Ch6 Deadlock Nội Dung TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock [CT107] Ch6 Deadlock Giới thiệu Deadlock Deadlock gì? Deadlock Là Gì? Deadlock trạng thái hệ thống đó: tập hợp tiến trình bị nghẽn tiến trình giữ tài nguyên chờ tài nguyên bị giữ tiến trình khác tập tiến trình bị nghẽn Ví dụ 1: Giả sử hệ thống có tiến trình P Q F1, F2 tập tin Tiến trình P giữ F1 cần truy xuất thêm F2 Tiến trình Q giữ F2 cần truy xuất thêm F1 TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock [CT107] Ch6 Deadlock Giới thiệu Deadlock Deadlock gì? Ví Dụ – Traffic Deadlock Chapter Deadlocks 342 • • • • • • • • • • • • Figure 7.10 Traffic deadlock for Exercise 7.11 TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock [CT107] Ch6 Deadlock Giới thiệu Deadlock Điều kiện phát sinh deadlock Điều Kiện Phát Sinh Deadlock Loại trừ hỗ tương: tài nguyên giữ chế độ không chia sẻ (nonsharable mode) Giữ chờ: tiến trình giữ tài nguyên đợi thêm tài nguyên bị giữ tiến trình khác Không trưng dụng tài nguyên: không trưng dụng tài nguyên cấp phát tiến trình, trừ tiến trình tự hoàn trả Chờ đợi vòng tròn: tồn tập tiến trình {P0 , P1 , , Pn } chờ đợi sau: P0 đợi tài nguyên P1 giữ, P1 đợi tài nguyên P2 giữ, , Pn đợi tài nguyên P0 giữ TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock [CT107] Ch6 Deadlock Giới thiệu Deadlock Mô hình hóa hệ thống Mô Hình Hóa Hệ Thống Hệ thống gồm tập loại tài nguyên, kí hiệu R1 , R2 , , Rm Ví dụ: CPU cycles, memory space, I/O devices, Mỗi loại tài nguyên Ri có tập thể (instances) Wi Tiến trình sử dụng tài nguyên theo bước: Yêu cầu (request) – phải chờ không đáp ứng Sử dụng (use) Giải phóng (release) Các tác vụ yêu cầu hoàn trả thực lời gọi hệ thống TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock [CT107] Ch6 Deadlock Giới thiệu Deadlock Đồ thị cấp phát tài nguyên (Resourece Allocation Graph – RAG) Đồ Thị Cấp Phát Tài Nguyên – RAG Là đồ thị có hướng, với tập đỉnh V tập cạnh E Tập đỉnh V gồm loại: Tập P = {P1 , P2 , , Pn }: tập tiến trình hệ thống Tập R = {R1 , R2 , , Rm }: tập tài nguyên hệ thống Tập cạnh gồm loại: Cạnh yêu cầu (request edge): có hướng từ Pi đến Rj Cạnh cấp phát (assignment edge): có hướng từ RJ đến Pi TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock [CT107] Ch6 Deadlock Giới thiệu Deadlock Đồ thị cấp phát tài nguyên (Resourece Allocation Graph – RAG) Ký Hiệu Tiến trình: Pi ●● ●● Loại tài nguyên (với thể hiện): Pi yêu cầu thể Rj : Pi giữ thể Rj : TS Trần Công Án (Khoa CNTT&TT) Pi Pi [CT107] Ch6 Deadlock ●● ●● ●● ●● Rj Rj [CT107] Ch6 Deadlock Giới thiệu Deadlock Đồ thị cấp phát tài nguyên (Resourece Allocation Graph – RAG) Đồ Thị Cấp Phát Tài Nguyên – Ví Dụ ks Đồ thị cấp phát tài nguyên (không có chu trình không deadlock): R1 R3 P = {P1 , P2 , P3 } R = {R1 , R2 , R3 , R4 } P1 P2 P3 E = {P1 → R1 , P2 → R3 , R1 → P2 , R2 → P2 , R2 → P1 , R3 → P3 } Thể loại tài nguyên: R1 : 1; R2 : 2; R3 : 1; R4 : Trạng thái tiến trình: P1 : giữ (R2 , 1); chờ (R1 , 1) R2 P2 : giữ (R1 , 1), (R2 , 1); chờ (R3 , 1) R4 Figure TS Trần 7.1 Công Resource-allocation Án (Khoa CNTT&TT) P3 : giữ (R3 , 1) graph.[CT107] Ch6 Deadlock 10 [CT107] Ch6 Deadlock Ngăn chặn tránh deadlock Tránh deadlock Giải Thuật Banker – Bài Tập Yêu cầu (3, 3, 0) P4 có đáp ứng không? Yêu cầu (0, 2, 0) P0 có đáp ứng không? TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 35 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phát deadlock Phát Hiện Deadlock Trong cách tiếp cận “phát phục hồi” vấn đề deadlock: Chấp nhận cho deaclock xảy hệ thống Sử dụng giải thuật để phát deadlock Nếu có deadlock tiến hành phục hồi hệ thống, dùng sơ đồ phục hồi thích hợp Các giải thuật phát deadlock thường sử dụng RAG Có loại giải thuật: Cho trường hợp loại tài nguyên Cho trường hợp loại tài nguyên có nhiều thể TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 36 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phát deadlock Mỗi Loại Tài Nguyên Chỉ Có Thể Hiện Sử dụng biến thể RAG – đồ thị wait-for: Các nút: tiến trình Các cạnh: Pi → Pj Pi đợi Pj Deadlock tồn hệ thống đồ thị wait-for tồn chu trình Giải thuật xây dựng đồ thị wait-for tìm kiếm chu trình thực định kỳ hệ thống TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 37 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phát deadlock Đồ Thị Cấp Phát Tài Nguyên & Wait-for 334 334 Chapter Deadlocks Chapter Deadlocks Một đồ thị7 Cấp phát tài nguyên đồ thị Wait-for tương ứng: P5 P5 R1 R3 R1 R4 R3 R4 P5 P5 P1 P2 P1 P3 P2 P3 P1 P2 P1 P4 P4 R2 R2 P3 P4 R5 R5 (a) P3 P2 (a) (b) P4 (b) Figure 7.9 (a) Resource-allocation graph (b) Corresponding wait-for graph TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 38 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phát deadlock Mỗi Loại Tài Nguyên Có Nhiều Thể Hiện Cấu trúc liệu giải thuật: Available: vector có chiều dài m Số thể sẵn dùng loại tài nguyên Allocation: ma trận n × m Số thể cấp phát cho tiến trình Request: ma trận n × m Yêu cầu tài nguyên tiến trình Nếu Request[i, j] = k, Pi yêu cầu thêm k thể Rj TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 39 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phát deadlock Mỗi Loại Tài Nguyên Có Nhiều Thể Hiện Giải thuật phát deadlock bao gồm bước: Cho Work Finish vector kích thước tương ứng m n Khởi tạo: a Work = Available b for i = 0, 1, , (n − 1) if Allocation[i] = then Finish[i] = false else Finish[i] = true (next slide) TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 40 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phát deadlock Mỗi Loại Tài Nguyên Có Nhiều Thể Hiện Tìm i ∈ [0, n − 1] thỏa mãn hai điều kiện sau: a Finish[i] = false b Request[i] ≤ Work Nếu không tồn tại, nhảy đến bước Work = Work + Allocation[i] Finish[i] = true Quay bước Nếu tồn i với Finish[i] = false: Hệ thống trạng thái deadlock Nếu Finish[i] = false ⇒ Pi bị deadlock TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 41 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phát deadlock Mỗi Loại Tài Nguyên Có Nhiều Thể Hiện Ví dụ 1: Cho hệ thống có tiến trình P0 , , P4 loại tài nguyên: A (7 thể hiện), B (2 thể hiện), C (6 thể hiện) Hiện trạng hệ thống T0 : Alloca&on Request A B C A B C P0 P1 P2 P3 P4 Thực giải thuật, ta tìm chuỗi P0 , P2 , P1 , P3 , P4 dẫn đến Finish[i] = true với i = ⇒ hệ thống không deadlock T0 Available = (0, 0, 0) TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 42 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phát deadlock Mỗi Loại Tài Nguyên Có Nhiều Thể Hiện Ví dụ 2: Giả sử thời điểm T0 T1 , P2 yêu cầu thêm thể tài nguyên loại C Trạng thái hệ thống T1 gì? Hiện trạng hệ thống T1 : Alloca&on Request A B C A B C P0 P1 P2 P3 P4 Available = (0, 0, 0) TS Trần Công Án (Khoa CNTT&TT) Chạy giải thuật p/hiện deadlock: Finish[0] = true Finish[1 4] = false ⇒ Hệ thống deadlock (P1 , P2 , P3 , P4 ) Nhận xét: tài nguyên thu hồi từ P0 không đủ đáp ứng cho t/trình khác [CT107] Ch6 Deadlock 43 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phát deadlock Sử Dụng Giải Thuật Phát Hiện Deadlock Khi nào/Tần suất thực phát deadlock phụ thuộc vào: Deadlock có thường xảy không? Có nhiều tiến trình tham gia vào deadlock hay không? Nếu kiểm tra deadlock thường xuyên hệ thống deadlock làm hao phí tài nguyên (CPU) hệ thống Tuy nhiên, thực phát deadlock với tần suất thấp: Nếu deadlock diễn thường xuyên: nhiều chu trình đồ thị ⇒ xác tiến trình gây deadlock Nếu có nhiều tiến trình tham gia vào deadlock: hiệu suất sử dụng tài nguyên hệ thống giảm TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 44 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phục hồi deadlock Phục Hồi Deadlock Các giải pháp để phục hồi deadlock: Bằng tay (manual): người sử dụng/điều hành giải Phục hồi tự động cách “phá” deadlock, có giải pháp: Ngưng tiến trình: ngưng (terminate) vài tiến trình tham gia vào deadlock Lấy lại tài nguyên: trưng dụng vài tài nguyên tiến trình bị deadlock TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 45 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phục hồi deadlock Ngưng Tiến Trình Ngưng tất tiến trình bị deadlock: Chi phí lớn, đặc biệt ngưng tiến trình “già” Ngưng tiến trình không deadlock: Kết hợp với giải thuật phát deadlock ⇒ phải xét đến chi phí Các yếu tố chọn tiến trình cần ngưng: Độ ưu tiên Thời gian thực thi, thời gian lại Loại tài nguyên tiến trình sử dụng Tài nguyên cần thêm Số lượng tiến trình bị ngưng Loại tiến trình TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 46 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phục hồi deadlock Lấy Lại Tài Nguyên Lần lượt lấy lại tài nguyên tiến trình, cấp phát cho tiến trình khác không deadlock Các vấn đề thu hồi tài nguyên: Chọn “nạn nhân”: chọn tài nguyên tiến trình cần thu hồi (dựa số tài nguyên sở hữu, thời gian thực thi, ) Cuộn lại (rollback): cuộn lại đến trạng thái an toàn, khởi động lại từ vị trí đòi hỏi hệ thống phải lưu lại thông tin trạng thái tiến trình thực thi Đói tài nguyên: tránh trình trạng tiến trình bị chọn làm nạn nhân TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 47 [CT107] Ch6 Deadlock Tổng kết Tổng Kết Dealock: trạng thái tiến trình chờ vòng tròn lẫn nhau, tiến triển Đồ thị cấp phát tài nguyên: mô hình trạng thái cấp phát, sử dụng tài nguyên tiến trình hệ thống Có cách tiếp cận vấn đề deadlock: Ngăn chặn tránh deadlock: đảm bảo trạng thái deadlock không xảy Phát khôi phục deadlock: cho phép deadlock xảy ra, dùng giải thuật kiểm tra trạng thái deadlock theo định kỳ thực khôi phục deadlock có Các giải thuật ngăn chặn, tránh phát deadlock dựa vào đồ thị cấp phát tài nguyên TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 48 [...]... phát hiện deadlock và phục hồi 3 Không quan tâm và không xử lý vấn đề deadlock trong hệ thống Khá nhiều hệ điều hành sử dụng phương pháp này Tuy nhiên, nếu deadlock không được phát hiện và xử lý sẽ dẫn đến việc giảm hiệu suất của hệ thống Cuối cùng, hệ thống có thể ngưng hoạt động và phải khởi động lại TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 14 [CT107] Ch6 Deadlock Ngăn chặn và tránh deadlock. .. Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 34 [CT107] Ch6 Deadlock Ngăn chặn và tránh deadlock Tránh deadlock Giải Thuật Banker – Bài Tập 1 Yêu cầu (3, 3, 0) của P4 có được đáp ứng không? 2 Yêu cầu (0, 2, 0) của P0 có được đáp ứng không? TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 35 [CT107] Ch6 Deadlock Phát hiện và phục hồi deadlock Phát hiện deadlock Phát Hiện Deadlock Trong cách tiếp cận “phát... tránh deadlock Có hai biện pháp để đảm bảo hệ thống không rơi vào trạng thái deadlock: 1 Ngăn chặn deadlock (deadlock prevention): không cho phép (ít nhất) một trong bốn điều kiện cần cho deadlock xảy ra 2 Tránh deadlock (deadlock avoidance): các tiến trình cần cung cấp thông tin về tài nguyên nó cần để hệ thống cấp phát tài nguyên một cách thích hợp TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock. .. [CT107] Ch6 Deadlock 19 [CT107] Ch6 Deadlock Ngăn chặn và tránh deadlock Tránh deadlock Tránh Deadlock Cách tiếp cận tránh deadlock cho phép sử dụng tài nguyên hiệu quả hơn ngăn chặn deadlock, bằng cách: Yêu cầu mỗi tiến trình khai báo số lượng tài nguyên tối đa cần để thực hiện công việc Giải thuật tránh deadlock sẽ kiểm tra trạng thái cấp phát tài nguyên để đảm bảo hệ thống không rơi vào trạng thái deadlock. .. thể hiện: chắc chắn có deadlock Nếu mỗi loại tài nguyên có nhiều thể hiện: có thể có deadlock TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 13 [CT107] Ch6 Deadlock Các cách tiếp cận với vấn đề deadlock Các Cách Tiếp Cận Đối Với Vấn Đề Deadlock 1 Đề ra các giao thức để đảm bảo cho hệ thống không bao giờ rơi vào trạng thái deadlock 2 Cho phép hệ thống rơi vào trạng thái deadlock, sau đó sử dụng... không deadlock: R1 P2 P3 P1 Chu trình: P1 → R1 → P3 → R2 → P1 Tại sao không deadlock? R2 P4 3 Resource-allocation graph with a cycle but no deadlock TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 12 [CT107] Ch6 Deadlock Giới thiệu Deadlock Đồ thị cấp phát tài nguyên (Resourece Allocation Graph – RAG) Đồ Thị Cấp Phát Tài Nguyên & Deadlock Nếu đồ thị không có chu trình: chắc chắn không có deadlock. .. sẽ cấp phát ngay Figure 7 .6 Safe, unsafe, and deadlocked state TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 23 [CT107] Ch6 Deadlock Ngăn chặn và tránh deadlock Tránh deadlock Giải Thuật Đồ Thị Cấp Phát Tài Nguyên Được áp dụng cho hệ thống chỉ có 1 thể hiện cho mỗi loại tài nguyên Bổ sung thêm 1 loại cạnh, “cạnh dự định” yêu cầu, Pi → Rj : Pi có thể 330 biểu Chapter 7 Deadlocks yêu cầu Rj , được... (nếu sau s P1 lại yêu cầu R2 ) ⇒ có thể dẫn đến deadlock R1 P1 R1 P2 R2 Resource-allocation graph for TS Trần Công Án (Khoa CNTT&TT) P2 requests R2 −−−−−−−−−→ P1 P2 R2 deadlock avoidance Figure 7.8 An unsafe state in a resource-allocati [CT107] Ch6 Deadlock 26 [CT107] Ch6 Deadlock Ngăn chặn và tránh deadlock Tránh deadlock Giải Thuật Banker Áp dụng cho hệ thống có nhiều thể hiện cho mỗi loại tài nguyên... [CT107] Ch6 Deadlock 17 [CT107] Ch6 Deadlock Ngăn chặn và tránh deadlock Ngăn chặn deadlock Ngăn Chặn Deadlock – Điều Kiện 3 3 Ngăn Không trưng dụng (no prermption): nếu một tiến trình A có đang giữ tài nguyên và yêu cầu thêm tài nguyên đang giữ bởi tiến trình khác thì: Cách 1: hệ thống lấy lại mọi tài nguyên A đang giữ và A sẽ khởi động lại khi cả tài nguyên cũ và mới sẵn sàng cho nó Cách 2: hệ thống... Trần Công (Khoa can CNTT&TT) [CT107] Ch6 Deadlock 22 A Án system go from a safe state to an unsafe state Suppose that, at time [CT107] Ch6 Deadlock Ngăn chặn và tránh deadlock Tránh deadlock An unsafe state may lead to a deadlock As long as operating system can avoid unsafe (and deadlocked) stat the operating system cannot prevent processes from req such a way that a deadlock occurs The behavior of th ... tâm không xử lý vấn đề deadlock hệ thống Khá nhiều hệ điều hành sử dụng phương pháp Tuy nhiên, deadlock không phát xử lý dẫn đến việc giảm hiệu suất hệ thống Cuối cùng, hệ thống ngưng hoạt động... [CT107] Ch6 Deadlock 14 [CT107] Ch6 Deadlock Ngăn chặn tránh deadlock Ngăn chặn tránh deadlock Có hai biện pháp để đảm bảo hệ thống không rơi vào trạng thái deadlock: Ngăn chặn deadlock (deadlock. .. Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 15 [CT107] Ch6 Deadlock Ngăn chặn tránh deadlock Ngăn chặn deadlock Ngăn Chặn Deadlock – Điều kiện Ngăn bốn điều kiện cần deadlock – thắt chặt cách thức