Sự khác biệt giữa bế tắc và chết đói trong hệ điều hành

Hệ điều hành là phần mềm cơ bản nhất chạy trên máy tính. Nó chịu trách nhiệm quản lý bộ nhớ và quy trình của máy tính, cũng như che chắn các chi tiết của phần cứng khỏi các chương trình ứng dụng sử dụng nó. Hệ điều hành của máy tính cũng đảm bảo phân bổ nguồn lực hợp lý cho người dùng và chương trình thay vì phân phối đồng đều giữa các quy trình. Một hệ thống lập lịch công bằng cho phép một quá trình sử dụng CPU trong khi quá trình kia đang chờ trong hàng đợi. Kết quả là mỗi luồng có đủ quyền truy cập vào các tài nguyên bị giới hạn ngăn chặn hai điều kiện phổ biến nhất sẽ làm trì hoãn quá trình nếu không: Bế tắc và Đói. Cả hai đều là các khái niệm liên quan trong đó các quy trình không có quyền truy cập vào tài nguyên. Bài viết này nhấn mạnh một số điểm chính so sánh hai trên các mặt trận khác nhau.

Bế tắc là gì?

Bế tắc là một điều kiện trong đó một tập hợp các luồng bị chặn bởi vì mỗi quy trình đang giữ một tài nguyên đang cố truy cập vào một số tài nguyên khác đang được giữ bởi một quy trình khác cuối cùng sẽ ngăn chặn việc lập lịch trình hệ thống công bằng. Một tình huống bế tắc phát sinh khi bốn điều kiện sau đây đúng: Loại trừ lẫn nhau có nghĩa là chỉ một quá trình có thể truy cập tài nguyên tại một thời điểm; Không có điều kiện ưu tiên có nghĩa là một tài nguyên chỉ có thể được giải phóng một cách tự nguyện bởi quá trình nắm giữ tài nguyên đó; Giữ và chờ có nghĩa là một tài nguyên nắm giữ quy trình có thể yêu cầu các tài nguyên bổ sung được nắm giữ bởi các quy trình khác và; Chờ thông tư có nghĩa là hai hoặc nhiều quy trình bị mắc kẹt trong một chuỗi vòng tròn chờ đợi mỗi quy trình giải phóng tài nguyên tương ứng của họ.

Đói là gì?

Đói là tình trạng phát sinh khi một quá trình đi vào thời gian chờ đợi vô thời hạn vì quy trình ưu tiên thấp không bao giờ có cơ hội truy cập tài nguyên do dòng quy trình ưu tiên cao liên tục truy cập vào cùng một tài nguyên. Đây là một vấn đề quản lý tài nguyên vì một quy trình bị từ chối truy cập vào tài nguyên mà nó yêu cầu do đó đẩy quy trình vào một khoảng thời gian chờ đợi không xác định. Nó xảy ra bởi vì tài nguyên mà nó yêu cầu không bao giờ được phân bổ cho quy trình khiến cho quá trình đó bị bỏ đói tài nguyên, do đó có tên. Cách tốt nhất để tránh chết đói là sử dụng kỹ thuật lão hóa làm tăng dần mức độ ưu tiên của các quá trình đang trong thời gian chờ đợi trong một thời gian dài để đảm bảo một hệ thống lập lịch công bằng.

Sự khác biệt giữa bế tắc và chết đói trong hệ điều hành

  1. Định nghĩa về bế tắc và chết đói

Cả bế tắc và chết đói đều là những khái niệm liên quan ngăn cản việc lập lịch trình hệ thống công bằng nơi các quy trình bị chặn không thể truy cập vào tài nguyên. Bế tắc, như tên cho thấy, đề cập đến một điều kiện trong đó một tập hợp các luồng hoặc các quy trình bị chặn bởi vì mỗi quy trình đang chờ để có được một tài nguyên đang được giữ bởi một quy trình khác do đó dẫn đến tình trạng bế tắc khi các chương trình ngừng hoạt động. Mặt khác, chết đói được kích hoạt bởi một bế tắc khiến quá trình đóng băng vì quy trình ưu tiên thấp bị từ chối truy cập vào tài nguyên được phân bổ cho quy trình ưu tiên cao.

  1. Điều kiện

