BÀI TẬP CHƯƠNG (Deadlocks) Sinh viên làm thêm tập sách tham khảo “Operating System Concepts”, version 9, chương (Deadlocks) Để giải deadlock, hệ điều hành dùng cách: ▬ Ngăn (Deadlock Prevention): Khơng cho phép (ít nhất) điều kiện cần deadlock xảy ▬ Tránh (Deadlock Avoidance): Hệ thống phải trạng thái an toàn (Dùng giải thuật Banker để kiểm tra độ an tồn hệ thống: tìm chuỗi an tồn, có chuỗi an tồn tồn Hệ thống an tồn) ▬ Khi có yêu cầu cấp phát mới, hệ thống kiểm tra yêu cầu cấp phát hệ thống cịn an tồn khơng (tìm chuỗi an tồn, có chuỗi an tồn tồn Hệ thống an tồn) Nếu hệ thống an tồn, u cầu cấp phát; hệ thống không an tồn, u cầu khơng cấp phát Kiểm tra Phục hồi (Deadlock detection and Recovery): Cho phép hệ thống vào trạng thái deadlock, sau phát deadlock (Detection) phục hồi lại hệ thống (Recovery) - Bài tập dạng hệ điều hành giải deadlock theo kiểu tránh deadlock (Deadlock Avoidance) với giải thuật Banker: Tại thời điểm xem xét, hệ điều hành có process tài nguyên (A, B, C, D) với trạng thái hình bên dưới: Hệ điều hành giải deadlock cách tránh deadlock (Deadlock Avoidance) dùng giải thuật Banker để kiểm tra độ an toàn hệ thống Trả lời câu hỏi sau: a Tìm ma trận Need tương ứng b Hệ thống có an tồn khơng? c Nếu P1 yêu cầu tài nguyên (0, 4, 2, 0), hỏi u cầu có đáp ứng khơng? Nguyet TTN (2017) (Dịch từ tập chương 7, Operating System Concepts) CuuDuongThanCong.com https://fb.com/tailieudientucntt Đáp án: a Ma trận Need Need P0 0, 0, 0, P1 0, 7, 5, P2 1, 0, 0, P3 0, 0, 2, P4 0, 6, 4, b Hệ thống an toàn tồn chuỗi an toàn Đặt Work = Available = (1, 5, 2, 0) Với Work = (1, 5, 2, 0) Có thể cấp tài nguyên cần cho P0 P3 Giả sử cấp cho P0 Sau P0 thực thi xong, Allocation (0, 0, 1, 2) P0 trả cho hệ điều hành Work = (1, 5, 3, 2) Với Work = (1, 5, 3, 2) Có thể cấp tài nguyên cần cho P2 P3 Giả sử cấp cho P2 Sau P2 thực thi xong, Allocation (1, 3, 5, 4) P2 trả cho hệ điều hành Work = (2, 8, 8, 6) Với Work = (2, 8, 8, 6) Có thể cấp tài nguyên cần cho P1 P3, P4 Giả sử cấp cho P1 Sau P1 thực thi xong, Allocation (1, 0, 0, 0) P1 trả cho hệ điều hành Work = (3, 8, 8, 6) Với Work = (3, 8, 8, 6) Có thể cấp tài nguyên cần cho P3 P4 Giả sử cấp cho P3 Sau P3 thực thi xong, Allocation (0, 6, 3, 2) P3 trả cho hệ điều hành Work = (3, 14, 11, 8) Với Work = (3, 14, 11, 8), cuối cùng, P4 cấp phát tài nguyên cần Sau P4 thực thi xong, Allocation (0, 0, 1, 4) P4 trả cho hệ điều hành Work = (3, 14, 12, 12) Chuỗi an toàn là: P0, P2, P1, P3, P4 Chú ý: Còn chuỗi an toàn khác, tổng cộng 36 chuỗi an toàn trường hợp c Need P1 = (0, 7, 5, 0) P1 yêu cầu tài nguyên (0, 4, 2, 0) (0, 4, 2, 0) < (0, 7, 5, 0): hợp lệ Nếu yêu cầu (0, 4, 2, 0) P1 cấp, trạng thái hệ thống chuyển thành: 1420 P0 P1 P2 P3 P4 1100 Need 0, 0, 0, 0, 3, 3, 1, 0, 0, 0, 0, 2, 0, 6, 4, Nguyet TTN (2017) (Dịch từ tập chương 7, Operating System Concepts) CuuDuongThanCong.com https://fb.com/tailieudientucntt Dùng giải thuật Banker kiểm tra xem hệ thống có an tồn khơng: Work = Available = (1 0) Với Work = (1, 1, 0, 0) Có thể cấp tài nguyên cần cho P0 Sau P0 thực thi xong, Allocation (0, 0, 1, 2) P0 trả cho hệ điều hành Work = (1, 1, 1, 2) Với Work = (1, 1, 1, 2) Có thể cấp tài nguyên cần cho P2 Sau P2 thực thi xong, Allocation (1, 3, 5, 4) P2 trả cho hệ điều hành Work = (2, 4, 6, 6) Với Work = (2, 4, 6, 6) Có thể cấp tài nguyên cần cho P1 P3 Giả sử cấp cho P3 Sau P3 thực thi xong, Allocation (0, 6, 3, 2) P3 trả cho hệ điều hành Work = (2, 10, 9, 8) Với Work = (2, 10, 9, 8) Có thể cấp tài nguyên cần cho P1 P4 Giả sử cấp cho P1 Sau P1 thực thi xong, Allocation (1, 4, 2, 0) P1 trả cho hệ điều hành Work = (3, 14, 11, 8) Với Work = (3, 14, 11, 8), cuối cùng, P4 cấp phát tài nguyên cần Sau P4 thực thi xong, Allocation (0, 0, 1, 4) P4 trả cho hệ điều hành Work = (3, 14, 12, 12) Chuỗi an toàn là: P0, P2, P1, P3, P4 Vậy hệ thống an toàn cấp phát cho P1 (0, 4, 2, 0) Yêu cầu đáp ứng Chú ý: Cịn chuỗi an tồn khác, tổng cộng chuỗi an toàn trường hợp Cho hệ thống sau (hệ điều hành giải deadlock cách Deadlock Avoidance) a Cho Available = (0, 3, 0, 1), sử dụng giải thuật Banker để xác định xem hệ thống có an tồn khơng? b Cho Available = (1, 0, 0, 2), sử dụng giải thuật Banker để xác định xem hệ thống có an tồn khơng? Đáp án: a Khơng an tồn Do khơng tồn chuỗi an toàn (Need P2, P1 P3 đáp ứng, sau Need P0 P4 khơng được) Sinh viên tự giải thích chi tiết tập b An tồn Chuỗi an tồn có thể: P1, P2, P3, P0, P4 (Vẫn cịn chuỗi an tồn khác) Sinh viên tự giải thích chi tiết tập Nguyet TTN (2017) (Dịch từ tập chương 7, Operating System Concepts) CuuDuongThanCong.com https://fb.com/tailieudientucntt Cho hệ thống sau (hệ điều hành giải deadlock cách Deadlock Avoidance) Sử dụng giải thuật Banker, trả lời câu hỏi sau: a Nếu P1 yêu cầu thêm (1, 1, 0, 0), u cầu có đáp ứng khơng? b Nếu P4 yêu cầu thêm (0, 0, 2, 0), yêu cầu có đáp ứng khơng? Đáp án: a Được Sinh viên tự giải thích tập b Sinh viên tự giải Nguyet TTN (2017) (Dịch từ tập chương 7, Operating System Concepts) CuuDuongThanCong.com https://fb.com/tailieudientucntt ... trả cho hệ điều hành Work = (1, 5, 3, 2) Với Work = (1, 5, 3, 2) Có thể cấp tài nguyên cần cho P2 P3 Giả sử cấp cho P2 Sau P2 thực thi xong, Allocation (1, 3, 5, 4) P2 trả cho hệ điều hành ... trả cho hệ điều hành Work = (3, 8, 8, 6) Với Work = (3, 8, 8, 6) Có thể cấp tài nguyên cần cho P3 P4 Giả sử cấp cho P3 Sau P3 thực thi xong, Allocation (0, 6, 3, 2) P3 trả cho hệ điều hành ... trả cho hệ điều hành Work = (2, 4, 6, 6) Với Work = (2, 4, 6, 6) Có thể cấp tài nguyên cần cho P1 P3 Giả sử cấp cho P3 Sau P3 thực thi xong, Allocation (0, 6, 3, 2) P3 trả cho hệ điều hành