Interbloqueo

Anuncio
INTERBLOQUEO.
1. Definición. Introducción.
Situación donde un grupo de procesos están permanentemente bloqueados como consecuencia de que cada
proceso ha adquirido un subconjunto de los recursos que necesita para su operación y esta esperando la
liberación de los restantes recursos mantenidos por otros proceso del mismo grupo haciendo así imposible que
ninguno de los procesos pueda continuar.
2. Clasificación de los recursos.
Normalmente los interbloqueos se darán sobre dos tipos de recursos:
2.1. Recursos reutilizables.
Pueden ser utilizados solo por un proceso a la vez. Se le conceden al proceso que lo solicita y cuando son
liberados voluntariamente por ese proceso se asignan a otro proceso solicitante. Ej. Impresora.
2.2. Recursos consumibles:
Son producidos y consumidos por procesos activos de tal manera que su numero variará con el tiempo. Ej.
Mensajes.
3. Condiciones para que se de el interbloqueo.
Para hablar de interbloqueo se tienen que dar 4 condiciones:
− Exclusión mutua.
− Retener y esperar. Cada proceso mantiene los recursos que ya le han sido asignados a la vez que espera a
adquirir los demás. (tenemos un tenedor y si necesitamos otro, no soltamos el primero hasta que no obtenemos
el 2º).
− No expropiación. Significa que un recurso solo puede ser liberado de forma voluntaria por el proceso al que
se le ha concedido su uso.
− Espera circular. Los procesos interbloqueados forman una cadena circular, de modo que cada proceso
mantiene uno o mas de los recursos que son solicitados por el siguiente proceso de la cadena.
Si solo hay una instancia de cada recurso, la existencia de un ciclo es condición necesaria y suficiente para
que haya interbloqueo.
Si tengo varias instancias de un mismo recurso, la existencia de un ciclo es condición necesaria pero no
suficiente. La otra condición necesaria es un nudo, que es un ciclo en el cual, de ninguno de los nodos que lo
forman sale un camino que no sea ciclo.
4. Soluciones que se plantean para el problema del interbloqueo.
4.1. Primer tipo.
1
Pretende Que no se llegue nunca al interbloqueo.
4.1.1. Prevención del interbloqueo.
Busca garantizar que no se produce alguna de las 4 condiciones del interbloqueo.
− E. Mutua.
− Retención y espera.
− Antes de empezar, P solicita todo lo que necesita. Si se le puede dar, pues se ejecuta, sino, no. El problema
es que hay procesos que a priori no saben lo que necesitan.
− Un proceso cuando solicita un nuevo recurso, libera los que ya tiene. Si el nuevo recurso se le puede dar, se
le devuelven los que ya tenia, sino, no se le da ninguno. El problema es que hay recursos que no son
fácilmente expropiables. (actualización de una base de datos)
− No expropiación. El sistema puede expropiar la asignación de un recurso a un proceso. Problema: Hay
recursos que no son fácilmente expropiables.
− Espera circular: Los recursos se clasifican por categorías y los procesos solo pueden solicitar los recursos en
orden creciente, además todos los recursos de una categoría deben ser solicitados a la vez. Una vez que un
proceso ha solicitado un recurso de una categoría, no puede solicitar otro de una categoría inferior.
4.1.2. Evitación del interbloqueo.
Se conceden solamente aquellas peticiones de recursos que no lleven al sistema a un estado de interbloqueo.
Para determinar si un estado es seguro o no usaremos el algoritmo del banquero.
* Estado seguro: si todos los procesos que ya tienen concedidos los recursos tienen la posibilidad de ser
completados en algún orden determinado, incluso si cada uno de esos procesos utilizara todos los recursos a
los que esta autorizado.
* Estado no seguro. No implica la existencia de interbloqueo. Indica que se podría dar alguna secuencia de
solicitudes que llevara al sistema a un estado de interbloqueo.
4.2. Segundo tipo.
No hacen nada en un principio, pero cuando se produce el interbloqueo lo solventan.
4.2.1. Detección del interbloqueo.
Necesitamos saber qué recursos están asignados y también necesitamos mantener información sobre todas las
solicitudes. Hay una serie de algoritmos para la detección de interbloqueos:
− Primer tipo: se basa en la detección de ciclos o nudos en el grafo.
− Segundo tipo. Usará una matriz de asignados, un vector disponibles y una matriz de solicitudes.
4.2.2. Recuperación del interbloqueo:
Para recuperar un sistema interbloqueado necesitamos conocer los procesos que producen el interbloqueo y
2
después realizaremos una de las siguientes acciones:
− Reiniciar un proceso (abandonar). Se pierde todo lo que el proceso haya ejecutado. Si persiste el
interbloqueo abandonamos más procesos. Abandonar y comprobar el estado del sistema.
−Reiniciar todos los procesos. Devolvemos los procesos a un estado anterior en el cual no haya interbloqueo.
Para volver atrás tengo que haberlo guardado en memoria.
− Expropiar o apropiar recursos. Vamos a expropiar recursos a procesos hasta que deje de existir el
interbloqueo. Hay recursos fácilmente expropiables o no fácilmente expropiables.
Interbloqueo
1
3
Descargar