Está en la página 1de 4

Algoritmo del Banquero

Es un acercamiento teórico para evitar los interbloqueos en la planificación de


recursos. Requiere conocer con anticipación los recursos que serán utilizados por
todos los procesos. Esto último generalmente no puede ser satisfecho en la
práctica. Este algoritmo usualmente es explicado usando la analogía con el
funcionamiento de un banco.

• Los clientes representan a los procesos, que tienen un crédito límite


• El dinero representa a los recursos.
• El banquero es el sistema operativo.

. El algoritmo mantiene al sistema en un estado seguro. Un sistema se encuentra en


un estado seguro si existe un orden en que pueden concederse las peticiones de
recursos a todos los procesos, previniendo el interbloqueo. Este funciona
encontrando estados de este tipo. Los procesos piden recursos, y son complacidos
siempre y cuando el sistema se mantenga en un estado seguro después de la
concesión. De lo contrario, el proceso es suspendido hasta que otro proceso libere
recursos suficientes.
Restricciones del Algoritmo del Banquero

• Se debe conocer la máxima demanda de recursos por anticipado.


• Los procesos deben ser independientes, es decir que puedan ser ejecutados en
cualquier orden. Por lo tanto su ejecución no debe estar forzada por condiciones de
sincronización.
• Debe haber un número fijo de recursos a utilizar y un número fijo de procesos.
• Los procesos no pueden finalizar mientras retengan recursos.

Estructuras y Complejidad

Se deben utilizar cuatro estructuras de datos para implementar el algoritmo del


banquero. Estas codifican el estado del sistema de asignación de recursos. Sea n,
el número de procesos del sistema, m el número de tipos de recursos. Se necesita:
• Recursos (Available, disponible):
De esta forma, recursos[i]= k significa que hay una cantidad total k de recursos tipo
disponibles.

• Demanda (Max):
Si Max[i][j]=k, el proceso i, puede solicitar, como máximo k instancias del recurso j.

• Asignación (allocation):
Asignación[i][j] = k significa que el proceso i tiene asignado k unidades del recurso j.

• Necesidad (need):
Una matriz, n x m, que indica la necesidad restante de recursos de cada proceso. Si
Necesidad[i][j] = k, entonces el proceso i puede necesitar k instancias del tipo de
recurso j. Observe que Necesidad[i][j] = Max[i][j] - Asignación[i][j].En términos de
complejidad, el algoritmo del banquero es de orden O(n2× m), donde n es el número
de procesos y m la cantidad de recursos.

Ventajas y Desventajas del Algoritmo del Banquero

Ventajas:
• No es necesario expulsar y hacer retroceder procesos como en la detección del
interbloqueo.
• Es menos restrictivo que la prevención.

Desventajas:
• Se debe conocer la máxima demanda de recursos por anticipado.
• La ejecución de los recursos no debe estar forzada por la sincronización.
• Se tiene un número fijo de procesos y recursos.
• Los procesos no finalizan mientras retengan recursos.
• Requiere que los procesos salden sus préstamos en un tiempo finito.

Interbloqueo

Es cuando un proceso solicita una cantidad de recursos mayor a la que puede


proporcionar el Sistema Operativo en el momento en que es solicitado
Explicación detallada de un jemplo:
Utilizando el algoritmo del banquero resuelva el siguiente problema, indicando el
orden en que los procesos pasan a ser estados seguros evitando el problema del
interbloqueo.

Explicación detallada de un ejemplo


Utilizando el algoritmo de banquero resuelva el siguiente problema, indicando el
orden en que los procesos pasan a ser estados estados seguros evitando el
problema del interbloqueo.

Lista de procesos:

P1 – P3 – P4–P 0 o P2
A la derecha se tienen 5 procesos, cada uno tiene recursos de tipo A, B y C. En la
primera columna de asignados está la cantidad de recursos que el proceso ha
obtenido a lo largo de un tiempo; en la segunda columna de Máximo Necesario,
están los recursos que tiene que obtener de cada tipo para comenzar a ser
ejecutado. Por ejemplo, el P0 no ha obtenido ningún recurso del tipo A, sólo 1 del
tipo B y ninguno del tipo C, y necesita para ejecutarse haber conseguido 7 del A, 5
del B y 3 del C.
En la última columna se tienen los recursos disponibles que da el sistema, los que
se pueden utilizar con todos los procesos. Hay 3 del A, 3 del B y 2 del C.

El algoritmo del banquero trata de asegurar qué proceso tiene un “estado seguro” es
decir, se requiere alcanzar el máximo requerido entre los que estén en Asignados y
los que se encuentren en Disponibles.

Ejemplo:
El proceso 0 no está en estado seguro. Si se suman Asignados + Disponibles para
cada uno de los recursos A, B y C, realmente no se alcanzan los Máximos
Requeridos.Entonces se va al proceso 1 y se trata de hacer lo mismo, sumar
Asignados + Disponibles. Allí sí se tiene un ESTADO SEGURO, A con 5, B con 3 y
C con 2, y como se alcanza a llenar los Máximos, ese proceso se ejecuta.

Una vez que el proceso se ejecutó, entonces se procede a SUMAR los recursos
asignados del proceso anterior a los disponibles. Hay que recordar que el proceso al
terminar de ejecutarse libera todos sus recursos, por lo tanto pasan tanto los de tipo
A, B y C a sumarse con los disponibles 3-3-2 y se tendrán nuevos DISPONIBLES
que repartir, siendo ahora éstos 5-3-2.
Con estos se pasa al proceso P2 y así sucesivamente. Y el algoritmo es como
sigue: (El algoritmo principal es el de asignación de recursos)

También podría gustarte