1. Trang chủ
  2. » Giáo án - Bài giảng

hệ điều hành trần thị như nguyệt 6 2 deadlocks 2 sinhvienzone com

33 49 0

Đ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

Chương 6: Deadlocks - SinhVienZone.com https://fb.com/sinhvienzonevn Câu hỏi ôn tập chương -  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? SinhVienZone.com https://fb.com/sinhvienzonevn Deadlocks Câu hỏi ôn tập chương – (tt)  Sơ đồ sau có xảy deadlock? R3 R1 P1 P3 P2 Deadlock ? R2 SinhVienZone.com R4 https://fb.com/sinhvienzonevn Deadlocks Câu hỏi ôn tập chương – (tt)  Hệ thống có 18 tape drive tiến trình P0, P1, P2, P3  Tại thời điểm to Max Allocation Need Available P0 10 5 P1 2 P2 15 13 16 P3 10 10 SinhVienZone.com https://fb.com/sinhvienzonevn Deadlocks Mục tiêu  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 SinhVienZone.com https://fb.com/sinhvienzonevn Deadlocks Nội dung  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 SinhVienZone.com https://fb.com/sinhvienzonevn Deadlocks Giải thuật đồ thị cấp phát tài nguyên SinhVienZone.com https://fb.com/sinhvienzonevn Deadlocks 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 u cầu tài ngun 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 SinhVienZone.com https://fb.com/sinhvienzonevn Deadlocks 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 × 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: ma trận độ dài n ×m  Allocation[i, j] = k  Pi cấp phát k instance Rj  Need: ma trận độ dài n × 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ới i Ví dụ (0, 3, 2, 1)  (1, 7, 3, 2) SinhVienZone.com https://fb.com/sinhvienzonevn Deadlocks Giải thuật an toàn Gọi Work và Finish hai vector độ dài m và 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 về bước Nếu Finish[i] == true, i = 1,…, n, thì hệ thống ở trạng thái safe SinhVienZone.com 10 https://fb.com/sinhvienzonevn Deadlocks Mỗi loại tài nguyên có thực thể  Sử dụng wait-for graph  Các  Pi Node tiến trình  Pj Pi chờ tài nguyên từ Pj  Mỗi giải thuật kiểm tra có tồn chu trình wait- for graph hay khơng gọi định kỳ Nếu có chu trình tồn deadlock  Giải thuật phát chu trình có thời gian chạy O(n2), với n số đỉnh graph SinhVienZone.com 19 https://fb.com/sinhvienzonevn Deadlocks Sơ đồ cấp phát tài nguyên sơ đồ wait-for Resource-Allocation Graph SinhVienZone.com Corresponding wait-for graph 20 https://fb.com/sinhvienzonevn Deadlocks 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 SinhVienZone.com 21 https://fb.com/sinhvienzonevn Deadlocks Giải thuật phát deadlock Gọi Work và Finish vector kích thước m và n Khởi tạo: a Work = Available b For i = 0, 1,…, n-1, Allocationi ≠ thì Finish[i] = false; còn khơng thì 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 Work = Work + Allocationi Finish[i] = true quay về bước Nếu Finish[i] == false, với số i = 0,…, n-1, thì hệ thống ở trạng thái deadlock Hơn thế nữa, Finish[i] == false thì Pi bị deadlocked Thời gian chạy của giải thuật O(m·n2) SinhVienZone.com 22 https://fb.com/sinhvienzonevn Deadlocks Giải thuật phát deadlock - Ví dụ  trình P0 ,…, P4 với 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 SinhVienZone.com 23 https://fb.com/sinhvienzonevn Deadlocks Giải thuật phát deadlock - Ví dụ  trình P0 ,…, P4 với loại tài nguyên:  A (7 instance), B (2 instance), C (6 instance)  Tại thời điểm T0 Chuỗi sẽ cho kết Finish[ i ] = true, i = 1,…, n SinhVienZone.com 24 https://fb.com/sinhvienzonevn Deadlocks 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 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 Hệ thống bị deadlock (Trong tình trạng này, dù P0 thực thi xong, trả tài nguyên lại cho hệ thống lượng tài ngun khơng đủ để đáp ứng Request process lại  Deadlock) Deadlocks 25 SinhVienZone.com https://fb.com/sinhvienzonevn Phục hồi deadlock  Khi deadlock xảy ra, để phục hồi  Báo  Hệ người vận hành thống tự động phục hồi bằng cách bẻ gãy chu trình deadlock: Chấm Lấy dứt hay nhiều tiến trình lại tài nguyên từ hay nhiều tiến trình SinhVienZone.com 26 https://fb.com/sinhvienzonevn Deadlocks 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 SinhVienZone.com 27 https://fb.com/sinhvienzonevn Deadlocks Lấy lại 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 SinhVienZone.com 28 https://fb.com/sinhvienzonevn Deadlocks 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 SinhVienZone.com 29 https://fb.com/sinhvienzonevn Deadlocks Ôn tập  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 SinhVienZone.com 30 https://fb.com/sinhvienzonevn Deadlocks 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ó) SinhVienZone.com 31 https://fb.com/sinhvienzonevn Deadlocks 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? SinhVienZone.com 32 https://fb.com/sinhvienzonevn Deadlocks Kết thúc chương SinhVienZone.com https://fb.com/sinhvienzonevn ... SinhVienZone. com 31 https://fb .com/ sinhvienzonevn Deadlocks 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? SinhVienZone. com 32 https://fb .com/ sinhvienzonevn Deadlocks. .. deadlock? SinhVienZone. com https://fb .com/ sinhvienzonevn Deadlocks Câu hỏi ôn tập chương – (tt)  Sơ đồ sau có xảy deadlock? R3 R1 P1 P3 P2 Deadlock ? R2 SinhVienZone. com R4 https://fb .com/ sinhvienzonevn... thuật O(m·n2) SinhVienZone. com 22 https://fb .com/ sinhvienzonevn Deadlocks Giải thuật phát deadlock - Ví dụ  trình P0 ,…, P4 với loại tài nguyên:  A (7 instance), B (2 instance), C (6 instance)

Ngày đăng: 28/01/2020, 22:04

Xem thêm:

TỪ KHÓA LIÊN QUAN