Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
5,37 MB
Nội dung
CHƯƠNG DEADLOCKS I KHÁI NIỆM Tình deadlock: • Tập tiến trình (từ trở lên) bị block • Mỗi tiến trình giữ tài nguyên chờ tài nguyên tiến trình khác giữ Câu hỏi: Hệ thống đơn chương có xảy deadlock khơng? A Có B Khơng Tiến trình bị deadlock: • Đợi kiện khơng xảy Tiến trình bị stavation: • Bị trì hỗn khoảng thời gian dài lặp lặp lại hệ thống đáp ứng cho tiến trình khác Điều kiện cần để xảy deadlock: • Loại trừ tương hỗ (Mutual Exclusion): có tài nguyên thuộc chế độ khơng chia sẻ (nonsharable) • Khơng trưng dụng (No preemption): tài nguyên không bị lấy lại mà trả lại VD: tài nguyên R tiến trình P giữ: (+) P chưa thực thi, R không tiến trình khác trưng dụng (+) P thực thi xong, R trả lại • Giữ chờ cấp thêm (Hold and wait): tiến trình giữ tài nguyên đợi thêm tài ngun tiến trình khác giữ • Chu trình đợi (Circular wait): tồn tập tiến trình, 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ữ => Deadlock xảy điều kiện xảy đồng thời II MƠ HÌNH HỐ HỆ THỐNG • Hệ thống gồm tập giới hạn tài nguyên Kí hiệu R1, R2, , Rn • tài ngun có m thực thể Kí hiệu W1, W2, , Wm • Tiến trình sử dụng tài nguyên theo trình tự: yêu cầu -> sử dụng -> hoàn trả v Đồ thị cấp phát tài nguyên - RAG • Đỉnh: (+) Tiến trình: P1, P2, , Pn Pi (+) Tài nguyên: R1, R2, , Rm R1 • Cạnh: (+) Cạnh yêu cầu (+) Cạnh cấp phát R2 P1 R2 P1 R2 III CÁC PHƯƠNG PHÁP GIẢI QUYẾT DEADLOCK Ngăn Deadlock Tránh Deadlock Phát Deadlock phục hồi hệ thống Xem deadlock không xảy Ngăn deadlock - Khơng cho phép (ít nhất) điều kiện cần cho deadlock xảy - Nhận xét: Sử dụng tài nguyên không hiệu Tránh deadlock - Yêu cầu tiến trình khai báo số tài nguyên tối đa cần để thực - Nhận xét: đảm bảo hiệu suất sử dụng tài nguyên tối đa đến mức - Giải thuật tránh deadlock: + Kiểm tra trạng thái hệ thống + Yêu cầu tài nguyên v TRẠNG THÁI HỆ THỐNG • Được xác định dựa trên: số tài nguyên tối đa (Max), số tài nguyên giữ (Allocation) số tài nguyên lại (Need) tiến trình • Có trạng thái: - Trạng thái an tồn (safe): tồn chuỗi an tồn - Trạng thái khơng an tồn (unsafe): khơng tồn chuỗi an tồn v TRẠNG THÁI HỆ THỐNG • Nếu hệ thống trạng thái safe → Khơng xảy deadlock • Nếu trạng thái unsafe → Có thể xảy deadlock safe unsafe deadlock v Giải thuật tránh deadlock q Giải thuật kiểm tra hệ thống • Mỗi tài ngun có thực thể → Giải thuật đồ thị cấp phát tài ngun • Tài ngun có nhiều thực thể → Giải thuật Banker Xét hệ thống có tiến trình: P1, P2, P3 loại tài nguyên: R1, R2 Tại thời điểm t0 trạng thái hệ thống sau: MAX ALLOCATION AVAILABLE Process R1 R2 R1 R2 R1 R2 P1 2 P2 2 P3 1 Hệ thống có an tồn hay khơng? MAX ALLOCATION NEED Process R1 R2 R1 R2 R1 R2 P1 1 P2 2 P3 1 AVAILABLE R1 R2 P1 P2 P3 Process Chuỗi thứ tự thực thi: P1 → P2 → P3 Chuỗi an toàn: => Hệ thống an toàn v Giải thuật tránh deadlock q Giải thuật yêu cầu tài nguyên: áp dụng tiến trình P yêu cầu thêm tài nguyên • Điều kiện yêu cầu (Request): (+) Request