intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài Giảng Hệ Điều Hành-Chương 6: Deadlocks

Chia sẻ: Nguyen Van Nghia | Ngày: | Loại File: PDF | Số trang:42

216
lượt xem
36
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Phát triển một mô tả deadlocks, hiện tượng ngăn cản tập các giao dịch cạnh tranh hoàn tất nhiệm vụ của chúng Giới thiệu một số phương pháp khác nhau để ngăn ngừa, tránh deadlocks trong hệ thống máy tính. Giới thiệu phương pháp phát hiện và phục hồi từ deadlocks

Chủ đề:
Lưu

Nội dung Text: Bài Giảng Hệ Điều Hành-Chương 6: Deadlocks

  1. Chương 6: Deadlocks Ch
  2. NỘI DUNG Vấn Deadlock Mô hình hệ thống Đặc trưng Deadlock Các phương pháp quản lý Deadlocks Phòng ngừa Deadlock Tránh Deadlock Phát hiện Deadlock Phục hồi từ Deadlock Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7th Edition, Feb 14, 2005 7.2
  3. MỤC TIÊU Phát triển một mô tả deadlocks, hiện tượng ngăn cản tập các giao dịch cạnh tranh hoàn tất nhiệm vụ của chúng Giới thiệu một số phương pháp khác nhau để ngăn ngừa, tránh deadlocks trong hệ thống máy tính. Giới thiệu phương pháp phát hiện và phục hồi từ deadlocks Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7th Edition, Feb 14, 2005 7.3
  4. VẤN ĐỀ Deadlock Một tập các quá trình bị nghẽn, mỗi một chiếm giữ một tài nguyên và chờ đợi tậu tài nguyên bị chiếm giữ bởi quá trình khác trong tập hợp. VD. Hệ thống có hai ổ đĩa. P1 và P2 mỗi một chiếm giữ một ổ đĩa và mỗi một cần ổ đĩa kia. VD. semaphores A và B, được khởi động là 1 P0 P1 wait (A); wait(B) wait (B); wait(A) Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7th Edition, Feb 14, 2005 7.4
  5. VÍ DỤ QUA CẦU Lưu thông chỉ theo một chiều. Mỗi phần của cầu được xem như một tài nguyên. Nếu deadlock xảy ra nó sẽ được giải quyết nếu một xe lùi lại (trưng các tài nguyên và cuộn lại). Một vài xe có thể bị lùi lại khi deadlock xảy ra. Có thể xảy ra “sự chết đói”. Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7th Edition, Feb 14, 2005 7.5
  6. MÔ HÌNH HỆ THỐNG Các kiểu tài nguyên: R1, R2, . . ., Rm Các chu kỳ CPU, không gian bộ nhớ, các thiết bị I/O Mỗi tài nguyên kiểu Ri có Wi thể hiện. Mỗi quá trình sử dụng một tài nguyên như sau: Yêu cầu tài nguyên Sử dụng tài nguyên Giải phóng tài nguyên Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7th Edition, Feb 14, 2005 7.6
  7. ĐẶC TRƯNG DEADLOCK Điều kiện cần để deadlock xảy ra: Loại trừ tương hỗ (Mutual exclusion): chỉ một quá trình sử dụng một tài nguyên tại một thời điểm. Giữ và chờ (Hold and wait): một quá trình chiếm giữ ít nhất một tài nguyên và chờ tậu các tài nguyên bổ xung bị chiếm giữ bởi các quá trình khác. Không có trưng dụng: một tài nguyên chỉ có thể được giải phóng bởi sự tình nguyện của quá trình chiếm giữ nó (sau khi quá trình đã hoàn thành nhiệm vụ của nó). Chờ đợi vòng tròn: Tồn tại một tập {P0, P1, …, P0} các quá trình chờ đợi sao cho P0 chờ một tài nguyên bị chiếm giữ bởi P1, P1 chờ một tài nguyên bị chiếm giữ bởi P2, …, Pn–1 chờ một tài nguyên bị chiếm giữ bởi Pn, và Pn chờ một tài nguyên bị chiếm giữ bởi P0. Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7th Edition, Feb 14, 2005 7.7
  8. ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN Một tập các đỉnh V và một tập các cung E. V được phân hoạch thành hai kiểu: P = {P1, P2, …, Pn}, gồm tất cả các quá trình trong hệ thống. R = {R1, R2, …, Rm}, gồm tất cả các kiểu tài nguyên trong hệ thống. Cung yêu cầu – cung hướng từ Pi đến Rj : Pi → Rj Cung gán – hướng từ Rj đến Pi : Rj → Pi Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7th Edition, Feb 14, 2005 7.8
  9. ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN (Cont.) Quá trình Kiều tài nguyên với 4 thể hiện Pi Pi yêu cầu thể hiện của Rj Rj Pi đang chiếm giữ một thể hiện của kiểu tài nguyên Rj Pi Rj Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7th Edition, Feb 14, 2005 7.9
  10. VÍ DỤ ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7th Edition, Feb 14, 2005 7.10
  11. ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN VỚI DEADLOCK Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7th Edition, Feb 14, 2005 7.11
  12. ĐỒ THỊ CÓ CHU TRÌNH NHƯNG KHÔNG CHU CÓ Deadlock Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7th Edition, Feb 14, 2005 7.12
  13. CÁC SỰ KIỆN CƠ SỞ Nếu đồ thị không có chu trình ⇒ không có deadlock. Nếu đồ thị có chu trình ⇒ Nếu mỗi kiểu tài nguyên chỉ có một thể hiện thì có deadlock. Nếu mỗi kiểu tài nguyên có một vài thể hiện thì có thể có deadlock. Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7th Edition, Feb 14, 2005 7.13
  14. CÁC PHƯƠNG PHÁP QUẢN LÝ DEADLOCKS Đảm bảo hệ thống không bao giờ rơi vào trạng thái deadlock. Cho phép hệ thống rơi vào trạng thái deadlock sau đó phát hiện và phục hồi. Bỏ lơ vấn đề và xem như deadlocks không bao giờ xảy ra (được sử dụng trong hầu hết các HĐH kể cả UNIX). Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7th Edition, Feb 14, 2005 7.14
  15. NGĂN NGỪA DEADLOCK Ngăn cản một trong bốn điều kiện cần để xảy ra deadlock Loại trừ tương hỗ (Mutual Exclusion) : không được yêu cầu đối với các tài nguyên có thể chia sẻ nhưng có hiệu lực đối với tài nguyên có thể chia sẻ. Giữ và chờ (Hold and Wait) : Phải đảm bảo rằng mỗi khi quá trình yêu cầu một tài nguyên nó không chiếm giữ một tài nguyên nào. Đòi hỏi quá trình yêu cầu và được cấp phát tất cả các tài nguyên cần thiết trước khi bắt đầu thực hiện / chỉ cho phép quá trình yêu cầu các tài nguyên khi nó không chiếm giữ một tài nguyên nào. Hiệu suất sử dụng tài nguyên thấp, có thể xảy ra chết đói. Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7th Edition, Feb 14, 2005 7.15
  16. Deadlock Prevention (Cont.) Không có trưng dụng (no preemption): Nếu một quá trình đang chiếm giữ một số tài nguyên yêu cầu tài nguyên khác nhưng không thể được cấp phát ngay, các tài nguyên bị chiếm giữ bởi quá trình bị trưng dụng. Các tài nguyên bị trưng dụng được thêm vào danh sách các tài nguyên quá trình (bị trưng dụng) chờ. Quá trình sẽ được khởi động lại chỉ khi nó có thể tậu lại các tài nguyên cũ cũng như các tài nguyên mới yêu cầu. Chờ đợi vòng tròn (Circular Wait) – áp đặt một thứ tự toàn phần trên các kiểu tài nguyên và đòi hỏi mỗi quá trình yêu cầu tài nguyên theo thứ tự tăng. Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7th Edition, Feb 14, 2005 7.16
  17. TRÁNH Deadlock Đòi hỏi hệ thống phải có thông tin tiên quyết. Mô hình đơn giản nhất và hữu dụng nhất là đòi hỏi mỗi quá trình phải khai báo số lượng tối đa các tài nguyên cần thiết của mỗi kiểu. Thuật toán tránh deadlock kiểm tra trạng thái cấp phát tài nguyên và đảm bảo rằng không xảy ra chờ đợi vòng tròn. Trạng thái cấp phát tài nguyên được định nghĩa bởi số tài nguyên sẵn có, số tài nguyên đã được cấp phát và các đòi hỏi tối đa của các quá trình. Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7th Edition, Feb 14, 2005 7.17
  18. TRẠNG THÁI AN TOÀN Khi một quá trình yêu cầu một tài nguyên sẵn có, hệ thống phải xác định nếu cấp phát ngay, hệ thống vẫn trong trạng thái an toàn. Hệ thống trong trạng thái an toàn nếu tồn tại một dãy của TẤT CẢ các quá trình trong hệ thống sao cho đối với mỗi Pi, tất cả các tài nguyên mà Pi cần được thỏa mãn bởi các tài nguyên nó hiện có + các tài nguyên bị chiếm giữ bởi các Pj, với j < i. Đó là: Nếu tài nguyên mà Pi cần chưa có sẵn, Pi có thể chờ đến khi tất cả các Pj (j
  19. SỰ KIỆN CƠ SỞ Nếu hệ thống trong trạng thái an toàn ⇒ không có deadlocks. Nếu hệ thống không trong trạng thái an toàn ⇒ có thể có deadlock. Tránh ⇒ đảm bảo hệ thống không bao giờ rơi vào trạng thái không an toàn. Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7th Edition, Feb 14, 2005 7.19
  20. TRẠNG THÁI AN TOÀN, KHÔNG AN TOÀN & Deadlock Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7th Edition, Feb 14, 2005 7.20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
5=>2