El algoritmo banquero asigna recursos a los procesos de manera que se ejecuten sin bloquearse. Para ello, se debe conocer la cantidad máxima de recursos que cada proceso necesita. En el ejemplo, 3 procesos requieren un total de 8 recursos disponibles para completar su ejecución sin interbloqueos.
1. El algoritmo banquero hace lo posible para que los procesos se lleven a cabo y no
se bloqueen. Para aplicarse este algoritmo de manera correcta, se debe tener un
número máximo de recursos que se puedan asignar a un proceso para satisfacer
su necesidad y que este se ejecute. En este caso se necesitaría un máximo de 3
recursos disponibles ya que, proceso 1 se ejecutaría al sumar esta cantidad de
recursos disponibles con el asignado, luego se liberarían 4 recursos. Después al
tener 4 recursos disponibles se sumarian 2 recursos al proceso 2 para completar
su necesidad máxima, resultando así la liberación de 4 recursos más, dando un
total de 8 recursos disponibles y para finalizar, se tomarían 3 recursos
disponibles para el ultimo proceso y así cubrir su necesidad máxima y ejecutarse.
Como ejemplo de inanición con interbloqueo tenemos un proceso A que pide
impresión,luego un Proceso B pide cinta, cada proceso ocupa su recurso y cuando
el proceso A pide cinta no la obtiene porque El proceso B está esperando que el
proceso A libere el recurso de impresión, entonces se produce un bloqueo infinito.
Ejemplo de inanición sin interbloqueo tenemos un semáforo binario, éste solo se
explica con los valores 0 y 1. Para el paso de los procesos se utiliza el semáforo
y en el caso de la inanición, el semáforo omitirá el proceso afectado dándole el
paso a los demás procesos con mayor prioridad.
2. Los procesos 1, 2 y 4 obtienen las unidades que necesitan para
ejecutarse de sus respectivos recursos, pero el proceso 3 no
obtiene las unidades necesarias ya que el recurso no las posee
completas.
La cantidad máxima de procesos que puede existir para que no haya interbloqueo
es de 3, ya que cada proceso utiliza 2 recursos, 1 de cada tipo, entonces al
tener 3 procesos se utilizan 6 recursos que son los disponibles, si colocamos 1
proceso más, se necesitarían recursos de otro proceso y se obtendría un bloqueo.