Máy Giặt Electrolux Lỗi E-45 Nguy Cơ Lớn Nếu Không Sửa! Tại sao máy giặt Electrolux hiện lỗi E-45? Nguyên nhân, dấu hiệu, cách khắc phục lỗi E-45 máy giặt...
Deadlock trong hệ điều hành? kiến thức cơ bản – w3seo
Bạn đang đọc: Deadlock trong hệ điều hành? kiến thức cơ bản – w3seo
Rate this post
Mọi Process đều cần 1 số ít tài nguyên để triển khai xong Process thực thi. Tuy nhiên, tài nguyên được cấp theo thứ tự tuần tự .
- Process yêu cầu một số tài nguyên.
- Hệ điều hành cấp tài nguyên nếu nó có sẵn, nếu không, hãy để Process chờ.
- Process sử dụng nó và phát hành khi hoàn thành.
Deadlock là một trường hợp trong đó mỗi tiến trình máy tính chờ đón một tài nguyên đang được gán cho một số ít tiến trình khác. Trong trường hợp này, không có Process nào được thực thi vì tài nguyên mà nó cần, được giữ bởi một số ít Process khác cũng đang chờ một số ít tài nguyên khác được giải phóng .
Các bài viết tương quan :
Giả sử rằng có ba Process P1, P2 và P3. Có ba tài nguyên khác nhau R1, R2 và R3. R1 được gán cho P1, R2 được gán cho P2 và R3 được gán cho P3 .
Sau một thời hạn, P1 nhu yếu R1 đang được P2 sử dụng. P1 tạm dừng Process thực thi của nó vì nó không hề hoàn thành xong nếu không có R2. P2 cũng nhu yếu R3 đang được P3 sử dụng. P2 cũng dừng Process thực thi của nó vì nó không hề liên tục mà không có R3. P3 cũng nhu yếu R1 đang được P1 sử dụng do đó P3 cũng dừng thực thi .
Trong ngữ cảnh này, một quy trình đang được hình thành giữa ba Process. Không có Process nào đang diễn ra và toàn bộ đều đang chờ đón. Máy tính không phản hồi vì toàn bộ những Process đã bị chặn .
Sự khác biệt giữa Starvation và Deadlock
Deadlock | Starvation |
Deadlock là tình huống không có Process nào bị chặn và không có Process nào tiếp diễn | Starvation là tình huống trong đó Process có mức độ ưu tiên thấp bị chặn và Process có mức độ ưu tiên cao vẫn tiếp tục. |
Deadlock lại là sự chờ đợi vô hạn | Starvation là một sự chờ đợi lâu dài nhưng không phải là vô hạn. |
Mỗi lần Deadlock luôn là một lần Starvation | Mọi Starvation không cần phải Deadlock |
Resource được yêu cầu bị chặn bởi Process khác | Resource được yêu cầu liên tục được sử dụng bởi các Process ưu tiên cao hơn. |
Deadlock xảy ra khi Mutual exclusion, hold và wait, No preemption và circular wait | Nó xảy ra do mức độ ưu tiên và quản lý tài nguyên không được kiểm soát |
Xem thêm Tránh deadlock trong hệ điều hành
Các điều kiện cần thiết cho Deadlocks
- Mutual Exclusion
Một tài nguyên chỉ hoàn toàn có thể được san sẻ theo cách Mutual Exclusion. Nó ý niệm, nếu hai tiến trình không hề sử dụng cùng một tài nguyên cùng một lúc .
- Hold and Wait
Một tiến trình đợi một số ít tài nguyên trong khi giữ một tài nguyên khác cùng một lúc .
- No preemption
Process đã từng được lên lịch sẽ được triển khai cho đến khi hoàn thành xong. Không có Process nào khác hoàn toàn có thể được lên lịch bởi người lập lịch trong thời hạn đó .
- Circular Wait
Tất cả những Process phải chờ tài nguyên theo cách tuần hoàn để Process ở đầu cuối đang đợi tài nguyên đang được Process tiên phong nắm giữ .
Các chiến lược để xử lý Deadlock
Deadlock Ignorance
Deadlock không hiểu biết là cách tiếp cận được sử dụng thoáng rộng nhất trong số toàn bộ những chính sách. Điều này đang được sử dụng bởi nhiều hệ điều hành hầu hết cho mục tiêu sử dụng của người dùng cuối. Trong cách tiếp cận này, Hệ điều hành giả định rằng Deadlock không khi nào xảy ra. Nó chỉ đơn thuần là bỏ lỡ những Deadlock. Cách tiếp cận này tương thích nhất cho một mạng lưới hệ thống người dùng cuối duy nhất trong đó Người dùng chỉ sử dụng mạng lưới hệ thống để duyệt web và tổng thể những nội dung thường thì khác .
Luôn có sự cân đối giữa tính đúng đắn và hiệu suất. Các hệ điều hành như Windows và Linux hầu hết tập trung chuyên sâu vào hiệu suất. Tuy nhiên, hiệu suất của mạng lưới hệ thống sẽ giảm nếu nó sử dụng chính sách giải quyết và xử lý deadlock mọi lúc .
Trong những loại mạng lưới hệ thống này, người dùng chỉ cần khởi động lại máy tính trong trường hợp Deadlock. Windows và Linux hầu hết sử dụng cách tiếp cận này .
Xem thêm Ngăn chặn Deadlock trong hệ điều hành
Deadlock prevention
Deadlock chỉ xảy ra khi Loại trừ lẫn nhau, giữ và chờ, Không ưu tiên và chờ vòng tròn đồng thời. Nếu hoàn toàn có thể vi phạm một trong bốn điều kiện kèm theo bất kể khi nào thì không khi nào hoàn toàn có thể xảy ra Deadlock trong mạng lưới hệ thống .
Ý tưởng đằng sau cách tiếp cận rất đơn thuần là tất cả chúng ta phải không đạt một trong bốn điều kiện kèm theo nhưng hoàn toàn có thể có một lập luận lớn về việc tiến hành vật lý của nó trong mạng lưới hệ thống .
Chúng ta sẽ bàn luận cụ thể về nó sau .
Deadlock avoidance
Trong trường hợp tránh Deadlock, hệ điều hành sẽ kiểm tra xem mạng lưới hệ thống đang ở trạng thái an toàn hay ở trạng thái không bảo đảm an toàn ở mỗi bước mà hệ điều hành triển khai. Quá trình liên tục cho đến khi mạng lưới hệ thống ở trạng thái an toàn. Khi mạng lưới hệ thống chuyển sang trạng thái không bảo đảm an toàn, hệ điều hành phải lùi lại một bước .
Nói cách đơn thuần, Hệ điều hành xem xét từng phân chia để việc phân chia không gây ra Deadlock trong mạng lưới hệ thống .
Chúng ta sẽ thảo luận chi tiết về cách tránh Deadlock ở phần sau.
Deadlock detection và recovery
Cách tiếp cận này được cho phép những tiến trình rơi vào thực trạng Deadlock và sau đó kiểm tra định kỳ xem có xảy ra Deadlock trong mạng lưới hệ thống hay không. Nếu nó xảy ra thì nó sẽ vận dụng một số ít chiêu thức Phục hồi mạng lưới hệ thống để thoát khỏi Deadlock .
Chúng ta sẽ tranh luận về việc phát hiện và Phục hồi deadlock sau cụ thể hơn vì nó là một yếu tố luận bàn .
Xem thêm Phát hiện và hồi sinh Deadlock trong hệ điều hành
Source: https://vh2.com.vn
Category : Ứng Dụng