Bài giảng Hệ điều hành - Chương 6.2: Deadlocks cung cấp cho người học các kiến thức: Giải thuật đồ thị cấp phát tài nguyên, giải thuật banker, phát hiện deadlock, phục hồi deadlock. Mời các bạn cùng tham khảo nội dung chi tiết.
HỆ ĐIỀU HÀNH Chương – Deadlocks (2) 14/03/2017 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved Câu hỏi ôn tập chương 6-1 Deadlock gì? Cho ví dụ thực tế? Một tiến trình gọi bị deadlock? trì hỗn vơ hạn định? Khi xảy deadlock? Các phương pháp giải deadlock? Làm để ngăn deadlock? Làm để tránh deadlock? 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved Câu hỏi ôn tập chương 6-1 (tt) Sơ đồ sau có xảy deadlock? R3 R1 P1 P3 P2 Deadlock ? R2 11/2/2017 R4 Copyrights 2017 CE-UIT All Rights Reserved Câu hỏi ôn tập chương 6-1 (tt) Hệ thơng có 18 tap drive tiến trình P0, P1, P2, P3 Tại thời điểm to 11/2/2017 Max Allocation Need Available P0 10 5 P1 2 P2 15 13 16 P3 10 10 Copyrights 2017 CE-UIT All Rights Reserved Mục tiêu chương 6-2 Hiểu thêm phương pháp giải deadlock Tránh deadlock Phát Phục hồi Hiểu thực giải thuật Banker 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved Nội dung chương 6-2 Giải thuật đồ thị cấp phát tài nguyên Giải thuật banker Phát deadlock Phục hồi deadlock 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved Giải thuật đồ thị cấp phát tài nguyên 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved Giải thuật Banker Mỗi loại tài nguyên có nhiều thực thể Bắt chước nghiệp vụ ngân hàng Điều kiện: Mỗi tiến trình phải khai báo số lượng thực thể tối đa loại tài nguyên mà cần Khi tiến trình yêu cầu tài nguyên phải đợi Khi tiến trình có đầy đủ tài ngun phải hồn trả khoảng thời gian hữu hạn 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved Cấu trúc liệu cho giải thuật Banker n: số tiến trình; m: số loại tài nguyên Available: vector độ dài m Available[j] = k loại tài nguyên Rj có k instance sẵn sàng Max: ma trận n x m Max[i, j] = k tiến trình Pi yêu cầu tối đa k instance loại tài nguyên Rj Allocation: vector độ dài n x m Allocation[i, j] = k Pi cấp phát k instance Rj Need: vector độ dài n x m Pi cần thêm k instance Rj => Need[i, j] = Max[i, j] - Allocation[i, j] Need[i, j] = k Ký hiệu Y X Y[i] X[i], ví dụ (0, 3, 2, 1) (1, 7, 3, 2) 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved Giải thuật an toàn Gọi Work Finish hai vector độ dài m n Khởi tạo Work = Available Finish[i] = false, i = 0, 1, …, n-1 Tìm i thỏa (a) Finish[i] = false (b) Needi ≤ Work (hàng thứ i Need) Nếu không tồn i vậy, đến bước Work = Work + Allocationi Finish[i] = true quay bước Nếu Finish[i] = true, i = 1,…, n, hệ thống ở trạng thái safe 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 10 Sơ đồ cấp phát tài nguyên sơ đồ wait-for Resource-Allocation Graph 11/2/2017 Corresponding wait-for graph Copyrights 2017 CE-UIT All Rights Reserved 20 Mỗi loại tài nguyên có nhiều thực thể Available: vector độ dài m số instance sẵn sàng loại tài nguyên Allocation: ma trận n × m định nghĩa số instance loại tài nguyên cấp phát cho process Request: ma trận n × m định yêu cầu tiến trình Request [i,j] = k ⇔ Pi yêu cầu thêm k instance Rj 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 21 Giải thuật phát deadlock Gọi Work Finish vector kích thước m n Khởi tạo: a Work = Available b For i = 1, 2,…, n, Allocationi ≠ Finish[ i ] := false còn khơng Finish[ i ] := true Tìm i thỏa mãn: a Finish[ i ] = false b Requesti ≤ Work Nếu không tồn i vậy, đến bước 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 22 Giải thuật phát deadlock (tt) Work = Work + Allocationi Finish[ i ] = true quay bước Nếu Finish[ i ] = false, với số i = 1,…, n, hệ thống ở trạng thái deadlock Hơn nữa, Finish[ i ] = false Pi bị deadlocked Thời gian chạy giải thuật O(m·n2) 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 23 Giải thuật phát deadlock - Ví dụ q trình P0 ,…, P4 loại tài nguyên: A (7 instance), B (2 instance), C (6 instance) Tại thời điểm T0 Allocation Request Available A B C A B C A B C P0 0 0 0 P1 0 2 P2 3 0 P3 1 0 P4 0 0 Chuỗi sẽ cho kết quả Finish[ i ] = true, i = 1,…, n 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 24 Giải thuật phát deadlock - Ví dụ (tt) P2 yêu cầu thêm instance C Ma trận Request sau: Allocation 11/2/2017 Request Available A B C A B C A B C P0 0 0 0 P1 0 2 P2 3 0 P3 1 0 P4 0 0 Copyrights 2017 CE-UIT All Rights Reserved 25 Phục hồi deadlock Khi deadlock xảy ra, để phục hồi Báo người vận hành Hệ thống tự động phục hồi bằng cách bẻ gãy chu trình deadlock: Chấm dứt hay nhiều tiến trình Lấy lại tài nguyên từ hay nhiều tiến trình 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 26 Chấm dứt trình Chấm dứt trình bị deadlock Chấm dứt tiến trình không còn deadlock Sử dụng giải thuật phát deadlock để xác định còn deadlock hay không Dựa yếu tố để chấm dứt? Độ ưu tiên tiến trình Thời gian thực thi tiến trình thời gian còn lại Loại tài nguyên mà tiến trình sử dụng Tài nguyên mà tiến trình cần thêm để hồn tất cơng việc Số lượng tiến trình cần chấm dứt Tiến trình interactive hay batch 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 27 Lấy tài nguyên Lấy lại tài nguyên từ tiến trình, cấp phát cho tiến trình khác khơng còn deadlock Chọn “nạn nhân” để tối thiểu chi phí (có thể dựa số tài nguyên sở hữu, thời gian CPU tiêu tốn, ) Trở lại trạng thái trước deadlock (Rollback): Rollback tiến trình bị lấy lại tài nguyên trở trạng thái safe, tiếp tục tiến trình từ trạng thái Hệ thống cần lưu giữ số thơng tin trạng thái tiến trình thực thi Đói tài nguyên (Starvation): để tránh starvation, phải bảo đảm khơng có tiến trình ln ln bị lấy lại tài nguyên deadlock xảy 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 28 Phương pháp kết hợp để giải deadlock Kết hợp phương pháp Ngăn chặn (Prevention) Tránh (Avoidance) Phát (Detection) Cho phép sử dụng cách giải tối ưu cho lớp tài nguyên hệ thống Phân chia tài nguyên thành lớp theo thứ bậc Sử dụng kỹ thuật thích hợp cho việc quản lý deadlock lớp 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 29 Tóm tắt lại nội dung buổi học Giải thuật đồ thị cấp phát tài nguyên Giải thuật banker Phát deadlock Phục hồi deadlock 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 30 Bài tập Cho hệ thống có tiến trình P1 đến P4 loại tài nguyên R1 (3), R2 (2) R3 (2) P1 giữ R1 yêu cầu R2; P2 giữ R2 yêu cầu R1 R3; P3 giữ R1 yêu cầu R2; P4 giữ R3 yêu cầu R1 Vẽ đồ thị tài nguyên cho hệ thống này? Deadlock? Chuỗi an tồn? (nếu có) 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 31 Bài tập Tìm Need? Hệ thống có an tồn khơng? Nếu P1 u cầu (0,4,2,0) cấp phát cho khơng? 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 32 Bài tập Sử dụng thuật toán Banker xem trạng thái sau có an tồn hay khơng? Nếu có đưa chuỗi thực thi an tồn, khơng nêu rõ lý khơng an tồn? a Available = (0,3,0,1) b Available = (1,0,0,2) 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 33 Bài tập a b c Trả lời câu hỏi sau sử dụng giải thuật Banker Hệ thống có an tồn khơng? Đưa chuỗi an tồn có? Nếu P1 u cầu (1,1,0,0) cấp phát cho khơng? Nếu P4 u cầu (0,0,2,0) cấp phát cho không 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 34 ... 2017 CE-UIT All Rights Reserved Câu hỏi ôn tập chương 6-1 (tt) Sơ đồ sau có xảy deadlock? R3 R1 P1 P3 P2 Deadlock ? R2 11/2/2017 R4 Copyrights 2017 CE-UIT All Rights Reserved Câu hỏi ôn tập chương. .. tiêu chương 6-2 Hiểu thêm phương pháp giải deadlock Tránh deadlock Phát Phục hồi Hiểu thực giải thuật Banker 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved Nội dung chương 6-2 ... 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 19 Sơ đồ cấp phát tài nguyên sơ đồ wait-for Resource-Allocation Graph 11/2/2017 Corresponding wait-for graph Copyrights 2017 CE-UIT All Rights Reserved