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.
_ En esa situación:
_ Ningún proceso del grupo puede evolucionar (suspendido eternamente).
_ Ningún otro proceso podrá obtener los recursos retenidos, puesto que no pueden ser liberados.
Un proceso esta interbloque do si está esperando por un evento
Determinado que nunca va a ocurrir.
interbloqueo.
Coffman, Elphick y Shoshani establecieron las cuatro condiciones necesarias para que se produzca interbloqueo:
1. Condición de exclusión mutua: los procesos reclaman control exclusivo de los recursos que piden.
2. Condición de esperar por: los procesos mantienen los recursos que ya les han sido asignados mientras esperan por recursos adicionales.
3. Condición de no apropiatividad: los recursos no pueden ser extraídos de los procesos que los tienen hasta su completa utilización.
4. Condición de espera circular: existe una cadena circular de procesos en la cual cada uno de ellos mantiene a uno o más recursos que son requeridos por el siguiente proceso de la cadena. Acciones a realizar ante un interbloqueo
Alternativas en el tratamiento de interbloqueos:
_ Ignorar el problema, asumiendo que dicha situación nunca se dará en el sistema.
Es la aproximación que mantienen muchos sistemas operativos, incluido UNIX.
_ Emplear algún algoritmo o protocolo que asegure que nunca se va a poder producir un interbloqueo. Esta solución puede adoptar dos formas alternativas:
_ Prevención. Consiste en conseguir que no puedan darse simultáneamente las cuatro condiciones de Coffman. De esta forma, el interbloqueo no puede llegar a producirse.
_ Evitación. 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 petición de un recurso, el sistema analiza toda esa información para conceder (o denegar) dicho recurso.
PREDICCIÓN DEL INTERBLOQUEO
Una forma de resolver el problema del interbloqueo, que se diferencia sutilmente de la prevención, es la predicción del interbloqueo. En la prevención de interbloqueo, se obligaba a las solicitudes de recursos a impedir que sucediera , por lo menos, alguna de las cuatro condiciones de interbloqueo. Esto se hace indirectamente, impidiendo la aparición de una de las tres condiciones necesarias (exclusión mutua, retención y espera, no apropiación) o directamente, impidiendo la aparición de un circulo viciosos de espera. Se llega así a un uso ineficiente de los recursos y una ejecución ineficiente de los procesos. Con predicción del interbloqueo, por otro lado, se pueden alcanzar las tres condiciones necesarias, pero se realizan elecciones acertadas para asegurar que nunca se llega al punto de interbloqueo. La predicción, por lo tanto, permite más concurrencia que la prevención.
Con predicción del interbloqueo, se decide dinámicamente si la petición actual de asignación de un recurso podría, de concederse, llevar potencialmente a un interbloqueo. La predicción del interbloqueo necesita, por lo tanto, conocer las peticiones futuras de recursos.
Enfoques para la predicción del interbloqueo:
- No iniciar un proceso si sus demandas pueden llevar a interbloqueo.
- No conceder una solicitud de incrementar los recursos de un proceso si esta asignación puede llevar a interbloqueo.
DETECCIÓN DEL INTERBLOQUEO
Las estrategias de prevención de interbloqueo son muy conservadoras; resuelven el problema limitando el acceso a recursos e imponiendo restricciones sobre los procesos. En cambio, las estrategias de detección de interbloqueo, no limitan el acceso a recursos ni restringen las acciones del proceso. Con la detección del interbloqueo, se concederán los recursos que los procesos necesiten siempre que sea posible. Periódicamente, el S. O. Ejecuta un algoritmo que permite detectar la condición de círculo vicioso de espera.
La detección del interbloqueo es el proceso de determinar si realmente existe un interbloqueo e identificar los procesos y recursos implicados en él. Una posibilidad detectar un interbloqueo es monitorear cada cierto tiempo el estado de los recursos. Cada vez que se solicita o se devuelve un recurso, se actualiza el estado de los recursos y se hace una verificación para observar si existe algún ciclo
No hay comentarios:
Publicar un comentario