Deadlock Operating System Concepts

41 549 1
Deadlock Operating System Concepts

Đ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

Operating System Concepts NỘI DUNG CHÍNH: I.Khái niệm II. Các điều kiện hình thành Deadlock III. Xử lý Deadlock III.1. Ngăn chặn và tránh Deadlock III.2. Phát hiện và phục hồi Deadlock III.3. Bỏ qua Deadlock Hình ảnh tắc nghẽn trong đời sống thường ngày I.KHÁI NIỆM:  Deadlock bắt nguồn từ sự xung đột về tài nguyên của 2 hoặc nhiều tiến trình đang hoạt động đồng thời trên hệ thống. Ví dụ 1: Tài nguyên R2 Tài nguyên R1 Tiến trình P 2 Tiến trình P 1 Yêu cầu Yêu cầu Giữ Giữ Chờ đợi vòng tròn Xảy ra deadlock Ví dụ 2: Giả sử không gian bộ nhớ còn trống là 300Kb, và trong hệ thống có hai tiến trình P1 và P2 hoạt động đồng thời. P1 và P2 yêu cầu được sử dụng bộ nhớ như sau: P1 P2 …. …. Yêu cầu lần thứ 1 100Kb 120Kb … … Yêu cầu lần thứ 2 50Kb 60Kb … … Xảy ra deadlock Lưu ý:  Số lượng tài nguyên trong một hệ thống là hữu hạn. Chúng được phân bổ giữa nhiều tiến trình khác nhau và cạnh tranh nhau. • Thứ tự sử dụng tài nguyên của 1 tiến trình là: Yêu cầu – Sử dụng – Giải phóng • Số tài nguyên được yêu cầu không được vượt quá tổng số tài nguyên sẵn có trong hệ thống. Nếu yêu cầu không được đáp ứng tức thì thì tiến trình đó sẽ đi vào trạng thái chờ. II. ĐIỀU KIỆN HÌNH THÀNH DEADLOCK: 1. Độc quyền sử dụng: Tồn tại ít nhất 1 tài nguyên không thể chia sẻ và được giữ bởi duy nhất 1 tiến trình. 3. Không đòi lại tài nguyên từ tiến trình đang giữ nó: Không một tiến trình nào có thể tự giải phóng tài nguyên mà nó đang chiếm giữ. 4. Tồn tại chu trình trong đồ thị cấp phát tài nguyên: Một tập các tiến trình đang ở trong trạng thái chờ {P 0 , P 1 , , P n } mà khi đó P 0 đang chờ 1 tài nguyên được giữ bởi P 1 , P 1 đang chờ tài nguyên được giữ bởi P 2 , , P n đang chờ tài nguyên được giữ bởi P 0 . ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN: Đồ thị có hướng G(V,E) gồm: V = {P 1 ,P 2 ,P 3 } U {R 1 ,R 2 ,R 3 ,R 4 } E = { (P 1 ,R 1 ), (R 1 ,P 2 ), (P 2 ,R 3 ), (R 3 ,P 3 ), (R 2 ,P 1 ), (R 2 ,P 2 ) } Tồn tại 2 chu trình: Chu trình 1: P 1 R 1 P 2 R 3 P 3 R 2 P 1 Chu trình 2: P 2 R 3 P 3 R 2 P 2 ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN: [...]... xảy ra Deadlock III XỬ LÝ DEADLOCK 1 Sử dụng một giao thức để ngăn chặn hoặc tránh deadlocks, bảo đảm rằng hệ thống sẽ không bao giờ đi vào trạng thái deadlock 2 Cho phép hệ thống đi vào trạng thái deadlock, phát hiện nó, và phục hồi 3 Bỏ qua vấn đề này và giả thiết rằng deadlock không bao giờ xảy ra trong hệ thống Giải pháp này được dùng trong nhiều hệ điều hành kể cả UNIX III.1.1.NGĂN CHẶN DEADLOCK. .. HIỆN DEADLOCK Nếu một hệ điều hành không sử dùng giải thuật ngăn chặn hay phòng chống deadlock thì hiện tượng này có thể xảy ra Trong môi trường này thì hệ điều hành phải chuẩn bị: Giải thuật kiểm tra tình trạng của hệ thống để xác định có deadlock hay không Một giải thuật để phục hồi deadlock III.2.1.PHÁT HIỆN DEADLOCK 1 Loại tài nguyên có 1 thể hiện: Sử dụng đồ thị chờ III.2.1.PHÁT HIỆN DEADLOCK. .. III.2.1.PHÁT HIỆN DEADLOCK 1 Loại tài nguyên có nhiều thể hiện: Sử dụng thuật toán tương tự như Banker 3 Work = Work + Allocationi Finish[i] = true Quay trở lại bước 2 4.If Finish[i] == false, cho một vài i, 1 ≤ i ≤ n, thì hệ thống đang ở trong trạng thái deadlock Ngoài ra, if Finish[i] == false, thì Pi đang bị deadlock Giải thuật này có độ phức tạp O(m x n2) để xác định hệ thống có ở trong trạng thái deadlock. .. thống sẽ có 10 ổ băng từ sẳn dùng) - P2 có thể nhận tất cả ổ băng từ của nó và trả lại chúng (sau đó hệ thống sẽ có tất cả 12 ổ băng từ sẳn dùng) III.1.2.TRÁNH DEADLOCK 2 Giải thuật cấp phát tài nguyên: Đồ thị cấp phát tài nguyên để tránh Deadlock Trạng thái không an toàn trong đồ thị cấp phát tài nguyên 3 Giải thuật Banker: Các bước thực hiện: + Xác định thứ tự thỏa tiêu chuẩn an... những tài nguyên mà nó cần lại có thể được giao cho một số tiến trình khác III.1.1.NGĂN CHẶN DEADLOCK 3 Không đòi lại được tài nguyên từ tiến trình đang giữ nó R2 P1 P2 R1 Nếu P1 ở trạng thái chờ: - R1 sẽ bị thu hồi, cấp phát cho P2 - P1 sẽ hoạt động trở lại, sau khi được cung cấp đầy đủ R1,R2 III.1.1.NGĂN CHẶN DEADLOCK 4 Tồn tại chu trình trong đồ thị cấp phát tài nguyên: Điều kiện này có thể ngăn chặn... tiến trình được cấp phát tài nguyên ở lớp L, thì sau đó nó chỉ có thể yêu cầu các tài nguyên ở lớp thấp hơn lớp L III.1.2.TRÁNH DEADLOCK 1.Trạng thái an toàn: Trạng thái an toàn thỏa mãn 2 điều kiện: - Sự phân bổ giữa các tiến trình và tài nguyên có thứ tự - Không xuất hiện Deadlock Ví dụ: Xét một hệ thống với 12 ổ băng từ và 3 quá trình: P0, P1, P2 Quá trình P0 yêu cầu 10 ổ băng từ, quá trình P1 có... trong trạng thái deadlock hay ko ? III.2.1.PHÁT HIỆN DEADLOCK 1 Loại tài nguyên có nhiều thể hiện: Ví dụ: Allocation Request Available A B C A B C A B C P0 0 1 0 0 0 0 0 0 0 P1 2 0 0 2 0 2 P2 3 0 3 0 0 0 P3 2 1 1 1 0 0 P4 0 0 2 0 0 2 Thứ tự an toàn (P0,P2,P3,P1,P4) cho kết quả Finish[i] = True (với mọi i) -> Trạng thái này là an toàn III.2.1.PHÁT HIỆN DEADLOCK 1 Loại tài nguyên có nhiều thể hiện: Request2... giả thiết rằng deadlock không bao giờ xảy ra trong hệ thống Giải pháp này được dùng trong nhiều hệ điều hành kể cả UNIX III.1.1.NGĂN CHẶN DEADLOCK  Đảm bảo rằng ít nhất một trong bốn điều kiện dẫn đến deadlock không cùng tồn tại: 1 Độc quyền sử dụng: •Điều kiện này gần như không tránh khỏi •Tuy nhiên, với những tài nguyên thuộc loại không chia sẻ được thì hệ điều hành có thể sử dụng kỹ thuật SPOOL để... yêu cầu được sử dụng bộ nhớ như sau: P1 P2 … … Yêu cầu lần thứ 1 100Kb 120Kb … … Yêu cầu lần thứ 2 50Kb 60Kb … … Hệ điều hành sẽ cấp thêm bộ nhớ ảo để cả 2 tiến trình cùng thực hiện III.1.1.NGĂN CHẶN DEADLOCK 2 Giữ và chờ cấp thêm tài nguyên:  Phương pháp 1: Yêu cầu tất cả tài nguyên trước khi thực thi công việc  Phương pháp 2: Yêu cầu cấp phát tài nguyên trước khi thực hiện, và giải phóng nó trước . thành Deadlock III. Xử lý Deadlock III.1. Ngăn chặn và tránh Deadlock III.2. Phát hiện và phục hồi Deadlock III.3. Bỏ qua Deadlock Hình ảnh tắc nghẽn trong đời sống thường ngày I.KHÁI NIỆM:  Deadlock. xảy ra Deadlock ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN: III. XỬ LÝ DEADLOCK 1. Sử dụng một giao thức để ngăn chặn hoặc tránh deadlocks, bảo đảm rằng hệ thống sẽ không bao giờ đi vào trạng thái deadlock. 2 trạng thái deadlock. 2. Cho phép hệ thống đi vào trạng thái deadlock, phát hiện nó, và phục hồi. 3. Bỏ qua vấn đề này và giả thiết rằng deadlock không bao giờ xảy ra trong hệ thống. Giải pháp

Ngày đăng: 13/05/2014, 00:27

Từ khóa liên quan

Mục lục

  • DEADLOCK

  • NỘI DUNG CHÍNH:

  • Slide 3

  • I.KHÁI NIỆM:

  • Ví dụ 1:

  • Ví dụ 2:

  • Lưu ý:

  • II. ĐIỀU KIỆN HÌNH THÀNH DEADLOCK:

  • ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN:

  • Slide 10

  • Slide 11

  • III. XỬ LÝ DEADLOCK

  • III.1.1.NGĂN CHẶN DEADLOCK

  • Slide 14

  • Slide 15

  • Ví dụ:

  • 3. Không đòi lại được tài nguyên từ tiến trình đang giữ nó

  • Slide 18

  • III.1.2.TRÁNH DEADLOCK

  • Ví dụ:

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

Tài liệu liên quan