Bài giảng Hệ điều hành: Chương 6 - Hà Duy An (ĐH Cần Thơ)

45 12 0
Bài giảng Hệ điều hành: Chương 6 - Hà Duy An (ĐH Cần Thơ)

Đ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: Deadlock cung cấp cho người học các kiến thức: Deadlock là gì, các phương pháp xử lý Deadlock (ngăn chặn Deadlock, tránh Deadlock, phát hiện và phục hồi từ Deadlock). Mời các bạn cùng tham khảo nội dung chi tiết.

Khoa Công Nghệ Thông Tin & Truyền Thông Đại học Cần Thơ Giảng viên: Hà Duy An Deadlock gì? Các phương pháp xử lý Deadlock o Ngăn chặn Deadlock o Tránh Deadlock o Phát phục hồi từ Deadlock 9/27/2013 Chương 6: Deadlock • Hệ thống máy tính bao gồm tập hợp nguồn tài nguyên • Các kiểu tài nguyên R1, R2, , Rm o Ví dụ: CPU cycles, memory space, I/O devices • Mỗi tài ngun Ri có Wi thể • Tiến trình sử dụng tài ngun theo bước sau: o Yêu cầu (request) o Sử dụng (use) o Giải phóng (release) 9/27/2013 Chương 6: Deadlock • Một tập hợp tiến trình bị nghẽn, tiến trình giữ tài nguyên chờ để xin tài nguyên khác, mà tài nguyên lại bị giữ tiến trình khác tập hợp • Ví dụ o Hệ thống có ổ chứa băng từ o P1 P2, tiến trình giữ ổ cần ổ • Ví dụ: mơ sử dụng semaphore o Các semaphores A B, khởi tạo P0 wait (A); wait (B); 9/27/2013 P1 wait(B) wait(A) Chương 6: Deadlock 9/27/2013 Chương 6: Deadlock Deadlock phát sinh điều kiện sau thỏa lúc: • Loại trừ hỗ tương: tiến trình sử dụng tài ngun thời điểm • Giữ chờ: Một tiến trình giữ tài nguyên chờ để đạt tài nguyên khác bị giữ tiến trình khác • Khơng trưng dụng: tài ngun giải phóng cách tự nguyện tiến trình giữ nó, sau tiến trình hồn thành • Chờ đợi vịng trịn: tồn tập hợp {P0, P1, …, Pn} tiến trình chờ đợi sau: P0 đợi tài nguyên mà P1 giữ, P1 đợi tài nguyên mà P2 giữ, …, Pn–1 đợi tài nguyên mà Pn giữ Pn lại chờ đợi tài nguyên mà P0 giữ 9/27/2013 Chương 6: Deadlock • Bao gồm tập hợp đỉnh V tập hợp cạnh E • V chia làm dạng: o P = {P1, P2, …, Pn}, tập hợp tiến trình tồn hệ thống o R = {R1, R2, …, Rm}, tập hợp tài nguyên tồn hệ thống • E chia làm dạng: o Cạnh yêu cầu: cạnh có hướng Pi →Rj o Cạnh cấp phát: cạnh có hướng Rj →Pi 9/27/2013 Chương 6: Deadlock • Tiến trình: • Tài ngun với thể hiện: • Pi yêu cầu thể Rj: Pi Rj • Pi giữ thể Rj: Pi Rj 9/27/2013 Chương 6: Deadlock 9/27/2013 10 Chương 6: Deadlock • Nội dung ma trận Need = Max – Allocation Need ABC P0 P1 2 P2 0 P3 1 P4 • Hệ thống trạng thái an toàn dãy < P1, P3, P4, P2, P0> thõa mãn tiêu chí an tồn 9/27/2013 31 Chương 6: Deadlock • Kiểm tra Request1 ≤ Available (nghĩa là, (1,0,2) ≤ (3,3,2)) ⇒ true P0 P1 P2 P3 P4 Allocation ABC 010 302 302 211 002 Need ABC 743 020 600 011 431 Available ABC 230 • Sự thực giải thuật an toàn cho thấy dãy thõa mãn yêu cầu an toàn  yêu cầu P1 đáp ứng • u cầu (3,3,0) P4 cấp khơng? • u cầu (0,2,0) P0 cấp khơng? 9/27/2013 32 Chương 6: Deadlock • Cho phép hệ thống bước vào trạng thái deadlock • Giải thuật phát • Sơ đồ phục hồi 9/27/2013 34 Chương 6: Deadlock • Dùng biến đổi đồ thị cấp phát tài nguyên, gọi đồ thị chờ (wait-for) • Đồ thị chờ: o Các nút tiến trình o Pi →Pj Pi đợi Pj • Định giải thuật tìm kiếm chu trình đồ thị • Deadlock tồn hệ thống đồ thị wait-for chứa chu trình • Một giải thuật phát chu trình đồ thị yêu cầu theo thứ tự n2 thao tác, với n số cạnh đồ thị 9/27/2013 35 Chương 6: Deadlock Đồ thị cấp phát tài nguyên 9/27/2013 Đồ thị wait-for tương ứng 36 Chương 6: Deadlock • Available: vector có chiều dài m số lượng thể sẵn dùng loại tài nguyên • Allocation: ma trận n x m định nghĩa số lượng thể loại tài nguyên cấp phát cho tiến trình • Request: ma trận n x m lượng yêu cầu tiến trình Nếu Request [i,j] = k, tiến trình Pi yêu cầu thêm k thể tài nguyên loại Rj 9/27/2013 37 Chương 6: Deadlock Đặt Work Finish vectors có chiều dài tương ứng m n, khởi tạo: a Work = Available b For i = 0,1,2, …, n-1 if Allocation[i] ≠0 then Finish[i] = false; else Finish[i] = true; Tìm số i để hai điều kiện sau thỏa: a Finish[i] == false b Request[i] ≤Work Nếu không tồn i, nhảy đến bước Work = Work + Allocation[i] Finish[i] = true Nhảy đến bước If Finish[i] == false cho vài i, ≤ i ≤ n, then hệ thống trạng thái deadlock Ngoài ra, if Finish[i] == false, then Pi bị deadlock Giải thuật yêu cầu O(m x n2) thao tác để xác định hệ thống có trạng thái deadlock hay khơng 9/27/2013 38 Chương 6: Deadlock • Năm tiến trình P0 đến P4; có kiểu tài nguyên A (7 thể hiện), B (2 thể hiện), C (6 thể hiện) • Hiện trạng thời điểm T0: P0 P1 P2 P3 P4 Allocation ABC 010 200 303 211 002 Request ABC 000 202 000 100 002 Available ABC 000 • Dãy dẫn đến Finish[i] = true với i Hệ thống không trạng thái deadlock 9/27/2013 39 Chương 6: Deadlock • P2 yêu cầu thêm thể tài nguyên loại C P0 P1 P2 P3 P4 Request ABC 000 201 001 100 002 • Trạng thái hệ thống? o P0 không yêu cầu thêm tài nguyên nào, hệ thống không đủ tài nguyên để thỏa nhu cầu tiến trình khác o Deadlock xảy ra, bao gồm tiến trình P1, P2, P3, P4 9/27/2013 40 Chương 6: Deadlock • Sử dụng giải thuật thường xuyên phụ thuộc vào: o Việc deadlock xảy thường xuyên nào? o Bao nhiêu tiến trình bị ảnh hưởng deadlock, cần phải quay lại (rollback) xuất hiện? • Cần tiến trình để mở chu trình (cycle) • Nếu giải thuật phát deadlock gọi q ít, có nhiều chu trình xuất đồ thị Khi đó, khó biết tiến trình số tiến trình bị deadlock gây deadlock 9/27/2013 41 Chương 6: Deadlock • Khi phát deadlock, số cách dùng để phục hồi từ deadlock: o Phục hồi tay: cho phép thao tác viên phục hồi tay o Phục hồi tự động: hai tùy chọn dùng để xóa deadlock: • Hủy tiến trình: Ngưng nhiều tiến trình để xóa chu trình sinh deadlock • Trưng dụng: nhiều tài nguyên từ nhiều tiến trình bị deadlock 9/27/2013 42 Chương 6: Deadlock • Hai phương pháp: o Hủy bỏ tất tiến trình bị deadlock • Chi phí lớn: tiến trình tính tốn thời gian dài  việc tính tốn lại nhiều thời gian o Hủy bỏ lần tiến trình đến chu trình deadlock bị loại trừ • Chi phí phải xem xét, sau buớc phải chạy lại giải thuật phát deadlock • Thế nên hủy bỏ tiến trình theo thứ tự nào? o o o o o o 9/27/2013 Độ ưu tiên tiến trình Tiến trình diễn lâu chưa cịn tiếp diễn Số tài nguyên mà tiến trình sử dụng Số tài nguyên mà tiến trình cần để hồn thành Có tiến trình cần phải kết thúc Tiến trình tương tác hay không (batch process) 43 Chương 6: Deadlock • Chọn nạn nhân: o Chọn tài nguyên tiến trình bị trưng dụng o Cần xác định thứ tự trưng dụng để tối thiểu hóa chi phí • Quay lại (rollback): o Đưa tiến trình quay lai trạng thái an tồn o Khởi động lại tiến trình từ trạng thái o Địi hỏi hệ thống phải lưu lại thông tin trạng thái an tồn tất tiến trình chạy • Đói tài ngun (starvation): o Tránh tình trạng tiến trình liên tục bị chọn nạn nhân 9/27/2013 44 Chương 6: Deadlock ... 9/27/2013 Chương 6: Deadlock • Tiến trình: • Tài ngun với thể hiện: • Pi yêu cầu thể Rj: Pi Rj • Pi giữ thể Rj: Pi Rj 9/27/2013 Chương 6: Deadlock 9/27/2013 10 Chương 6: Deadlock 9/27/2013 11 Chương 6: ... 9/27/2013 20 Chương 6: Deadlock • Khi tiến trình u cầu tài nguyên sẵn dùng, hệ thống phải định xem việc cấp tài nguyên tức thời có giữ hệ thống trạng thái an tồn hay khơng • Hệ thống trạng thái an toàn... Nếu hệ thống trạng thái an tồn  khơng có deadlock • Nếu hệ thống trạng thái khơng an tồn  có deadlock • Tránh deadlock  đảm bảo hệ thống không rơi vào trạng thái khơng an tồn 9/27/2013 22 Chương

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

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

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

Tài liệu liên quan