Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 56 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
56
Dung lượng
598,91 KB
Nội dung
Deadlock Mô hình hóa hệ thống Đồ thò cấp phát tài nguyên Phương pháp giải deadlock Ngăn deadlock Tránh deadlock Phát deadlock Phục hồi khỏi deadlock SinhVienZone.com https://fb.com/sinhvienzonevn SinhVienZone.com From A.Gottlieb https://fb.com/sinhvienzonevn Vấn đề deadlock hệ thống Một tập process deadlock(ed) process tập giữ tài nguyên chờ tài nguyên mà process khác tập giữ Ví dụ ● Giả sử hệ thống có printer DVD drive Quá trình P1 giữ DVD drive, trình P2 giữ printer Bây P1 yêu cầu printer phải đợi, P2 yêu cầu DVD drive phải đợi SinhVienZone.com https://fb.com/sinhvienzonevn Mô hình hóa hệ thống Hệ thống gồm loại tài nguyên, kí hiệu R1, R2,…, Rm ● Tài nguyên: CPU cycle, không gian nhớ, thiết bò I/O, file,… • Mỗi loại tài nguyên Ri có Wi thực thể (instance) Process sử dụng tài nguyên theo bước ● Yêu cầu (request): process phải chờ yêu cầu không đáp ứng ● Sử dụng (use): process sử dụng tài nguyên ● Hoàn trả (release): process hoàn trả tài nguyên SinhVienZone.com https://fb.com/sinhvienzonevn Các tác vụ yêu cầu hoàn trả gọi qua system call Ví dụ ● request/release device ● open/close file ● allocate/free memory SinhVienZone.com https://fb.com/sinhvienzonevn Deadlock: Điều kiện cần (1/2) Bốn điều kiện cần (necessary condition) để xảy deadlock Mutual exclusion: tài nguyên cấp phát cho nhiều trình (tức không chia sẻ được) Hold and wait: trình giữ tài nguyên phép yêu cầu thêm tài nguyên khác Nhận xét: “mutual exclusion” “mutual exclusion” chương đồng hai khái niệm khác SinhVienZone.com https://fb.com/sinhvienzonevn Deadlock: Điều kiện cần (2/2) No preemption: (= no resource preemption) không lấy lại tài nguyên cấp phát cho trình, ngoại trừ trình tự hoàn trả Circular wait: tồn tập {P1,…,Pn} trình đợi cho P1 đợi tài nguyên mà P2 giữ P2 đợi tài nguyên mà P3 giữ … Pn đợi tài nguyên mà P1 giữ Để ý: Nếu tài nguyên gồm nhiều instance “tài nguyên” đề cập instance tài nguyên SinhVienZone.com https://fb.com/sinhvienzonevn Bốn điều kiện cần cho deadlock: nhận xét Liên quan đến sách cấp phát tài nguyên hệ thống Đặc điểm tónh hệ thống tài nguyên ● Luôn sai, không thay đổi theo thời gian SinhVienZone.com https://fb.com/sinhvienzonevn Resource Allocation Graph (1/2) Resource allocation graph (RAG) đồ thò có hướng, với tập đỉnh V tập cạnh E ● Tập đỉnh V gồm loại: P = {P1, P2,…, Pn } (Tất process hệ thống) R = {R1, R2,…, Rm } (Tất loại tài nguyên hệ thống) ● Tập cạnh E gồm loại: Request edge: cạnh có hướng từ Pi đến Rj Assignment edge: cạnh có hướng từ Rj đến Pi SinhVienZone.com https://fb.com/sinhvienzonevn Resource Allocation Graph (2/2) Ký hiệu Process: Pi Rj Loại tài nguyên với thực thể: Pi yêu cầu thực thể Rj : Pi giữ thực thể Rj : SinhVienZone.com Rj Pi Rj Pi https://fb.com/sinhvienzonevn 10 Giải thuật cấp phát tài nguyên (4/4) (chép laïi) Allocation Need Available A B C A B C A B C P0 3 P1 2 P2 0 P3 1 1 P4 0 SinhVienZone.com P4 yêu cầu (3, 3, 0) P0 yêu cầu (0, 2, 0) theo giải thuật cấp phát tài nguyên có thỏa mãn hay không? https://fb.com/sinhvienzonevn 42 Phát deadlock Chấp nhận xảy deadlock hệ thống, kiểm tra trạng thái hệ thống giải thuật phát deadlock Nếu có deadlock tiến hành phục hồi hệ thống Các giải thuật phát deadlock thường sử dụng RAG Giải thuật phát deadlock thiết kế cho trường hợp Mỗi loại tài nguyên có thực thể Mỗi loại tài nguyên có nhiều thực thể SinhVienZone.com https://fb.com/sinhvienzonevn 43 Mỗi loại tài nguyên có thực thể Sử dụng wait-for graph ● Wait-for graph dẫn xuất từ RAG cách bỏ node biểu diễn tài nguyên ghép cạnh tương ứng: Có cạnh từ Pi đến Pj Pi chờ tài nguyên từ Pj P5 P5 R1 R3 R4 P1 P2 P3 R2 P4 R5 P1 P2 P3 P4 ● Gọi đònh kỳ giải thuật kiểm tra có tồn chu trình waitfor graph hay không Giải thuật phát chu trình (depth first search) có thời gian chạy O(n 2), với n số đỉnh graph SinhVienZone.com https://fb.com/sinhvienzonevn 44 Mỗi loại tài nguyên có nhiều thực thể • Phương pháp dùng wait-for graph không áp dụng cho trường hợp loại tài nguyên có nhiều instance Giả thiết: sau đáp ứng yêu cầu tài nguyên, process hoàn tất trả lại tất tài nguyên giải thuật optimistic! Giải thuật phát deadlock trường hợp loại tài nguyên có nhiều instance: cấu trúc liệu Available: vector độ dài m • số instance sẵn sàng loại tài nguyên • Allocation: ma trận n m • số instance loại tài nguyên cấp phát cho process • Request: ma trận n m • yêu cầu process • Request [i, j ] = k Pi yêu cầu thêm k instance Rj SinhVienZone.com https://fb.com/sinhvienzonevn 45 Giải thuật phát deadlock (1/4) Các biến Work Finish vector kích thước m n Khởi tạo: Work Available i = 1, 2,…, n, Allocation i Finish[ i ] false không Finish[ i ] true Tìm trình i thỏa mãn: trình không giữ tài nguyên nên không deadlock Finish[ i ] = false Request i • Work Nếu không tồn i thế, đến bước Work Work + Allocation i Finish[ i ] true quay bước Nếu trình i cấp phát theo yêu cầu (Bước 2) giả sử i xong, i trả lại tất tài nguyên Nếu tồn i với Finish[ i ] = false, hệ thống trạng thái deadlock Hơn nữa, Finish[ i ] = false Pi bò deadlocked SinhVienZone.com https://fb.com/sinhvienzonevn 46 Giải thuật phát deadlock (2/4) Nhận xét: ● Giải thuật phát deadlock không quan tâm đến tính chất an toàn / không an toàn ● Khi giải thuật phát deadlock không thấy hệ thống deadlock, chưa tương lai hệ thống không deadlock Vd: Hệ thống không an toàn, trình (đều giữ tài nguyên) yêu cầu tối đa SinhVienZone.com https://fb.com/sinhvienzonevn 47 Giải thuật phát deadlock (3/4) • Hệ thống có trình P0 ,…, P4 loại tài nguyên: A, gồm instance; B, instance; C, instance 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 Chạy giải thuật, tìm chuỗi P0, P2, P3, P1, P4 với Finish[ i ] = true cho i, hệ thống không bò deadlocked SinhVienZone.com https://fb.com/sinhvienzonevn 48 Giải thuật phát deadlock (4/4) Nhưng thêm vào P2 yêu cầu instance C, nghóa có ma trận Request: Request A B C P0 0 P1 2 P2 0 P3 0 P4 0 ● Hệ thống có bò deadlocked? Có thể thu hồi tài nguyên giữ process P0 không đủ đáp ứng yêu cầu process khác • Vậy tồn deadlock, gây process P1 , P2 , P3 , P4 SinhVienZone.com https://fb.com/sinhvienzonevn 49 Phục hồi khỏi deadlock Các giải pháp phát deadlock ● báo người vận hành (operator), người xử lý tiếp ● hệ thống tự động phục hồi cách phá deadlock: Giải pháp chấm dứt trình Giải pháp lấy lại tài nguyên Giải pháp Rollback SinhVienZone.com https://fb.com/sinhvienzonevn 50 Phục hồi khỏi deadlock: Chấm dứt trình (1) Chấm dứt tất process bò deadlocked, Chấm dứt process bò deadlocked, lấy lại tài nguyên để cấp phát cho process deadlocked, không deadlock ● Sau lần, sử dụng giải thuật phát deadlock để xác đònh deadlock hay không ● Dựa yếu tố để chọn process cần chấm dứt? Độ ưu tiên process Loại tài nguyên mà process sử dụng Tài nguyên mà process cần thêm để hoàn tất công việc – Thời gian thực thi process thời gian lại Process interactive process hay batch process SinhVienZone.com https://fb.com/sinhvienzonevn 51 Phục hồi khỏi deadlock: Chấm dứt trình (2) Ngoài ra, chấm dứt process không deadlocked giữ tài nguyên mà process deadlocked cần SinhVienZone.com https://fb.com/sinhvienzonevn 52 Phục hồi khỏi deadlock: Chấm dứt trình (3) Vấn đề: Chạy lại trình bò chấm dứt đưa đến kết không mong đợi ● Ví dụ trình cập nhật sở liệu Quá trình cộng thêm vào record sở liệu bò chấm dứt Khi chạy trình lần thứ hai, trình lần cộng thêm vào record kết sai! SinhVienZone.com https://fb.com/sinhvienzonevn 53 Phục hồi khỏi deadlock: Lấy lại tài nguyên (resource preemption) Các bước ● Tạm dừng trình P cần lấy lại tài nguyên, lấy lại tài nguyên từ P, cấp phát chúng cho trình deadlocked ● Khi tài nguyên trả lại, cấp phát chúng lại cho P, tiếp tục P Giải pháp thường khó thực ● Ví dụ: (giả sử hệ thống không sử dụng spooling cho printer) Quá trình in laser printer Tạm dừng trình, lấy tờ giấy in riêng Cấp phát laser printer cho trình khác Khi trình khác in xong, cho trình cũ tiếp tục SinhVienZone.com https://fb.com/sinhvienzonevn 54 Phục hồi khỏi deadlock: Rollback Hệ thống phải “checkpoint” thường xuyên trình ● Checkpoint trình nghóa ghi trạng thái trình thời điểm (vd ghi vào file) để sau tiếp tục trình từ trạng thái Xử lý deadlock: vòng lặp ● Xác đònh trình P giữ tài nguyên mà trình Q deadlocked cần ● Rollback trình P thời điểm mà chưa có tài nguyên ● Cấp phát tài nguyên cho trình Q ● Tiếp tục P ● Thoát vòng lặp không phát deadlock SinhVienZone.com https://fb.com/sinhvienzonevn 55 Bài tập • Hệ thống có q trình P0 ,…, P4 Các thông tin tài nguyên hệ thống bảng đây: Allocation P0 P1 P2 P3 P4 • • • Max Available A B C D A B C D A B C D 1 0 0 4 0 6 5 5 6 Tìm ma trận Need Kiểm tra hệ thống có trạng thái an tồn khơng? Nếu P1 u cầu thêm số lượng tài nguyên A,B,C,D tương ứng 56 (0,4,2,0) P1 có cấp phát khơng? SinhVienZone.com https://fb.com/sinhvienzonevn ... https://fb .com/ sinhvienzonevn 10 Ví dụ RAG (1/2) R3 R1 P1 R2 SinhVienZone. com P3 P2 R4 https://fb .com/ sinhvienzonevn 11 Ví dụ RAG (2/2) R3 R1 P1 P3 P2 Deadlock xảy ra! R2 SinhVienZone. com R4 https://fb .com/ sinhvienzonevn... cùng, hệ thống phải ngưng hoạt động phải khởi động lại ● Khá nhiều hệ điều hành sử dụng phương pháp SinhVienZone. com https://fb .com/ sinhvienzonevn 16 Ngăn deadlock (1 /4) Ngăn deadlock cách ngăn điều. .. P0, P2 chuỗi an toàn hệ thống an toàn SinhVienZone. com https://fb .com/ sinhvienzonevn 29 Chuỗi an toàn (4/ 4) Giả sử hệ thống tape drive sẵn sàng giả sử trạng thái hệ thống cần tối đa giữ