Networks Business Online Việt Nam & International VH2

Đăng ngày 04 October, 2022 bởi admin
Mục tiêu chính của hệ điều hành là cung ứng tiếp xúc thích hợp giữa những tài nguyên phần cứng và ứng dụng, đồng thời cung ứng những dịch vụ chung cho những chương trình. Khi một tiến trình của hệ điều hành muốn truy vấn bất kỳ tài nguyên nào, thứ nhất nó sẽ gửi một nhu yếu đến tài nguyên đơn cử mà nó muốn truy vấn, sau đó nó sử dụng tài nguyên đó và ở đầu cuối giải phóng tài nguyên sau khi sử dụng. Vì giả sử nhiều quá trình đang nỗ lực truy vấn một tài nguyên cùng một lúc, thì việc cung ứng một tài nguyên cho toàn bộ những tiến trình tại một thời gian sẽ trở nên khó khăn vất vả trong một trường hợp như vậy, khái niệm có tên là deadlock phát sinh. Do đó bài viết này miêu tả cách deadlock xảy ra và cách khắc phục thực trạng deadlock này.

Bế tắc trong Hệ điều hành là gì?

Định nghĩa: Dead-Lock là một tình huống trong đó hai hoặc nhiều bộ xử lý đang đợi một sự kiện nào đó xảy ra, nhưng những sự kiện đó không xảy ra là một tình trạng bế tắc và các bộ xử lý được cho là đang ở trạng thái bế tắc. Ví dụ: chúng ta hãy giả sử một tình huống thời gian thực, trong đó có hai chiếc ô tô A & B, do hai người lái xe riêng lẻ điều khiển trên đường một chiều. Bây giờ tình huống phát sinh khi người lái xe ô tô A nói rằng anh ta đi về hướng bắc là một hướng chính xác, trong khi người lái xe ô tô B nói rằng anh ta đi về hướng nam là đúng. Nhưng cả hai không lùi lại để cho xe khác tiến lên, điều kiện này được gọi là điều kiện bế tắc.

Ví dụ về ô tôví dụ xe hơi

Bạn đang đọc:

Để hiểu rõ hơn, tất cả chúng ta hãy xem xét một ví dụ khác trong đó có hai tài nguyên R1, R2 và hai quy trình P1 và P2, trong đó R1 được gán cho P1 và R2 được gán cho P2. Bây giờ nếu P1 muốn truy vấn R2, như tất cả chúng ta đã biết R2 do P2 nắm giữ và giờ đây P2 muốn truy vấn R1, P1 chỉ thực thi khi nó được truy vấn vào R2, còn P2 chỉ thực thi khi nó được truy vấn vào R1 trong trường hợp này là một trạng thái bế tắc. Bộ xử lý-Ví dụví dụ bộ giải quyết và xử lý

Điều kiện khóa chết

Sau đây là bốn điều kiện kèm theo deadlock quan trọng xảy ra nếu toàn bộ những điều kiện kèm theo xảy ra đồng thời thì sẽ có nhiều năng lực xảy ra deadlock.

Loại trừ lẫn nhau

Nó có nghĩa là bất kỳ tài nguyên nào tất cả chúng ta đang sử dụng nó phải được sử dụng theo cách loại trừ lẫn nhau. Trường hợp chỉ có một quá trình sử dụng một tài nguyên tại một thời gian duy nhất. Ví dụ : quy trình in đang diễn ra và đùng một cái một quy trình khác nỗ lực làm gián đoạn quy trình in. Vì vậy, ở đây trong trường hợp loại trừ lẫn nhau, chỉ sau khi tác vụ in hoàn thành xong thì chỉ tác vụ tiếp theo được giải quyết và xử lý. Loại trừ lẫn nhau hoàn toàn có thể được vô hiệu bằng cách san sẻ tài nguyên đồng thời, điều này không hề thực thi được trên thực tiễn .Loại trừ lẫn nhauloại trừ lẫn nhau

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

