Bế tắc trong OperaHệ thống ting: Là gì, Chờ tròn (Ví dụ)
⚡ Tóm tắt thông minh
Tình trạng tắc nghẽn trong hệ điều hành xảy ra khi một tập hợp các tiến trình bị chặn vì mỗi tiến trình đều giữ một tài nguyên và chờ một tài nguyên khác do một tiến trình khác nắm giữ, tạo ra một chuỗi vòng luẩn quẩn khiến không tiến trình nào có thể tiếp tục hoạt động.

Bế tắc là gì?
bế tắc là một tình huống xảy ra trong một hệ điều hành Hiện tượng tắc nghẽn xảy ra khi một tiến trình chuyển sang trạng thái chờ vì một tiến trình chờ khác đang giữ tài nguyên được yêu cầu. Tắc nghẽn là một vấn đề phổ biến trong xử lý đa tiến trình, nơi nhiều tiến trình cùng chia sẻ một loại tài nguyên cụ thể, loại trừ lẫn nhau, được gọi là khóa mềm hoặc khóa phần mềm.
Khi xảy ra tình trạng tắc nghẽn, không một tiến trình nào liên quan có thể tiếp tục hoạt động, do đó công việc bị ảnh hưởng sẽ dừng lại cho đến khi hệ điều hành can thiệp.
Ví dụ về bế tắc
- Một ví dụ thực tế là giao thông chỉ di chuyển theo một hướng.
- Ở đây, một cây cầu được coi là một nguồn tài nguyên.
- Vì vậy, khi xảy ra tình trạng tắc nghẽn, nó có thể được giải quyết nếu một chiếc xe lùi lại (chiếm dụng tài nguyên và hoàn tác).
- Có thể phải có nhiều xe phải lùi lại nếu xảy ra tình trạng kẹt xe.
- Vì vậy, nạn đói là điều hoàn toàn có thể xảy ra.
Ví dụ về bế tắc
Thông tư chờ đợi là gì?
Một tiến trình đang chờ một tài nguyên do tiến trình thứ hai nắm giữ, tiến trình thứ hai lại đang chờ một tài nguyên do tiến trình thứ ba nắm giữ, và cứ thế tiếp diễn. Quá trình này tiếp tục cho đến khi tiến trình cuối cùng chờ một tài nguyên do tiến trình đầu tiên nắm giữ. Điều này tạo ra một chuỗi vòng tròn.
Ví dụ, Tiến trình A được cấp phát Tài nguyên B trong khi nó đang yêu cầu Tài nguyên A. Tương tự, Tiến trình B được cấp phát Tài nguyên A trong khi nó đang yêu cầu Tài nguyên B. Điều này tạo ra một vòng lặp chờ đợi luẩn quẩn.
Ví dụ về chờ vòng tròn
Ví dụ, một máy tính có ba ổ USB và ba tiến trình. Mỗi tiến trình giữ một trong ba ổ USB đó. Vì vậy, khi mỗi tiến trình yêu cầu một ổ USB khác, ba tiến trình sẽ rơi vào tình trạng tắc nghẽn, vì mỗi tiến trình đều chờ một ổ USB được giải phóng trong khi nó vẫn đang được sử dụng. Điều này dẫn đến một chuỗi vòng luẩn quẩn.
Ví dụ chờ vòng tròn
Phát hiện bế tắc trong hệ điều hành
Sự cố tắc nghẽn có thể được phát hiện bởi bộ lập lịch tài nguyên. Bộ lập lịch tài nguyên giúp hệ điều hành duy trì... track là tổng số tài nguyên được phân bổ cho các tiến trình khác nhau. Khi phát hiện ra tình trạng tắc nghẽn, nó có thể được giải quyết bằng cách chiếm đoạt tài nguyên, hoàn tác một tiến trình hoặc chấm dứt một hoặc nhiều tiến trình bị tắc nghẽn.
Phòng ngừa bế tắc trong hệ điều hành
Việc ngăn chặn tình trạng tắc nghẽn trước khi nó xảy ra là rất quan trọng. Hệ thống kiểm tra mọi giao dịch trước khi thực thi để đảm bảo rằng nó không dẫn đến tắc nghẽn. Ngay cả một thao tác nhỏ có thể gây ra tắc nghẽn trong tương lai cũng không bao giờ được phép thực thi.
Ngăn ngừa tắc nghẽn là một tập hợp các phương pháp nhằm đảm bảo rằng ít nhất một trong bốn điều kiện cần thiết không thể xảy ra.
Không có quyền ưu tiên
Một tài nguyên chỉ có thể được giải phóng một cách tự nguyện bởi tiến trình đang nắm giữ nó, sau khi tiến trình đó đã hoàn thành nhiệm vụ của mình.
- Nếu một tiến trình đang giữ một số tài nguyên yêu cầu một tài nguyên khác mà không thể được cấp phát ngay lập tức, thì tất cả các tài nguyên của nó sẽ được giải phóng.
- Các tài nguyên bị chiếm dụng trước sẽ được thêm vào danh sách các tài nguyên mà tiến trình đang chờ.
- Quá trình chỉ được khởi động lại khi nó có thể khôi phục lại các tài nguyên cũ cũng như tài nguyên mới mà nó đang yêu cầu.
Loại trừ lẫn nhau
Mutual Exclusion là viết tắt của Mutex (Loại trừ lẫn nhau). Nó là một loại nhị phân đặc biệt. đèn hiệu Cơ chế này được sử dụng để kiểm soát quyền truy cập vào tài nguyên dùng chung. Nó bao gồm cơ chế kế thừa ưu tiên nhằm tránh các vấn đề đảo ngược ưu tiên kéo dài và giữ cho các tác vụ có ưu tiên cao hơn bị chặn trong thời gian ngắn nhất có thể.
Các tài nguyên dùng chung như tập tin chỉ đọc không bao giờ dẫn đến tình trạng tắc nghẽn, nhưng các tài nguyên như máy in và ổ băng từ cần quyền truy cập độc quyền bởi một tiến trình duy nhất.
Giữ và chờ
Trong điều kiện này, các tiến trình phải được ngăn chặn việc giữ một hoặc nhiều tài nguyên trong khi đồng thời chờ đợi một hoặc nhiều tài nguyên khác.
Chờ tròn
Phương pháp này áp đặt một thứ tự toàn phần cho tất cả các loại tài nguyên. Ngăn chặn chờ đợi vòng lặp cũng yêu cầu mọi tiến trình phải yêu cầu tài nguyên theo thứ tự tăng dần.
Tránh bế tắc Algorithms
Tốt hơn hết là nên tránh tình trạng tắc nghẽn thay vì hành động sau khi tắc nghẽn đã xảy ra. Việc tránh tắc nghẽn cần thêm thông tin, chẳng hạn như cách thức sử dụng tài nguyên. Tránh tắc nghẽn là một mô hình hữu ích trong đó mỗi tiến trình khai báo số lượng tài nguyên tối đa của mỗi loại mà nó có thể cần.
Tránh Algorithms
Thuật toán tránh tắc nghẽn tự động đánh giá trạng thái phân bổ tài nguyên để tình huống chờ đợi vòng lặp không bao giờ xảy ra.
Đối với một trường hợp cụ thể của một loại tài nguyên:
- Sử dụng biểu đồ phân bổ nguồn lực.
- Một chu trình trong đồ thị là điều kiện cần và đủ để xảy ra tình trạng bế tắc.
Đối với nhiều trường hợp của cùng một loại tài nguyên:
- Chu kỳ là điều kiện cần nhưng chưa đủ để gây ra tình trạng bế tắc.
- Sử dụng Thuật toán của ngân hàng.
Sự khác biệt giữa Starvation và Deadlock
Dưới đây là một số điểm khác biệt quan trọng giữa tình trạng bế tắc và tình trạng thiếu nguyên liệu:
| bế tắc | Nạn đói |
|---|---|
| Tình trạng bế tắc xảy ra khi một trong các tiến trình bị chặn. | Tình trạng "đói tài nguyên" xảy ra khi tất cả các tiến trình có độ ưu tiên thấp bị chặn trong khi các tiến trình có độ ưu tiên cao vẫn đang thực thi. |
| Bế tắc là một quá trình vô hạn. | Đói khát là một sự chờ đợi dài, nhưng không phải là một quá trình vô tận. |
| Mọi tình trạng bế tắc đều luôn tiềm ẩn sự thiếu thốn nguồn lực. | Không phải mọi cuộc đói kém đều nhất thiết dẫn đến bế tắc. |
| Tình trạng tắc nghẽn xảy ra do sự loại trừ lẫn nhau, giữ và chờ, không có quyền ưu tiên và chờ vòng lặp xảy ra đồng thời. | Điều này xảy ra do việc ưu tiên không được kiểm soát và quản lý nguồn lực kém hiệu quả. |
Ưu điểm của Deadlock
Dưới đây là những ưu điểm của phương pháp xử lý tắc nghẽn:
- Tình huống này hoạt động tốt đối với các quy trình thực hiện một đợt hoạt động duy nhất.
- Không cần can thiệp trước để giải quyết tình trạng bế tắc.
- Đây là một phương pháp tiện lợi khi áp dụng cho các tài nguyên mà trạng thái của chúng có thể được lưu và khôi phục dễ dàng.
- Việc thực thi điều này thông qua kiểm tra trong quá trình biên dịch là hoàn toàn khả thi.
- Nó không cần tính toán trong quá trình vận hành, vì vấn đề đã được giải quyết trong giai đoạn thiết kế hệ thống.
Nhược điểm của Deadlock
Dưới đây là những nhược điểm của phương pháp xử lý tắc nghẽn:
- Nó làm trì hoãn việc khởi tạo quy trình.
- Các quy trình phải biết trước nhu cầu tài nguyên trong tương lai của mình.
- Nó can thiệp trước nhiều hơn mức cần thiết.
- Nó không cho phép các yêu cầu tài nguyên tăng dần.
- Nó tiềm ẩn những tổn thất do việc chiếm quyền ưu tiên.


