Algoritmo bancario en OperaSistema de instalación [Ejemplo]
⚡ Resumen inteligente
El algoritmo del banquero es un método para evitar interbloqueos que comprueba si la asignación de recursos mantiene el sistema en un estado seguro. Su nombre proviene del ámbito bancario y solo concede una solicitud si quedan suficientes recursos para satisfacer a todos los procesos.
¿Qué es el algoritmo bancario?
Algoritmo bancario se utiliza principalmente en el sistema bancario para evitar punto muerto. Le ayuda a identificar si se otorgará un préstamo o no.
Este algoritmo se utiliza para probar la simulación segura de la asignación para determinar la cantidad máxima disponible para todos los recursos. También verifica todas las actividades posibles antes de determinar si la asignación debe continuar o no.
Por ejemplo, hay X número de titulares de cuentas en un banco específico, y la cantidad total de dinero en sus cuentas es G.
Cuando el banco procesa un préstamo para automóvil, el sistema de software subtraces el monto del préstamo otorgado para la compra de un automóvil del dinero total (G + depósito a plazo fijo + plan de ingresos mensuales + oro, etc.) que tiene el banco.
El préstamo para el coche solo se concede si el dinero restante supera G, por lo que todos los titulares de la cuenta pueden retirar G en cualquier momento.
Notaciones del algoritmo bancario
Aquí se muestra una notación importante utilizada en el algoritmo del banquero:
- X: Indica el número total de procesos en el sistema.
- Y: Indica el número total de recursos presentes en el sistema.
Disponible
[1:Y] indica cuántas instancias de cada tipo de recurso están disponibles.
Max
[1:X, 1:Y]: Expresa el número máximo de recursos de tipo j que el proceso i puede solicitar.
Asignación
[1:X, 1:Y]: Indica los recursos de tipo j actualmente asignados al proceso i.
¿ Necesita ayuda
Indica cuántos recursos más de cada tipo de proceso necesito aún para completar mi tarea.
Ejemplo de algoritmo bancario
Supongamos que tenemos los siguientes recursos:
- 5 pendrives
- 2 impresoras
- 4 escáneres
- 3 discos duros
Aquí, hemos creado un vector que representa los recursos totales: Disponible = (5, 2, 4, 3).
Supongamos que hay cuatro procesos. Los recursos disponibles ya están asignados según la tabla matricial siguiente.
| Nombre del proceso | Memoria USB | Impresora | Escáners | disco duro |
|---|---|---|---|---|
| P | 2 | 0 | 1 | 1 |
| Q | 0 | 1 | 0 | 0 |
| R | 1 | 0 | 1 | 1 |
| S | 1 | 1 | 0 | 1 |
| Total | 4 | 2 | 2 | 3 |
Aquí, los recursos asignados son la suma de estas columnas:
Asignado = (4, 2, 2, 3).
También creamos una Matriz para mostrar el número de cada recurso requerido para todos los procesos. Esta matriz se llama ¿ Necesita ayuda = (3, 0, 2, 2).
| Nombre del proceso | Memoria USB | Impresora | Escáners | disco duro |
|---|---|---|---|---|
| P | 1 | 1 | 0 | 0 |
| Q | 0 | 1 | 1 | 2 |
| R | 2 | 1 | 0 | 0 |
| S | 0 | 0 | 1 | 0 |
El vector disponible será:
Disponible = Disponible – Asignado
= (5, 2, 4, 3) – (4, 2, 2, 3)
= (1, 0, 2, 0)
Algoritmo de solicitud de recursos
El algoritmo de solicitud de recursos permite representar el comportamiento del sistema cuando un proceso específico realiza una solicitud de recursos.
Vamos a entender esto siguiendo los siguientes pasos:
Paso 1) Cuando el número total de instancias solicitadas de todos los recursos sea menor que el del proceso, pase al paso 2.
Paso 2) Cuando la cantidad solicitada de cada tipo de recurso sea menor que la cantidad disponible de cada tipo, se pasará al siguiente paso. De lo contrario, el proceso deberá esperar debido a la falta de recursos suficientes.
Paso 3) El recurso se asigna como se muestra en el pseudocódigo que aparece a continuación.
Available = Available – Request (y) Allocation(x) = Allocation(x) + Request(x) Need(x) = Need(x) - Request(x)
Este último paso se realiza porque el sistema necesita asumir que los recursos han sido asignados, de modo que haya menos recursos disponibles después de la asignación.
Características del algoritmo bancario
Estas son las características importantes del algoritmo del banquero:
- Mantiene numerosos recursos que satisfacen las necesidades de al menos un cliente.
- Siempre que un proceso obtiene todos sus recursos, necesita devolverlos en un período restringido.
- Cuando un proceso solicita un recurso, es posible que tenga que esperar.
- El sistema cuenta con un número limitado de recursos.
- Ofrece una función avanzada para la máxima asignación de recursos.
Desventaja del algoritmo bancario
Estas son las desventajas/inconvenientes de usar el algoritmo del banquero:
- No permite que el proceso cambie su necesidad máxima mientras se procesa.
- Permite que todas las solicitudes se aprueben en un plazo limitado, pero un año es el período fijo para ello.
- Todos los procesos deben conocer y declarar con antelación sus necesidades máximas de recursos.