Bế tắc đề cập đến một điều kiện cụ thể xảy ra khi một luồng hoặc một tiến trình đang trong giai đoạn chờ đợi vì tài nguyên hệ thống mà nó yêu cầu đang bị giữ bởi một quy trình khác, do đó đang chờ một quá trình khác giải phóng tài nguyên của nó do đó tạo ra bế tắc. Điều này được gây ra bởi việc sử dụng tài nguyên kém. Đói là một điều kiện hoãn vô thời hạn trong đó một quy trình ưu tiên thấp bị từ chối truy cập vào các tài nguyên mà nó yêu cầu vì các tài nguyên đang được phân bổ cho một quy trình ưu tiên cao khác. Đây là một vấn đề quản lý tài nguyên buộc hệ thống chỉ phân bổ tài nguyên cho các quy trình ưu tiên cao.

  1. Đặc trưng của bế tắc và chết đói

Bế tắc là hình thức chết đói cuối cùng xảy ra khi bốn điều kiện sau đây xảy ra đồng thời: Loại trừ lẫn nhau, Không ưu tiên, Giữ và Chờ, và Chờ đợi Thông tư. Một điều kiện bế tắc chỉ xảy ra trong các hệ thống trong đó cả bốn điều kiện đều đúng. Đói xảy ra dựa trên các điều kiện khác nhau, chẳng hạn như khi không có đủ tài nguyên để đi xung quanh và mức độ ưu tiên của các quy trình bắt đầu thấp hơn hoặc khi các quy trình bắt đầu chuyển tài nguyên cho các quy trình khác mà không kiểm soát. Nếu một quy trình ưu tiên thấp yêu cầu tài nguyên dành riêng cho các quy trình ưu tiên cao nhất, quy trình đó sẽ chết mãi mãi. Đói cũng xảy ra khi tài nguyên được phân bổ tùy ý khiến các quá trình phải chờ trong một khoảng thời gian dài hơn.

  1. Phòng ngừa

Có thể ngăn chặn tình trạng đói bằng cách sử dụng thuật toán lập lịch phù hợp với hàng đợi ưu tiên mà trên thực tế cũng sử dụng kỹ thuật lão hóa - một kỹ thuật lập lịch bổ sung yếu tố lão hóa vào mức độ ưu tiên của mỗi yêu cầu có nghĩa là nó tăng mức độ ưu tiên của các quy trình ưu tiên thấp đang chờ trong một khoảng thời gian dài. Ngoài ra việc cung cấp thêm tài nguyên cho các chương trình nên tránh tình trạng tắc nghẽn tài nguyên liên tục. Để ngăn hệ thống đi vào bế tắc, các quy trình phải bị từ chối truy cập vào một hoặc nhiều tài nguyên trong khi chờ đợi đồng thời các tài nguyên khác và chỉ một quy trình được phép truy cập tài nguyên tại một thời điểm.

Bế tắc so với đói: Biểu đồ so sánh

Tóm tắt về Bế tắc VS. Đói

Cả bế tắc và chết đói là những khái niệm liên quan trong hệ điều hành đa xử lý hoặc hệ thống phân tán, khiến một hoặc nhiều luồng hoặc quá trình bị mắc kẹt trong khi chờ đợi tài nguyên mà chúng cần. Bế tắc là tình huống phát sinh khi một hoặc nhiều quy trình yêu cầu quyền truy cập vào cùng một tài nguyên khiến quy trình bị đóng băng, trong khi đó, tình trạng chết đói là do bế tắc đẩy quá trình đến trạng thái hoãn vô thời hạn vì các quy trình bị từ chối truy cập vào tài nguyên do quá trình ưu tiên cao và cần phải chờ đợi mãi mãi.