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.

  • 🏦 Propósito: Evita los bloqueos al comprobar que la asignación de recursos deja el sistema seguro.
  • 🔢 Cuatro matrices: Disponible, Máximo, Asignación y Necesidad tracUso de recursos k.
  • 🧮 Estado seguro: Una solicitud solo se concede si todos los procesos pueden finalizar.
  • 📋 Requisito: Cada proceso debe declarar con antelación sus necesidades máximas de recursos.
  • Beneficio: Garantiza que los recursos satisfagan al menos a un cliente en todo momento.
  • ⚠️ Retirarse: Los procesos no pueden cambiar su necesidad máxima mientras se están ejecutando.

Algoritmo del banquero en Operating sistema

¿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.

Preguntas Frecuentes

Un estado seguro es aquel en el que al menos un orden de ejecución permite que cada proceso obtenga el máximo de recursos y finalice. Si no existe tal orden, el estado es inseguro y puede provocar un interbloqueo.

La prevención de interbloqueos elimina de antemano una de las condiciones necesarias para que se produzca un interbloqueo. La evitación de interbloqueos, como el algoritmo del banquero, permite esas condiciones, pero verifica cada solicitud para mantener la seguridad del sistema.

Su nombre se inspira en la forma en que un banco gestiona los préstamos. Un banco solo presta dinero si puede satisfacer las necesidades de todos sus clientes. De manera similar, el algoritmo asigna recursos solo si todos los procesos pueden completarse de forma segura.

La IA puede predecir la demanda de recursos y detectar patrones de asignación riesgosos antes de que provoquen bloqueos. Puede sugerir qué solicitudes retrasar, complementando el algoritmo del banquero en sistemas complejos donde las necesidades máximas son difíciles de predecir.

No del todo. El algoritmo del banquero garantiza un resultado seguro cuando se conocen las necesidades máximas. La IA puede mejorar la predicción y la eficiencia, pero funciona mejor en conjunto con ellas, no como un reemplazo total.

Resumir este post con: