Thuật toán của Banker trong Hệ điều hành (Ví dụ)

Mục lục:

Anonim

Thuật toán của Banker là gì?

Thuật toán của Banker được sử dụng chủ yếu trong hệ thống ngân hàng để tránh bế tắc. Nó giúp bạn xác định liệu một khoản vay sẽ được cho hay không.

Thuật toán này được sử dụng để kiểm tra việc mô phỏng phân bổ một cách an toàn để xác định số lượng tối đa có sẵn cho tất cả các tài nguyên. Nó cũng kiểm tra tất cả các hoạt động có thể xảy ra trước khi xác định xem có nên tiếp tục phân bổ hay không.

Ví dụ, có X số chủ tài khoản của một ngân hàng cụ thể và tổng số tiền trong tài khoản của họ là G.

Khi ngân hàng xử lý khoản vay mua ô tô, hệ thống phần mềm sẽ trừ số tiền cho vay mua ô tô ra khỏi tổng số tiền (G + Khoản tiền gửi cố định + Chế độ thu nhập hàng tháng + Vàng, v.v.) mà ngân hàng có.

Nó cũng kiểm tra xem sự chênh lệch có nhiều hơn G. Nó chỉ xử lý khoản vay mua xe khi ngân hàng có đủ tiền ngay cả khi tất cả các chủ tài khoản rút tiền G.

Trong hướng dẫn về hệ điều hành này, bạn sẽ học:

  • Thuật toán của Banker là gì?
  • Ký hiệu thuật toán của Banker
  • Ví dụ về thuật toán của Banker
  • Đặc điểm của thuật toán Banker
  • Nhược điểm của thuật toán Banker

Ký hiệu thuật toán của Banker

Đây là một ký hiệu quan trọng được sử dụng trong thuật toán của Banker:

  • X: Cho biết tổng số tiến trình của hệ thống.
  • Y: Cho biết tổng số tài nguyên hiện có trong hệ thống.

Có sẵn

[I: Y] cho biết tài nguyên nào có sẵn.

Max

[l: X, l: Y]: Biểu thức số lượng tài nguyên tối đa của loại j hoặc quy trình i

Phân bổ

[l: X, l: Y]. Cho biết quá trình bạn đã nhận được tài nguyên loại j

Nhu cầu

Thể hiện có bao nhiêu tài nguyên khác có thể được phân bổ trong tương lai

Ví dụ về thuật toán của Banker

Giả sử rằng chúng ta có các tài nguyên sau:

  • 5 ổ bút
  • 2 máy in
  • 4 máy quét
  • 3 đĩa cứng

Ở đây, chúng tôi đã tạo một vectơ đại diện cho tổng tài nguyên: Có sẵn = (5, 2, 4, 3).

Giả sử có bốn quá trình. Các tài nguyên có sẵn đã được phân bổ theo bảng ma trận bên dưới.

Tên quy trình Cây viết mực Máy in Máy quét Ổ đĩa cứng
P 2 0 1 1
Q 0 1 0 0
R 1 0 1 1
S 1 1 0 1
Toàn bộ 4 2 2 3

Ở đây, tài nguyên được phân bổ là tổng số các cột sau:

Đã phân bổ = (4, 2, 2, 3).

Chúng tôi cũng tạo Ma trận để hiển thị số lượng từng tài nguyên cần thiết cho tất cả các quy trình. Ma trận này được gọi là Need = (3,0,2,2)

Tên quy trình Cây viết mực Máy in Máy quét Ổ đĩa cứng
P 1 1 0 0
Q 0 1 1 2
R 2 1 0 0
S 0 0 1 0

Vectơ có sẵn sẽ là:

Có sẵn = Có sẵn- Phân bổ

= (5, 2, 4, 3) - (4, 2, 2, 3)

= (1, 0, 2, 0)

Thuật toán yêu cầu tài nguyên

Thuật toán yêu cầu tài nguyên cho phép bạn biểu diễn hành vi của hệ thống khi một quy trình cụ thể đưa ra yêu cầu tài nguyên.

Hãy hiểu điều này theo các bước sau:

Bước 1) Khi tổng số tài nguyên được yêu cầu ít hơn quy trình, hãy chuyển sang bước 2.

Bước 2) Khi một phiên bản được yêu cầu của mỗi và mọi loại tài nguyên ít hơn so với các tài nguyên có sẵn của mỗi loại, nó sẽ được xử lý sang bước tiếp theo. Nếu không, quá trình yêu cầu phải đợi vì không có đủ tài nguyên.

Bước 3) Tài nguyên được cấp phát như được hiển thị trong Mã giả dưới đây.

Available = Available - Request (y)Allocation(x) = Allocation(x) + Request(x)Need(x) = Need(x) - Request(x)

Bước cuối cùng này được thực hiện bởi vì hệ thống cần phải giả định rằng các tài nguyên đã được cấp phát. Do đó sẽ có ít tài nguyên hơn sau khi phân bổ.

Đặc điểm của thuật toán Banker

Dưới đây là các đặc điểm quan trọng của thuật toán của ngân hàng:

  • Giữ nhiều tài nguyên đáp ứng yêu cầu của ít nhất một khách hàng
  • Bất cứ khi nào một quá trình nhận được tất cả các tài nguyên của nó, nó cần phải trả lại chúng trong một khoảng thời gian hạn chế.
  • Khi một quá trình yêu cầu một tài nguyên, nó cần phải đợi
  • Hệ thống có một số tài nguyên hạn chế
  • Tính năng nâng cao để phân bổ tài nguyên tối đa

Nhược điểm của thuật toán Banker

Đây là nhược điểm / hạn chế của việc sử dụng thuật toán của ngân hàng

  • Không cho phép quá trình thay đổi Nhu cầu tối đa của nó trong khi xử lý
  • Nó cho phép tất cả các yêu cầu được cấp trong thời gian hạn chế, nhưng một năm là khoảng thời gian cố định cho điều đó.
  • Tất cả các quy trình phải biết và nêu trước nhu cầu tài nguyên tối đa của chúng.

Tóm lược:

  • Thuật toán của Banker được sử dụng chủ yếu trong hệ thống ngân hàng để tránh bế tắc. Nó giúp bạn xác định liệu một khoản vay sẽ được cho hay không.
  • Các ký hiệu được sử dụng trong thuật toán của ngân hàng là 1) Có sẵn 2) Tối đa 3) Phân bổ 4) Cần
  • Thuật toán yêu cầu tài nguyên cho phép bạn biểu diễn hành vi của hệ thống khi một quy trình cụ thể đưa ra yêu cầu tài nguyên.
  • Thuật toán của Banker giữ nhiều tài nguyên đáp ứng yêu cầu của ít nhất một khách hàng
  • Hạn chế lớn nhất của thuật toán của ngân hàng này là nó không cho phép quy trình thay đổi nhu cầu tối đa của nó trong khi xử lý.