Thuật toán ngân hàng trong OperaHệ thống ting [Ví dụ]
⚡ Tóm tắt thông minh
Thuật toán Banker là một phương pháp tránh tắc nghẽn, kiểm tra xem việc phân bổ tài nguyên có giữ cho hệ thống ở trạng thái an toàn hay không. Được đặt tên theo ngành ngân hàng, thuật toán này chỉ chấp thuận yêu cầu nếu còn đủ tài nguyên để đáp ứng mọi tiến trình.

Thuật toán của Banker là gì?
Thuật toán ngân hàng được sử dụng rộng rãi 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.
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 khách hàng/người dùng tại một ngân hàng cụ thể, và tổng số tiền trong các tài khoản của họ là G.
Khi ngân hàng xử lý khoản vay mua xe, hệ thống phần mềm sẽ thực hiện các thao tác phụ.tracĐó là số tiền vay được cấp để mua xe 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ó.
Khoản vay mua xe chỉ được cấp nếu số tiền còn lại vẫn vượt quá G, vì vậy tất cả chủ tài khoản đều có thể rút G bất cứ lúc nào.
Ký hiệu thuật toán của ngân hàng
Dưới đây là một số ký hiệu quan trọng được sử dụng trong thuật toán của người quản lý ngân hàng:
- X: Biểu thị tổng số tiến trình trong hệ thống.
- Y: Cho biết tổng số tài nguyên có trong hệ thống.
Có Sẵn
[1:Y] cho biết có bao nhiêu phiên bản của mỗi loại tài nguyên hiện có.
Max
[1:X, 1:Y]: Biểu thị số lượng tối đa các tài nguyên loại j mà tiến trình i có thể yêu cầu.
Phân bổ
[1:X, 1:Y]: Cho biết các tài nguyên thuộc loại j hiện đang được phân bổ cho tiến trình i.
Cần
Thể hiện số lượng tài nguyên thuộc mỗi loại mà tiến trình i còn cần để hoàn thành nhiệm vụ của nó.
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 ổ 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 cộng | 4 | 2 | 2 | 3 |
Ở đây, nguồn lực được phân bổ là tổng của các cột này:
Đã 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ơ khả dụng sẽ là:
Khả dụng = Khả dụng – Đã 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 mô tả hành vi của hệ thống khi một tiến trình cụ thể thực hiện yêu cầu tài nguyên.
Chúng ta hãy cùng hiểu điều này qua các bước sau:
Bước 1) Khi tổng số lượng yêu cầu đối với tất cả các tài nguyên ít hơn số lượng tiến trình hiện có, hãy chuyển sang bước 2.
Bước 2) Khi số lượng yêu cầu đối với từng loại tài nguyên ít hơn so với số lượng tài nguyên hiện có của mỗi loại, quy trình sẽ được chuyển sang bước tiếp theo. Ngược lại, quy trình sẽ 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 đoạn 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 nguồn lực đã được phân bổ, do đó sẽ có ít nguồn lực 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:
- Lưu trữ nhiều nguồn 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 tài nguyên, nó có thể cần phải chờ.
- Hệ thống này có nguồn lực hạn chế.
- Nó cung cấp một tính năng tiên tiến để phân bổ tài nguyên tối ưu.
Nhược điểm của thuật toán Banker
Dưới đây là những nhược điểm/hạn chế của việc sử dụng thuật toán của người quản lý ngân hàng:
- Nó không cho phép quá trình thay đổi nhu cầu tối đa trong khi đang xử lý.
- Nó cho phép tất cả các yêu cầu được chấp thuận trong một khoảng thời gian nhất định, nhưng một năm là khoảng thời gian cố định đó.
- 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.