Dựa theo phủ đầu dựa trên thuật toán, nếu có một trách nhiệm ưu tiên đang nỗ lực làm gián đoạn tác vụ hiện tại. Thuật toán ưu tiên nó giữ tác vụ hiện tại và thứ nhất thực thi tác vụ ưu tiên và quay trở lại tác vụ tiên phong của nó. Một trường hợp được lý giải theo ví dụ trên trong đó một tiến trình giữ tài nguyên miễn là nó được thực thi, đó là P1 chỉ hoàn toàn có thể giải phóng R1 sau khi thực thi, tựa như P2 giải phóng R2 chỉ sau khi thực thi. Nếu không có pre-emption, bế tắc hoàn toàn có thể xảy ra.
Ví dụ về No-Preemptionno-preemption-example

Giữ và đợi

Một quy trình tiến độ đang giữ một số ít tài nguyên và đang chờ thêm tài nguyên nhưng những tài nguyên đó được một quá trình khác thu được. Từ ví dụ trên, P1 đang giữ R1 và chờ R2, trong đó R2 được P2 thu nhận và P2 đang giữ R2 và chờ R1, trong đó R1 được P1 mua lại là thực trạng giữ và chờ hoàn toàn có thể xảy ra bế tắc trong mạng lưới hệ thống. Ví dụ về Hold-and-Wait-ví dụ về giữ và đợi

Chờ vòng tròn

Một tập hợp những quy trình tiến độ được cho là đang trong thực trạng bế tắc nếu một quy trình tiến độ đang đợi tài nguyên được cấp phép cho tiến trình khác và quy trình tiến độ đó đang chờ tài nguyên, nó tương tự như như ví dụ đã lý giải ở trên, nó ở dạng vòng lặp. Trong đó P1 đang đợi R2 và R2 được cấp phép cho P2 và P2 đang chờ R1 và R1 được cấp phép cho P1 là dạng chờ vòng tròn nếu điều kiện kèm theo này thỏa mãn nhu cầu deadlock xảy ra. Hình tròn-Chờ-Ví dụvòng-đợi-ví dụ

Thuật toán phát hiện khóa chết

Các trường hợp chúng tôi phân chia tài nguyên cho những quy trình tiến độ và hệ điều hành kiểm tra lại xem có xảy ra bế tắc trong mạng lưới hệ thống hay không bằng cách sử dụng 2 thuật toán phát hiện bế tắc chính, chúng

  • Trường hợp duy nhất
  • Nhiều trường hợp của loại tài nguyên

Trường hợp duy nhất

Một trường hợp đơn lẻ là một tình huống trong đó một hệ thống đang có các trường hợp đơn lẻ của tất cả các tài nguyên. Nó còn được gọi là thuật toán chờ đồ thị hoặc đồ thị phân bổ tài nguyên. Biểu đồ phân bổ tài nguyên bao gồm một tập hợp các quy trình và tập hợp các tài nguyên được biểu diễn dưới dạng hai đỉnh khác nhau. Các tài nguyên trong biểu đồ phân bổ tài nguyên được sửa đổi và được biểu diễn dưới dạng biểu đồ chờ. Trong đó biểu đồ chờ đợi chỉ có các quy trình được biểu diễn dưới dạng các đỉnh như được hiển thị bên dưới, trong đó,

  • Đồ thị phân bổ tài nguyên: Các quá trình P1, P2, P3 và các tài nguyên R1, R2, R3 được biểu diễn trong đồ thị phân bổ tài nguyên.
  • Chờ đồ thị: Chỉ các quá trình P1, P2, P3 được đề cập trong quá trình chờ đồ thị.
  • Nếu có một điều kiện chu trình, tức là nếu có một dòng liên tục của một quá trình theo một hướng, điều đó có nghĩa là điều kiện chu trình thoát ra và chờ đợi đồ thị ở trong điều kiện bế tắc.

Ví dụ 1: Ví dụ dưới đây cho thấy không có trạng thái bế tắc vì không có luồng liên tục được quan sát trong thời gian chờ đồ thị.

Đơn mẫu-Ví dụ1single-instance-example1

Ví dụ 2: Tình trạng deadlock đã xảy ra do có một dòng chu trình liên tục từ P1 đến P4.

