2. ALGORITMO DEL BANQUERO
El Algoritmo del banquero es una forma de evitar el
interbloqueo, propuesta por primera vez por Edsger
Dijkstra
Analogía: 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.
3. ALGORITMO DEL BANQUERO
El banco confía en que no todos los clientes
necesitaran su crédito máximo otorgado en forma
inmediata, por ello reserva menos unidades
(recursos) de las totales necesarias para dar
servicio a los clientes.
El banco también asume que si un cliente
maximiza su crédito será capaz de terminar sus
negocios y devolver el dinero a la entidad,
permitiendo servir a otros clientes.
4. ALGORITMO DEL BANQUERO
Así, el uso de este tipo de algoritmo permite
impedir el interbloqueo, pero supone una serie de
restricciones:
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.
5. ALGORITMO DEL BANQUERO
Para comprender éste algoritmo es necesario
que tengamos claros los siguientes conceptos:
Estado. Es la asignación actual de los recursos a los
procesos.
Matriz demanda (o máximo necesario). Son las
exigencias máximas de recursos para cada proceso.
Matriz asignación. Son las asignaciones actuales de
recursos para cada proceso.
Vector disponible. Cantidad total de recursos sin
asignar a los procesos.
Estado seguro. Es un estado en el que existe al
menos un orden en el que todos los procesos pueden
ejecutar hasta el final sin generar interbloqueo.
6. ALGORITMO DEL BANQUERO PARA
UN SOLO RECURSO
Tres estados de asignación de recursos:
Tiene Máx. Tiene Máx. Tiene Máx.
A 0 6 A 1 6 A 1 6
B 0 5 B 1 5 B 2 5
C 0 4 C 2 4 C 2 4
D 0 7 D 4 7 D 4 4
Libres: 10 Libres: 2 Libres: 1
a b c
A cada cliente se le ha otorgado cierto numero de unidades
de crédito.
El banquero sabe que no todos los clientes van a necesitar
su crédito máximo de inmediato, así que solo ha reservado
10 unidades para atenderlos, en lugar de 22
7. ALGORITMO DEL BANQUERO PARA
UN SOLO RECURSO
En cierto momento, la situación es la que muestra en
la figura b. el banquero puede aplazar cuales quiera de las
solicitudes, excepto las de C, para así dejar que C termine y
libere sus cuatro unidades. Con cuatro unidades disponibles el
banquero puede otorgar a D o a B las unidades que necesite,
y así de forma sucesiva.
Pero si B solicitara una unidad mas y se le concediera.
Tendríamos la situación de la figura c. Que es insegura. Si
todos los clientes pidieran repetidamente sus préstamos
máximos, el banquero no podría satisfacer uno de ellos y
tendríamos un bloqueo irreversible.
El algoritmo del banquero examina cada solicitud en el
momento en el que se hace y determina si otorgar lo que se le
pide conducirá a un estado seguro o no. Si es así concede la
solicitud; de lo contrario, la pospone.
8. ALGORITMO DEL BANQUERO PARA
VARIOS RECURSOS
Tenemos 2 matrices:
La de la izquierda
indica cuantas
instancias de
cada recurso
están asignadas
en la actualidad a
cada uno de los 5
procesos.
Se indica que: La matriz de la derecha cuantos
los recursos existen, E recursos necesita todavía cada
los recursos poseídos, P proceso para terminar.
los recursos disponibles, A
9. ALGORITMO DEL BANQUERO PARA
VARIOS RECURSOS
Aquí, los procesos deben plantear sus necesidades de recursos
totales antes de ejecutarse, para que el sistema pueda calcular
la matriz de la derecha en cada momento.
El vector E nos indica que el sistema tiene seis unidades de
cinta, tres graficadores, cuatro impresoras, y dos unidades de
Cd-ROM. De estos recursos, 5 unidades de cinta, 3
graficadores, 2 impresoras y 2 de Cd-ROM están asignados
actualmente. Estos pueden verse sumando las 4 columnas de
recursos de las matrices de la izquierda. El vector de los
recursos disponibles no es más que la diferencia entre lo que el
sistema tiene y lo que se está usando en el momento.
El estado actual es seguro.
10. ALGORITMO DEL BANQUERO PARA
VARIOS RECURSOS
Ahora supongamos que el proceso B solicita una
impresora. Esta solicitud puede concederse porque el
estado resultante sigue siendo seguro (el proceso de D
puede terminar, y luego el proceso A o el E, seguidos
del resto).
Ahora imaginemos que después de entregar al B uno
de las dos impresoras restantes, E quiere la última
impresora; satisfacer esa solicitud reducirá el vector de
recursos disponibles a (1000), y eso conduciría a un
bloqueo irreversible. Es evidente que la solicitud de E
debe aplazarse por el momento.
11. DEBILIDADES DEL ALGORITMO DEL
BANQUERO
Requiere que exista un número fijo de recursos asignables, pero
generalmente no se puede contar con que el número de recursos se
mantenga siempre constante.
Requiere que la población de usuarios se mantenga constante, lo
cual es irrazonable.
Requiere que el S. O. garantice que todas las peticiones serán
concedidas en un tiempo finito, pero en la realidad se requieren
mayores garantías.
Requiere que los procesos reintegren los recursos en un tiempo
finito, pero en la realidad se requieren mayores garantías.
Requiere que los procesos indiquen sus necesidades máximas de
recursos por adelantado, lo cual generalmente no ocurre.
Generalmente no es utilizado en S. O. reales.