Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estructuras y Complejidad
• 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:
• 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
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)