Networks Business Online Việt Nam & International VH2

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

Đăng ngày 04 October, 2022 bởi admin

Bế tắc và đói là cả hai điều kiện trong đó các quy trình yêu cầu tài nguyên đã bị trì hoãn trong một thời gian dài. Mặc dù bế tắc và chết đói cả hai đều khác nhau về nhiều mặt. Bế tắc là một điều kiện trong đó không có quá trình tiến hành thực hiện và mỗi quá trình chờ đợi các tài nguyên đã được các quy trình khác có được. Mặt khác, trong Starvation, quy trình có mức độ ưu tiên cao liên tục sử dụng các tài nguyên ngăn chặn quá trình ưu tiên thấp để có được tài nguyên. Hãy để chúng tôi thảo luận về một số khác biệt hơn giữa bế tắc và chết đói với sự giúp đỡ của biểu đồ so sánh được hiển thị dưới đây.Bế tắc và đói là cả hai điều kiện kèm theo trong đó những quy trình tiến độ nhu yếu tài nguyên đã bị trì hoãn trong một thời hạn dài. Mặc dù bế tắc và chết đói cả hai đều khác nhau về nhiều mặt. là một điều kiện kèm theo trong đó không có quy trình thực thi triển khai và mỗi quy trình chờ đón những tài nguyên đã được những quy trình tiến độ khác có được. Mặt khác, trong, tiến trình có mức độ ưu tiên cao liên tục sử dụng những tài nguyên ngăn ngừa quy trình ưu tiên thấp để có được tài nguyên. Hãy để chúng tôi tranh luận về một số ít độc lạ hơn giữa bế tắc và chết đói với sự trợ giúp của biểu đồ so sánh được hiển thị dưới đây .

Biểu đồ so sánh

Cơ sở cho Comparsion Bế tắc Đói
Căn bản Bế tắc là nơi không có quá trình tiến hành, và bị chặn. Đói là nơi các quy trình ưu tiên thấp bị chặn và quá trình ưu tiên cao tiến hành.
Tình trạng phát sinh Sự xuất hiện của Loại trừ lẫn nhau, Giữ và chờ đợi, Không có quyền ưu tiên và Thông tư chờ cùng một lúc. Thực thi các ưu tiên, quản lý tài nguyên không kiểm soát.
Tên khác Thông tư chờ. Phao cứu sinh.
Tài nguyên Trong bế tắc, tài nguyên được yêu cầu bị chặn bởi các quy trình khác. Trong tình trạng đói, các tài nguyên được yêu cầu liên tục được sử dụng bởi các quy trình ưu tiên cao.
Phòng ngừa Tránh loại trừ lẫn nhau, giữ và chờ đợi, và chờ đợi thông tư và cho phép sự miễn trừ. Lão hóa.

Định nghĩa bế tắc

Bế tắc là trường hợp trong đó một số ít tiến trình trong CPU cạnh tranh đối đầu về số lượng tài nguyên hữu hạn có sẵn trong CPU. Ở đây, mỗi quá trình giữ một tài nguyên và chờ đón để có được một tài nguyên được nắm giữ bởi 1 số ít quy trình tiến độ khác. Tất cả những quy trình tiến độ chờ tài nguyên theo kiểu vòng tròn. Trong hình ảnh bên dưới, bạn hoàn toàn có thể thấy rằng Quy trình P1 đã thu được tài nguyên R2 được nhu yếu bởi tiến trình P2 và Quy trình P1 đang nhu yếu tài nguyên R1 được giữ lại bởi R2. Vì vậy, quy trình P1 và P2 tạo thành một bế tắc . Bế tắc là một vấn đề phổ biến trong các hệ điều hành đa xử lý, hệ thống phân tán và cả trong các hệ thống máy tính song song. Có bốn điều kiện phải xảy ra đồng thời để nâng cao tình trạng bế tắc, đó là loại trừ lẫn nhau, Giữ và chờ đợi, Không có quyền ưu tiên và Chờ đợi Thông tư.

Bế tắc là một vấn đề phổ biến trong các hệ điều hành đa xử lý, hệ thống phân tán và cả trong các hệ thống máy tính song song. Có bốn điều kiện phải xảy ra đồng thời để nâng cao tình trạng bế tắc, đó là loại trừ lẫn nhau, Giữ và chờ đợi, Không có quyền ưu tiên và Chờ đợi Thông tư.

  • Loại trừ lẫn nhau: Chỉ một quy trình tại một thời điểm có thể sử dụng tài nguyên nếu quy trình khác yêu cầu cùng một tài nguyên, nó phải đợi cho đến khi quy trình sử dụng tài nguyên giải phóng tài nguyên đó.
  • Giữ và chờ đợi: Một quy trình phải được giữ một tài nguyên và chờ đợi để có được một tài nguyên khác được nắm giữ bởi một quy trình khác.
  • Không có quyền ưu tiên: Quá trình nắm giữ các tài nguyên không thể được ưu tiên. Quá trình giữ tài nguyên phải giải phóng tài nguyên một cách tự nguyện khi nó đã hoàn thành nhiệm vụ.
  • Chờ thông tư: Quá trình phải chờ tài nguyên theo kiểu vòng tròn. Giả sử chúng ta có ba quy trình {P0, P1, P2}. P0 phải chờ tài nguyên do P1 nắm giữ; P1 phải chờ để có được tài nguyên được giữ bởi quy trình P2 và P2 phải chờ để có được quy trình do P0 nắm giữ.

Mặc dù có một số ít ứng dụng hoàn toàn có thể phát hiện những chương trình hoàn toàn có thể bị bế tắc. Nhưng hệ điều hành không khi nào chịu nghĩa vụ và trách nhiệm ngăn ngừa những bế tắc. Trách nhiệm của những lập trình viên là phong cách thiết kế những chương trình không lấy phí bế tắc. Nó hoàn toàn có thể được thực thi bằng cách tránh những điều kiện kèm theo trên thiết yếu cho sự cố bế tắc

Định nghĩa của đói

Sự chết đói hoàn toàn có thể được định nghĩa là khi một nhu yếu quy trình cho một tài nguyên và tài nguyên đó đã được sử dụng liên tục bởi những tiến trình khác thì quy trình nhu yếu phải đương đầu với nạn đói. Trong thực trạng đói, một quy trình sẵn sàng chuẩn bị để thực thi chờ CPU phân chia tài nguyên. Nhưng quy trình này phải chờ vô thời hạn vì những tiến trình khác liên tục chặn những tài nguyên được nhu yếu .

Vấn đề chết đói thường xảy ra trong thuật toán lập lịch ưu tiên. Trong thuật toán lập lịch ưu tiên, quy trình có mức ưu tiên cao hơn luôn được phân bổ tài nguyên, ngăn quá trình ưu tiên thấp hơn nhận được tài nguyên được yêu cầu.

Lão hóa có thể giải quyết vấn đề đói. Lão hóa tăng dần mức độ ưu tiên của quá trình đã chờ đợi tài nguyên từ lâu. Lão hóa ngăn chặn một quá trình với mức độ ưu tiên thấp để chờ đợi vô thời hạn cho một tài nguyên.

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

  1. Trong một bế tắc, không có quy trình nào tiến hành thực thi, mỗi quy trình bị chặn chờ các tài nguyên được quy trình khác thu được. Mặt khác, chết đói là điều kiện trong đó các quy trình có mức độ ưu tiên cao hơn được phép liên tục nhận được tài nguyên bằng cách ngăn chặn các quy trình ưu tiên thấp để có được tài nguyên dẫn đến việc chặn vô thời hạn các quy trình ưu tiên thấp.
  2. Bế tắc phát sinh khi bốn điều kiện Loại trừ lẫn nhau, Giữ và chờ, Không có quyền ưu tiên và chờ đợi Thông tư xảy ra đồng thời. Tuy nhiên, chết đói xảy ra khi các ưu tiên của quy trình đã được thực thi trong khi phân bổ tài nguyên hoặc có sự quản lý tài nguyên không được kiểm soát trong hệ thống.
  3. Bế tắc thường được gọi bằng tên chờ đợi trong khi đó, sự chết đói được gọi là khóa Sống .
  4. Trong Bế tắc, các tài nguyên bị chặn bởi quy trình trong khi đó, trong tình trạng đói, các quy trình liên tục được sử dụng bởi các quy trình có mức độ ưu tiên cao.
  5. Bế tắc có thể được ngăn chặn bằng cách tránh các điều kiện như loại trừ lẫn nhau, Giữ và chờ, và chờ vòng tròn và bằng cách cho phép các quy trình đang giữ tài nguyên trong một thời gian dài. Mặt khác, Starvation có thể được ngăn ngừa bằng cách lão hóa .

Phần kết luận:

Cả Deadlock và Starvation đều trì hoãn quy trình thực thi bằng cách chặn nó. Một mặt, nơi bế tắc hoàn toàn có thể khiến những quy trình chết đói, và mặt khác, việc chết đói hoàn toàn có thể khiến những quy trình thoát khỏi bế tắc .

Source: https://vh2.com.vn
Category : Ứng Dụng