Está en la página 1de 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 terico para evitar los
interbloqueos en la planificacin de recursos. Requiere conocer con anticipacin los recursos que
sern utilizados por todos los procesos. Esto ltimo generalmente no puede ser satisfecho en la
prctica.
Este algoritmo usualmente es explicado usando la analoga con el funcionamiento de un banco.
Los clientes representan a los procesos, que tienen un crdito lmite, y el dinero representa a los
recursos. El banquero es el sistema operativo.
El banco confa en que no tendr que permitir a todos sus clientes la utilizacin de todo su crdito
a la vez. El banco tambin asume que si un cliente maximiza su crdito 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 despus de la concesin. De lo contrario, el proceso es suspendido hasta que otro
proceso libere recursos suficientes.
En trminos ms formales, un sistema se encuentra en un estado seguro si existe una secuencia
segura. Una secuencia segura es una sucesin de procesos, < P1,..., Pn > , donde para un proceso
Pi, el pedido de recursos puede ser satisfecho con los recursos disponibles sumados los recursos
que estn siendo utilizados por Pj, donde j < i. Si no hay suficientes recursos para el proceso Pi,
debe esperar hasta que algn proceso Pj termine su ejecucin y libere sus recursos. Recin
entonces podr Pi tomar los recursos necesarios, utilizarlos y terminar su ejecucin. 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 deteccin del
interbloqueo.
Es menos restrictivo que la prevencin.

Debilidades
Requiere que exista un nmero fijo de recursos asignables, pero generalmente no se puede
contar con que el nmero de recursos se mantenga siempre constante.
Requiere que la poblacin de usuarios se mantenga constante, lo cual es irrazonable.
Requiere que el S. O. garantice que todas las peticiones sern concedidas en un tiempo
finito, pero en la realidad se requieren mayores garantas.
Requiere que los procesos reintegren los recursos en un tiempo finito, pero en la realidad se
requieren mayores garantas.
Requiere que los procesos indiquen sus necesidades mximas 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:
y Estudiar cada solicitud al ocurrir sta.
y Ver si su otorgamiento conduce a un estado seguro:
o En caso positivo, se otorga la solicitud.
o En caso negativo, se la pospone.
y 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 prstamos se pagarn.
Se verifica al siguiente cliente cercano al lmite y as sucesivamente.
o Si en cierto momento se vuelven a pagar todos los crditos, el estado es seguro y
la solicitud original debe ser aprobada.
El Algoritmo del Banquero para varios recursos
Ac tambin los procesos deben establecer sus necesidades totales de recursos antes de su
ejecucin 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:
y E: vector de recursos existentes.
y P: vector de recursos posedos.
y A: vector de recursos disponibles.
El algoritmo para determinar si un estado es seguro es el siguiente:
1. Se busca un rengln R cuyas necesidades de recursos no satisfechas sean menores o
iguales que A:
o Si no existe tal rengln, el sistema se bloquear en algn momento y ningn
proceso podr concluirse.
2. Supongamos que el proceso del rengln elegido solicita todos los recursos que necesita y
concluye:
o Se seala el proceso como concluido y se aaden sus recursos al vector A.
3. Se repiten los pasos 1 y 2:
o Hasta que todos los procesos queden sealados como concluidos, en cuyo caso, el
estado inicial era seguro, o
o Hasta que ocurra un bloqueo, en cuyo caso, no lo era.
Asignacin de Recursos por el Algoritmo del Banquero
Se permiten las condiciones de exclusin 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 peticin:
y El proceso retiene los recursos que ya tiene asignados.
y Espera un tiempo finito hasta que le sea atendida la peticin.
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 sern 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

También podría gustarte