Hỏi Đáp

Deadlock trong hệ điều hành? kiến thức cơ bản – w3seo

Mỗi quy trình yêu cầu một số tài nguyên để hoàn thành việc thực thi quy trình. Tuy nhiên, tài nguyên được phân bổ tuần tự.

  • Quá trình này cần một số tài nguyên.
  • Nếu tài nguyên có sẵn, hệ điều hành sẽ cấp tài nguyên, nếu không, hãy để quá trình chờ.
  • Quá trình sử dụng nó và giải phóng nó khi nó kết thúc.

Bế tắc là một tình huống trong đó mỗi tiến trình máy tính đợi một tài nguyên được phân bổ cho các tiến trình khác. Trong trường hợp này, không có quy trình nào được thực thi vì tài nguyên mà nó cần được nắm giữ bởi các quy trình khác cũng đang chờ giải phóng các tài nguyên khác.

Bạn đang xem: Deadlock trong hệ điều hành là gì

Các bài viết liên quan:

  • Hiểu các quy trình trong hệ điều hành
  • Đồng bộ hóa quy trình trong hệ điều hành
  • Cơ chế biến đổi thú vị trong hệ điều hành
  • Cách lấy tài nguyên liên kết ngược & amp; Liên kết đến các trang
  • Các yếu tố của nội dung SEO

Giả sử có ba quá trình p1, p2 và p3. Có ba tài nguyên riêng biệt 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 gian, p1 yêu cầu p2 sử dụng r1. p1 ngừng thực thi vì nó không thể hoàn thành nếu không có r2. p2 cũng yêu cầu p3 sử dụng r3. p2 cũng dừng thực thi, vì không thể tiếp tục thực thi nếu không có r3. p3 cũng yêu cầu p1 sử dụng r1, do đó p3 cũng ngừng thực thi.

Trong trường hợp này, một vòng lặp đang được hình thành giữa ba quá trình. Không có quá trình nào đang diễn ra, tất cả các quá trình đang chờ đợi. Máy tính không phản hồi vì tất cả các quá trình bị chặn.

Sự khác biệt giữa Starvation và Deadlock

Xem thêm Cách tránh bế tắc trong Hệ điều hành

Điều kiện bế tắc

  1. loại trừ lẫn nhau

Các tài nguyên chỉ có thể được chia sẻ thông qua loại trừ lẫn nhau. Điều này có nghĩa là nếu hai tiến trình không thể sử dụng cùng một tài nguyên cùng một lúc.

  1. Chờ

Một quy trình đang đợi một tài nguyên trong khi giữ một tài nguyên khác.

  1. Không có quyền ưu tiên

Quy trình đã từng được lên kế hoạch sẽ được thực hiện cho đến khi hoàn thành. Trong thời gian này, bộ lập lịch không thể lên lịch cho các quá trình khác.

  1. Chờ trong vòng lặp

Tất cả các quy trình phải đợi tài nguyên theo kiểu lặp lại, để quy trình cuối cùng đợi tài nguyên do quy trình đầu tiên nắm giữ.

Các chiến lược để giải quyết các bế tắc

Chốt lại sự thiếu hiểu biết

Bế tắc không được thông tin là phương pháp được sử dụng rộng rãi nhất trong tất cả các cơ chế. Điều này được sử dụng bởi nhiều hệ điều hành chủ yếu để sử dụng cho 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 sẽ không bao giờ xảy ra. Nó chỉ bỏ qua những bế tắc. Cách tiếp cận này là tốt nhất cho các hệ thống người dùng một đầu, trong đó người dùng chỉ sử dụng hệ thống để duyệt web và tất cả các nội dung thông thường khác.

Luôn có sự cân bằng giữa tính đúng đắn và hiệu suất. Các hệ điều hành như windows và linux chủ yếu quan tâm đến hiệu suất. Tuy nhiên, nếu quá trình xử lý deadlock được sử dụng mọi lúc, hiệu suất của hệ thống sẽ giảm sút.

Trong các loạ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 gặp sự cố. Windows và Linux chủ yếu sử dụng phương pháp này.

Xem thêm Ngăn chặn bế tắc trong Hệ điều hành

Ngăn chặn bế tắc

Chốt lại chỉ xảy ra khi loại trừ lẫn nhau, chờ giữ, không ưu tiên và chờ vòng tròn xảy ra đồng thời. Nếu một trong bốn điều kiện có thể bị vi phạm bất cứ lúc nào, thì sẽ không bao giờ có bế tắc trong hệ thống.

Ý tưởng đằng sau phương pháp rất đơn giản này là chúng ta phải thỏa mãn một trong bốn điều kiện, nhưng có thể có nhiều tranh luận về việc triển khai vật lý của nó trong hệ thống.

Chúng ta sẽ thảo luận chi tiết về vấn đề này sau.

Tránh bế tắc

Trong trường hợp tránh bế tắc, hệ điều hành sẽ kiểm tra xem hệ thống đang ở trạng thái an toàn hay không an toàn ở mỗi bước mà hệ điều hành thực hiện. Quá trình tiếp tục cho đến khi hệ thống ở trạng thái an toàn. Khi hệ thống đi vào trạng thái không an toàn, hệ điều hành phải lùi lại một bước.

Nói một cách đơn giản, hệ điều hành sẽ xem xét từng phân bổ để việc phân bổ không khiến hệ thống bị bế tắc.

Chúng ta sẽ thảo luận chi tiết về cách tránh bế tắc ở phần sau.

Phát hiện và khôi phục bế tắc

Phương pháp này cho phép một quy trình đi vào trạng thái bế tắc và sau đó kiểm tra định kỳ hệ thống để tìm các lần xuất hiện bế tắc. Nếu điều này xảy ra, nó sẽ áp dụng một số phương pháp khôi phục hệ thống để thoát khỏi bế tắc.

Chúng ta sẽ thảo luận chi tiết hơn về việc phát hiện và khôi phục deadlock sau, vì đây là một vấn đề thảo luận.

Xem thêm Phát hiện và khôi phục bế tắc trong Hệ điều hành

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back to top button