Giải pháp ngăn chặn Deadlock

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Giải pháp ngăn chặn Deadlock

Bài gửi  ngothihanHC11TH2A on 22/4/2012, 21:07

Giải pháp để ngăn chặn DeadLock là bằng cách phủ định một trong bốn điều kiện trên như sau:
+Loại trừ lẫn nhau
-> để ngăn tình trạng này xảy ra thì ta có thể tạo nhiều tài nguyên dùng chung để các tiến trình sử dụng 1 cách hiệu quả.
VD: hai xe chạy ngược chiều qua cầu hẹp sẽ dẫn đến deadlock, giải pháp là ta sẽ xây thêm một cây cầu nữa đễ phân thành 2 làn riêng biệt, như vậy sẽ tránh được deadlock. (Xây thêm cầu là tạo thêm tài nguyên dùng chung).
+Giữ và chờ
->để ngăn tình trạng này ta sẽ cho các tiến trình giữ và chờ trong một khoảng thời gian nhất định nào đó. Như thế, sẽ giải phóng được tài nguyên và các tiến trình khác tiếp tục sử dụng tài nguyên đó.
VD: xe chạy tới ngã 4, không xe nào chịu nhường xe nào qua trước, xe nào cũng cố giữ phần đường mà mình đang có và chờ xe khác nhường phần đường còn lại, dẫn đến deadlock. Để giải quyết vấn đề thì ta phải dựng đèn giao thông, quy định trong thời gian bao lâu thì phải nhường cho xe khác qua, như vậy sẽ giảm được deadlock.
+Không có tiếm quyền
-> để ngăn tình trạng này thì ta phải làm cho hệ điều hành lấy lại tài nguyên mà tiến trình đó đang giữ (có tiếm quyền).
VD: ngã 4 đang kẹt xe, không bên nào chịu nhường bên nào. Cần có người điều khiển giao thông dùng quyền lực để bắt một bên nào đó phải nhường cho bên còn lại đi trước, sau đó sẽ đến lượt bên kia đi.
+ Chờ xoay vòng
-> cách giải quyết cũng giống (Loại trừ lẫn nhau) là phải tạo nhiều tài nguyên dùng chung.

ngothihanHC11TH2A

Tổng số bài gửi : 23
Join date : 16/02/2012

Xem lý lịch thành viên

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết