Thuật toán ngân hàng trong OperaHệ thống ting [Ví dụ]
Thuật toán của Banker là gì?
Thuật toán ngân hàng đượ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 khoản vay có được cấp hay không.
Thuật toán này được sử dụng để kiểm tra khả năng mô phỏng phân bổ một cách an toàn nhằm 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ý một khoản vay mua ô tô, hệ thống phần mềm sẽ trừ đi số tiền được cấp để mua ô tô từ tổng số tiền ( G+ Tiền gửi cố định + Chương trình 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ó lớn hơn G hay không. Nó chỉ xử lý khoản vay mua ô tô khi ngân hàng có đủ tiền ngay cả khi tất cả chủ tài khoản rút tiền G cùng một lúc.
Ký hiệu thuật toán của ngân hàng
Đây là một ký hiệu quan trọng được sử dụng trong thuật toán 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 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ị số lượng tài nguyên tối đa của loại j hoặc tiến 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 ở đâu
Cần
Thể hiện số lượng tài nguyên có thể được phân bổ thêm trong tương lai
Ví dụ về thuật toán Banker
Giả sử chúng ta có các nguồn lực sau:
- 5 ổ bút
- 2 máy in
- 4 máy quét
- 3 đĩa cứng
Ở đây, chúng ta đã tạo một vectơ biểu thị 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 sẵn có đã được phân bổ theo bảng ma trận bên dưới.
Tên Process | 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 |
Tổng số: | 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à Cần=(3,0,2,2)
Tên Process | 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 thể hiệ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 cùng tìm hiểu điều này theo các bước sau:
Bước 1) Khi tổng số phiên bản được yêu cầu của tất cả các tài nguyên nhỏ hơn quy trình, hãy chuyển sang bước 2.
Bước 2) Khi một trường hợp được yêu cầu của từng loại tài nguyên ít hơn so với các tài nguyên khả dụng của từng loại, nó sẽ được xử lý đến bước tiếp theo. Nếu không, quá trình này cần phải chờ do không có đủ tài nguyên.
Bước 3) Tài nguyên được phân bổ như thể hiện 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 vì hệ thống cần giả định rằng các tài nguyên đã được phân bổ. Vì vậy 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à những đặc điểm quan trọng của thuật toán 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 tiến trình nhận được tất 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 giới hạn.
- Khi một tiến trình yêu cầu một tài nguyên, nó cần đợi
- Hệ thống có số lượng tài nguyên hạn chế
- Tính năng nâng cao để phân bổ nguồn lực tối đa
Nhược điểm của thuật toán Banker
Dưới đây là những nhược điểm/nhược điểm của việc sử dụng thuật toán của ngân hàng
- Không cho phép quy trình thay đổi Nhu cầu tối đa trong khi xử lý
- Nó cho phép tất cả các yêu cầu được thực hiện trong thời gian giới hạn, nhưng một năm là khoảng thời gian cố định cho việc đó.
- 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ổng kết
- Thuật toán 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 có được cấp khoản vay 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) Nhu cầu
- Thuật toán yêu cầu tài nguyên cho phép bạn thể hiệ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 thỏa mãn 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 là nó không cho phép quy trình thay đổi Nhu cầu tối đa trong khi xử lý.