Phiên bản đơn - Ví dụ 2single-instance-example2Nếu deadlock xảy ra rất liên tục trong mạng lưới hệ thống thì thuật toán phát hiện được sử dụng liên tục. Nếu có nhiều sử dụng thuật toán phát hiện hơn thì sẽ có nhiều ngân sách hơn và thời hạn thống kê giám sát nhiều hơn. Do đó, để khắc phục điều này, chúng tôi gọi thuật toán sau, với một khoảng chừng thời hạn bằng nhau, đây là cách trọng số của đồ thị được sử dụng để phát hiện bế tắc .

Nhiều phiên bản của loại tài nguyên

Nhiều trường hợp của loại tài nguyên là một trường hợp trong đó một mạng lưới hệ thống có nhiều trường hợp của tổng thể những tài nguyên, nó còn được gọi là thuật toán Bankers. Theo thuật toán Bankers, ngay sau khi tiến trình nhận được tổng thể những tài nguyên thiết yếu, thì nó sẽ giải phóng tài nguyên của nó .Chúng ta hãy xem xét ví dụ sau, giả sử có 3 quy trình P0, P1, P2 và loại tài nguyên A, B, C trong đó A hoàn toàn có thể là CPU, B hoàn toàn có thể là máy in và C hoàn toàn có thể là bàn phím. Các chữ số “ 0 ” trong cột bộc lộ sự sẵn có của tài nguyên .

Trường hợp (i): Giả sử nếu chúng ta coi yêu cầu điều kiện là điều kiện “000” có trong P0 và P2, chúng ta nên kiểm tra yêu cầu nào được đáp ứng, các quá trình P0 giải phóng các quá trình sau khi được cấp phát, sau đó các quá trình P2 tiếp theo giải phóng sau khi được cấp phát. Như thế này, theo một trình tự, từng quy trình giải phóng P0, P2, P3, P1, P4 theo một trình tự. Cuối cùng, chúng tôi nhận được các tài nguyên có sẵn như P7, P2, P6. Trình tự khả dụng là điều kiện không có bế tắc.

Ngân hàng-Thuật toán-Ví dụ1ngân hàng-thuật toán-example1

Nhà (ii): Giả sử nếu P2 là 001 thay vì 000, bây giờ hãy áp dụng thuật toán của chủ ngân hàng để kiểm tra điều kiện deadlock, trong đó P0 duy nhất được thực thi trong số tất cả 5 quy trình. Do đó P1, P2, P3, P4 ở trạng thái deadlock ngoại trừ P0.

Ngân hàng-Ví dụ2ngân hàng-example2

Các ứng dụng của Deadlock

Các ứng dụng của bế tắc có thể được giải thích bằng một ví dụ thời gian thực về kết quả kiểm tra trực tuyến, trong đó một số sinh viên cố gắng truy cập trang web của trường đại học của họ đúng thời gian phát hành. Người ta có thể quan sát thấy rằng đôi khi trang web không tải cùng một lúc cho nhiều người dùng, đây là một điều kiện bế tắc. Điều này có thể được khắc phục bằng cách sử dụng bất kỳ thuật toán nào.

Ưu điểm

Ưu điểm của deadlock là

  • Không có pre-emption được quan sát để tránh bế tắc
  • Không chậm trễ trong quá trình

Nhược điểm

Nhược điểm của bế tắc là

  • Nguồn lực được sử dụng phải được biết trước
  • Quá trình bị tắc nghẽn trong một thời gian dài
  • Các khoản lỗ trước khi sử dụng được kế thừa.

Bài viết này tổng quan về cách xảy ra bế tắc khi có hai hoặc nhiều tiến trình và ba điều kiện kèm theo là nguyên do gây ra bế tắc và hai loại thuật toán đơn cử là thuật toán san sẻ tài nguyên phát hiện có sống sót thực trạng bế tắc và thuật toán của chủ ngân hàng nhà nước là thuật toán tránh bế tắc. Đây là câu hỏi “ Điều gì xảy ra nếu bế tắc bị bỏ lỡ ? ” .

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