You are on page 1of 4

Algoritmo del Banquero

El Algoritmo del banquero, en sistemas operativos es una forma de evitar el interbloqueo,


propuesta por primera vez por Edsger Dijkstra. 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, y el dinero representa a los
recursos. El banquero es el sistema operativo.

El banco confía en que no tendrá que permitir a todos sus clientes la utilización de todo su crédito
a la vez. 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.

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. El algoritmo del banquero 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.

En términos más formales, un sistema se encuentra en un estado seguro si existe una secuencia
segura. Una secuencia segura es una sucesión de procesos, < P1,..., Pn > , donde para un proceso
Pi, el pedido de recursos puede ser satisfecho con los recursos disponibles sumados los recursos
que están siendo utilizados por Pj, donde j < i. Si no hay suficientes recursos para el proceso Pi,
debe esperar hasta que algún proceso Pj termine su ejecución y libere sus recursos. Recién
entonces podrá Pi tomar los recursos necesarios, utilizarlos y terminar su ejecución. Al suceder
esto, el proceso Pi+1 puede tomar los recursos que necesite, y así sucesivamente. Si una secuencia
de este tipo no existe, el sistema se dice que está en un estado inseguro, aunque esto no implica
que esté bloqueado.

Ventajas
• No es necesario expulsar y hacer retroceder procesos como en la detección del
interbloqueo.
• Es menos restrictivo que la prevención.
Debilidades
• 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.

El Algoritmo del Banquero para un solo recurso


Un estado inseguro no tiene que llevar a un bloqueo.

El algoritmo del banquero para un solo recurso consiste en:

 Estudiar cada solicitud al ocurrir ésta.


 Ver si su otorgamiento conduce a un estado seguro:
o En caso positivo, se otorga la solicitud.
o En caso negativo, se la pospone.
 Para ver si un estado es seguro:
o Verifica si tiene los recursos suficientes para satisfacer a otro cliente:
 En caso afirmativo, se supone que los préstamos se pagarán.
 Se verifica al siguiente cliente cercano al límite y así sucesivamente.
o Si en cierto momento se vuelven a pagar todos los créditos, el estado es seguro y
la solicitud original debe ser aprobada.

El Algoritmo del Banquero para varios recursos

Acá también los procesos deben establecer sus necesidades totales de recursos antes de su
ejecución y dada una matriz de recursos asignados, el S. O. debe poder calcular en
cualquier momento la matriz de recursos necesarios, tal como se ilustra en la siguiente
imagen:
Se dispone de:

 “E”: vector de recursos existentes.


 “P”: vector de recursos poseídos.
 “A”: vector de recursos disponibles.

El algoritmo para determinar si un estado es seguro es el siguiente:

1. Se busca un renglón “R” cuyas necesidades de recursos no satisfechas sean menores o


iguales que “A”:
o Si no existe tal renglón, el sistema se bloqueará en algún momento y ningún
proceso podrá concluirse.
2. Supongamos que el proceso del renglón elegido solicita todos los recursos que necesita y
concluye:
o Se señala el proceso como concluido y se añaden sus recursos al vector “A”.
3. Se repiten los pasos 1 y 2:
o Hasta que todos los procesos queden señalados como concluidos, en cuyo caso, el
estado inicial era seguro, o
o Hasta que ocurra un bloqueo, en cuyo caso, no lo era.

Asignación de Recursos por el Algoritmo del Banquero

Se permiten las condiciones de “exclusión mutua”, “espera por” y “no apropiatividad”.

Los procesos reclaman uso exclusivo de los recursos que requieren.

Los procesos mantienen los recursos mientras piden y esperan por otros recursos adicionales,
pero no pueden apropiarse de un proceso que mantenga esos recursos.

Las peticiones son de un recurso a la vez.

El S. O. puede conceder o negar cada una de las peticiones; si se niega una petición:
 El proceso retiene los recursos que ya tiene asignados.
 Espera un tiempo finito hasta que le sea atendida la petición.

El S. O. concede peticiones que den como resultado solo estados seguros.

Dado que el sistema se mantiene siempre en estado seguro, todas las peticiones serán atendidas
en un tiempo finito.

Infografia
http://es.wikipedia.org/wiki/Algoritmo_del_banquero

http://sistemas-operativos.blogspot.com/2006/05/algoritmo-del-banquero.html

http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO6.htm

You might also like