Está en la página 1de 13

Algoritmos

Bladimir Daz
Algoritmo del banquero
Es una forma de evitar el interbloqueo,
propuesta por primera vez por Edsger Dijkstra
Requiere conocer con anticipacin los
recursos que sern utilizados por todos los
procesos
Fue un cientfico de la computacin de
los Pases Bajos.
11 de mayo de 1930- 2002
El problema del camino ms corto,
tambin conocido como el algoritmo
de Dijkstra, la notacin polaca inversa
y el relacionado algoritmo shunting
yard, THE multiprogramming system,
el algoritmo del banquero
Analoga
Clientes representan los procesos
(con limite de crdito)
Los recursos
El banquero representa el sistema
Vectores
R1 R2 R3 R4
Recursos 2 4 1 4
Disponible 0 1 0 1
Terminado
NO
No
NO
NO
No
RECURSOS existentes: vector con el numero de instancias de cada
tipo de recurso
recursos DISPONIBLES : vector de recursos disponible en un
momento dado, al inicio cuando no hay procesos corriendo, el V.
Recursos existentes es igual a V. Recursos disponible.
procesos TERMINADOS : vector que indica si el proceso ya ha
terminado su ejecucin
Matrices
Max R1 R2 R3 R4
P1 1 1 0 1
P2 0 1 0 0
P3 2 0 0 1
P4 1 2 1 0
P5 0 0 0 2
Utilizados R1 R2 R3 R4
P1 1 1 0 1
P2 0 1 0 0
P3 2 0 0 1
P4 1 2 1 0
P5 0 0 0 2
Necesario R1 R2 R3 R4
P1 1 1 0 0
P2 0 0 0 1
P3 0 0 0 1
P4 1 0 0 0
P5 0 0 0 1
MAXimo a utilizar : matriz del mximo de cada
tipo de recurso que un proceso pueda llegar a
utilizar.
recursos UTILIZADOS : matriz que indica la
cantidad de recursos que un proceso est
utilizando.
recursos NECESARIOS : matriz que indica la
cantidad de recursos que un proceso puede
llegar a necesitar en cierto tiempo para poder
terminar su ejecucin.
Algoritmo
1. Establecemos los valores para el V.Recursos Disponible y establecemos
para todos los valores del V.Procesos Terminado con el valor "NO.
2. Buscamos un PROCESO que :
1. Su valor en el V.Recursos Terminado sea "NO
2. Que el V.Recursos Necesarios de un proceso(i), sea menor que el V.Recursos
Disponibles.
Si no se encuentra algun proceso que cumpla con las condiciones anteriores,
vaya al paso 5
3. Sumamos al V.Recursos Disponibles el V.Recursos Utilizados para el
proceso(i) que identificamos en el paso 2.
4. Establecemos en el V.Procesos Terminados para el proceso(i) que
identificamos en el paso 2, con el valor "SI".
5. Si y solo si no existe un valor en "NO" en cualquier casilla de V.Procesos
Terminados, significa que el sistema esta en un ESTADO SEGURO
Paso 1
Al momento de iniciar con el algoritmo, tenemos los siguiente casos,
El proceso P1 es posible que vaya a utilizar mas recursos, de los que se indican en el
V.Recursos Disponible
El V.Recursos Necesarios para el proceso(P2) es menor que el V.Recursos Disponible, por
lo cual es posible que el P2 termine
Agregamos los recurso que el P2 tenia UTILIZADOS(resaltado en rojo) y los
agregamos al V.Recursos Disponibles
Establecemos en el V.Procesos Terminado que el P2, SI termina.
El proceso P1 es posible que vaya a utilizar mas recursos, de los que se indican en
el V.Recursos Disponible .
El V.Recursos Necesarios para el proceso(P3) es menor que el V.Recursos
Disponible, por lo cual es posible que el P3 termine.
Agregamos los recurso que el P3 tenia UTILIZADOS y los agregamos
al V.Recursos Disponibles
Establecemos en el V.Procesos Terminado que el P3, SI termina.
El V.Recursos Necesarios para el proceso(P1) ahora ya es menor que el
V.Recursos Disponible, por lo cual es posible que el P1 termine.
Agregamos los recurso que el P1 tenia UTILIZADOS y los agregamos
al V.Recursos Disponibles
Establecemos en el V.Procesos Terminado que el P1, SI termina.
El V.Recursos Necesarios para el proceso(P4) ahora ya es menor que el
V.Recursos Disponible, por lo cual es posible que el P4 termine.
Agregamos los recurso que el P4 tenia UTILIZADOS y los agregamos
al V.Recursos Disponibles
Establecemos en el V.Procesos Terminado que el P4, SI termina.
El V.Recursos Necesarios para el proceso(P5) ahora ya es menor que
el V.Recursos Disponible, por lo cual es posible que el P5 termine.
Agregamos los recurso que el P5 tenia UTILIZADOS(resaltado en rojo)
y los agregamos al V.Recursos Disponibles
Establecemos en el V.Procesos Terminado que el P5, SI termina.
Ahora si volvemos a realizar el algoritmo, podremos darnos cuenta que ya no
quedan procesos o que NO estn terminados y que necesiten menos recurso de
lo que indica el V.Recursos Disponibles, por lo que hacemos el PASO 5.

PASO 5: ya que en el V.Procesos Terminados no hay ninguna casilla con el valor
de NO. Concluimos que -- El sistema esta en un ESTADO SEGURO --