Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 46 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
46
Dung lượng
1,02 MB
Nội dung
Tắc ghẽn (Deadlock) BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn Nội dung Mơ hình hệ thống Đồ thị phân bổ tài nguyên (RAG) Phương pháp giải nghẽn Chống (Ngăn) nghẽn Tránh (avoidance) nghẽn Phát nghẽn Phục hồi nghẽn BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn Tắc nghẽn giao thơng BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn Tắc nghẽn hệ thống Tình huống: tập process bị blocked, process 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, P2 yêu cầu DVD drive BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn Mơ hình hóa hệ thống BK 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 thứ tự 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 Các tác vụ yêu cầu hồn trả gọi qua system call Ví dụ:ï request/release device open/close file allocate/free memory TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn Điều kiện cần để xảy nghẽn Bốn điều kiện cần (necessary conditions) Mutual exclusion: tài nguyên giữ theo nonsharable mode (ví dụ: printer; ví dụ sharable resource: read-only file) Hold and wait: process giữ tài nguyên đợi thêm tài nguyên trình khác giữ No preemption: (= no resource preemption) không lấy lại tài nguyên cấp phát cho process, ngoại trừ process tự hồn trả Circular wait: tồn tập {P0,…,Pn} trình đợi cho P0 đợi tài nguyên mà P1 giữ P1 đợi tài nguyên mà P2 giữ … Pn đợi tài nguyên mà P0 giữ BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn Resource Allocation Graph 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 BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn Resource Allocation Graph (tt.) Ký hiệu Process: Pi Rj Loại tài nguyên với thực thể: Rj BK Pi yêu cầu thực thể Rj : Pi giữ thực thể Rj : Pi Rj Pi TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn Ví dụ RAG (tt.) R1 P1 R3 P3 P2 R2 R4 BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn Ví dụ RAG (tt.) R1 P1 R3 P3 P2 Deadlock xảy ra! R2 BK TP.HCM SinhVienZone.com R4 Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 10 Giải thuật cấp phát tài nguyên Gọi Requesti (độ dài m) request vector process Pi Requesti [ j ] = k Pi cần k instance tài nguyên Rj Nếu Requesti Needi đến bước Nếu khơng, báo lỗi process vượt yêu cầu tối đa Nếu Requesti Available qua bước Nếu khơng, Pi phải chờ tài ngun khơng đủ để cấp phát BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 32 Giải thuật cấp phát tài nguyên (tt.) Giả định cấp phát tài nguyên đáp ứng yêu cầu Pi cách cập nhật trạng thái hệ thống sau: Available := Available – Requesti Allocationi := Allocationi + Requesti Needi := Needi – Requesti Áp dụng giải thuật kiểm tra trạng thái an toàn lên trạng thái Nếu trạng thái safe tài nguyên cấp thực cho Pi Nếu trạng thái unsafe Pi phải đợi, phục hồi trạng thái: BK TP.HCM Available := Available + Requesti Allocationi := Allocationi - Requesti Needi := Needi + Requesti SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 33 Giải thuật cấp phát tài nguyên (tt.) (tiếp ví dụ) Yêu cầu (1, 0, 2) P1 có thỏa đượckhơng? Kiểm tra điều kiện Request1 Available: (1, 0, 2) (3, 3, 2) Giả sử đáp ứng yêu cầu, kiểm tra trạng thái có phải safe hay khơng: Allocation BK Need Available A B C A B C A B C P0 3 P1 2 P2 0 P3 1 1 P4 0 Trạng thái safe, với chuỗi an tồn P1, P3, P4, P0, P2 , cấp phát tài nguyên cho P1 TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 34 Giải thuật cấp phát tài nguyên (tt.) Allocation BK Need Available A B C A B C A B C P0 3 P1 2 P2 0 P3 1 1 P4 0 P4 yêu cầu (3, 3, 0) hoặc P0 yêu cầu (0, 2, 0) có thỏa mãn hay khơng? TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 35 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 sau 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ể BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 36 Mỗi loại tài ngun 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 BK 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 wait-for graph hay khơng Giải thuật phát chu trình có thời gian chạy O(n 2), với n số đỉnh graph TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 37 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 BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 38 Giải thuật phát deadlock Các biến Work Finish vector kích thước m n Khởi tạo: Work := Available i = 1, 2,…, n, Allocationi Finish[ i ] := false khơng Finish[ i ] := true Tìm i thỏa mãn: Finish[ i ] := false Requesti Work Nếu không tồn i thế, đến bước Work thời gian chạy giải thuật := Work + Allocationi O(m·n2) Finish[ i ] := true quay bước 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 BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 39 Giải thuật phát deadlock (tt.) Nhận xét: 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 BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 40 Giải thuật phát deadlock (tt.) • 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, i = 1,…, n, hệ thống không bị deadlocked BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 41 Giải thuật phát deadlock (tt.) P2 yêu cầu thêm instance C Ma trận Request sau: Request A B C P0 P1 P2 P3 P4 0 0 0 2 Trạng thái hệ thống (safe, unsafe, deadlock)? 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, bao gồm process P1 , P2 , P3 , P4 BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 42 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 hoặc hệ thống tự động phục hồi cách phá deadlock: Giải pháp chấm dứt trình hoặc Giải pháp lấy lại tài nguyên BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 43 Phục hồi khỏi deadlock: Chấm dứt trình Phục hồi hệ thống khỏi deadlock cách BK Chấm dứt tất process bị deadlocked, hoặc Chấm dứt process khơng deadlock 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 Thời gian thực thi process thời gian lại 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 Số lượng process cần chấm dứt Process interactive process hay batch process TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 44 Phục hồi khỏi deadlock: Lấy lại tài nguyên BK Lần lượt lấy lại tài nguyên từ process, cấp phát chúng cho process khác không deadlock Các vấn đề thu hồi tài nguyên: Chọn “nạn nhân”: chọn tài nguyên process (có thể dựa số tài nguyên sở hữu, thời gian CPU tiêu tốn, )? Rollback: rollback process bị lấy lại tài nguyên trở trạng thái safe, tiếp tục process từ trạng thái Do hệ thống cần lưu giữ số thơng tin trạng thái process thực thi Starvation: để tránh starvation, phải bảo đảm khơng có process mà bị lấy lại tài nguyên phục hồi khỏi deadlock TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 45 Kết luận Định nghĩa Điều kiện cần để Deadlock xảy Các giải pháp BK TP.HCM SinhVienZone.com https://fb.com/sinhvienzonevn ... thuật Máy tính https://fb .com/ sinhvienzonevn Tắc nghẽn giao thông BK TP.HCM SinhVienZone. com Khoa Khoa học & Kỹ thuật Máy tính https://fb .com/ sinhvienzonevn Tắc nghẽn hệ thống Tình huống: tập... SinhVienZone. com Khoa Khoa học & Kỹ thuật Máy tính https://fb .com/ sinhvienzonevn Ví dụ RAG (tt.) R1 P1 R3 P3 P2 R2 R4 BK TP.HCM SinhVienZone. com Khoa Khoa học & Kỹ thuật Máy tính https://fb .com/ sinhvienzonevn... Khá nhiều hệ điều hành sử dụng phương pháp Deadlock không phát hiện, dẫn đến việc giảm hiệu suất hệ thống Cuối cùng, hệ thống ngưng hoạt động phải khởi động lại BK TP.HCM SinhVienZone. com Khoa