Bài giảng Hệ điều hành: Chương 6.2 - ĐH Công nghệ thông tin

34 7 0
Bài giảng Hệ điều hành: Chương 6.2 - ĐH Công nghệ thông tin

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Hệ điều hành: Chương 6.2 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 1/17/2018 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? 1/17/2018 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? R1 P2 P1 R2 1/17/2018 R3 P3 Deadlock ? 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 1/17/2018 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 1/17/2018 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 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Giải thuật đồ thị cấp phát tài nguyên 1/17/2018 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 1/17/2018 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  Need[i, j] = k Pi cần thêm k instance Rj  => Need[i, j] = Max[i, j] - Allocation[i, j] Ký hiệu Y  X  Y[i]  X[i], ví dụ (0, 3, 2, 1)  (1, 7, 3, 2) 1/17/2018 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 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 10 Sơ đồ cấp phát tài nguyên sơ đồ wait-for Resource-Allocation Graph 1/17/2018 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 1/17/2018 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 1/17/2018 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) 1/17/2018 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 1/17/2018 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 1/17/2018 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 1/17/2018 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 1/17/2018 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 1/17/2018 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 1/17/2018 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 1/17/2018 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ó) 1/17/2018 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? 1/17/2018 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) 1/17/2018 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 1/17/2018 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? R1 P2 P1 R2 1/17/2018 R3 P3 Deadlock ? 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 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Nội dung chương 6-2 ... 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 19 Sơ đồ cấp phát tài nguyên sơ đồ wait-for Resource-Allocation Graph 1/17/2018 Corresponding wait-for graph Copyrights 2017 CE-UIT All Rights Reserved

Ngày đăng: 08/05/2021, 12:44

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan