Вы находитесь на странице: 1из 13

INTERBLOQUEO

ARELYS RODRIGUEZ JIMENEZ ALEXANDER BALLEN

CONCEPTO
Dados: -Un conjunto de procesos ejecutndose en un sistema (computador), -Un conjunto de recursos que son utilizados por dichos procesos, se dice que el conjunto de procesos se encuentra en un estado de interbloqueo cuando todos sus procesos se encuentran esperando un recurso que mantiene retenido otro proceso del grupo.

Interbloqueo de trfico

En esa situacin:
- Ningn proceso del grupo puede evolucionar (suspendido eternamente). - Ningn otro proceso podr obtener los recursos retenidos, puesto que no pueden ser liberados.

Los interbloqueos constituyen un grave problema para el que la mayora de sistemas operativos (como UNIX, por ejemplo) no contemplan ningn tratamiento en absoluto.

Ejemplo de bloqueo
El proceso a solicita la impresora, que se le concede. El proceso b solicita la unidad de memoria, que se le concede. El proceso a solicita la unidad de memoria, pero se deniega la solicitud hasta que b la libera. El proceso b solicita la impresora y se produce el bloqueo (deadlock).

Condiciones de Coffman
Se ha demostrado que las siguientes cuatro condiciones son necesarias (aunque no suficientes) para que se produzca un interbloqueo: 1) Exclusin mutua: Al menos un recurso debe ser utilizado en exclusin mutua, es decir, de modo no compartido.
2) Retener y esperar: Debe haber al menos un proceso que retenga un recurso y que haya pedido algn otro recurso que posea otro proceso, por lo que estar esperando.

3) No expulsin: El sistema no puede arrebatar los recursos que ha asignado previamente a los procesos. En otras palabras, un proceso mantiene retenido un recurso hasta que deja de utilizarlo y lo libera voluntariamente. 4) Espera circular: Debe existir un conjunto de procesos {P1, P2, ... Pn} tal que P1se encuentra esperando un recurso que retiene P2, P2 espera un recurso que retiene P3, ..., Pn-1 espera un recurso que mantiene Pn, y Pn espera un recurso que mantiene P1. Si todas ellas se cumplen simultneamente, el sistema se encuentra en situacin de riesgo de sufrir un interbloqueo.

Tratamiento del bloqueo

Ignorar el problema, asumiendo que dicha situacin nunca se dar en el sistema.Es la aproximacin que mantienen muchos sistemas operativos, incluido UNIX. Emplear algn algoritmo o protocolo que asegure que nunca se va a poder producir un interbloqueo. Esta solucin puede adoptar dos formas alternativas: - Prevencin. Consiste en conseguir que no puedan darse simultneamente las cuatro condiciones de Coffman. De esta forma, el interbloqueo no puede llegar a producirse.

- Evitacin. Consiste en llevar la cuenta de los


recursos disponibles en el sistema, los recursos que poseen los procesos y los que pueden llegar a solicitar. Cada vez que un proceso hace una peticin de un recurso, el sistema analiza toda esa informacin para conceder (o denegar) dicho recurso.

Utilizar un algoritmo que pueda detectar una situacin de interbloqueo (deteccin) y seguir alguna tcnica que permita deshacer dicha situacin (recuperacin).

Evitacin del bloqueo


Se conceden solamente aquellas peticiones de recursos que no lleven al sistema a un estado de interbloqueo. Estado seguro: si todos los procesos que ya tienen concedidos los recursos tienen la posibilidad de ser completados en algn 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 podra dar alguna secuencia de solicitudes que llevara al sistema a un estado de interbloqueo.

Deteccin
Necesitamos saber qu recursos estn asignados y tambin necesitamos mantener informacin sobre todas las solicitudes. Hay una serie de algoritmos para la deteccin de interbloqueos:

Primer tipo: se basa en la deteccin de ciclos o nudos en el grafo.

Segundo tipo. Usar una matriz de asignados, un vector disponibles y una matriz de solicitudes.

Recuperacin del bloqueo


Para recuperar un sistema interbloqueado necesitamos conocer los procesos que producen el interbloqueo y despus realizaremos una de las siguientes acciones: Reiniciar un proceso (abandonar). Se pierde todo lo que el proceso haya ejecutado. Si persiste el interbloqueo abandonamos ms 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 atrs 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 fcilmente expropiables o no fcilmente expropiables.

F I N