interbloqueo
[MAEK87] define el interbloqueo como el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros. A diferencia de otros problemas de la gestión concurrente de procesos, para el caso general no existe una solución eficiente.
Todos los interbloqueos suponen demandas contradictorias de recursos por parte de dos o másprocesos. La figura 1 ilustra este conflicto de forma abstracta en el caso de dos procesos y dos recursos. Los dos ejes del diagrama representan el avance de los dos procesos en términos de instrucciones ejecutadas. El avance conjunto de los dos procesos se representa entonces con una secuencia discreta de puntos en el espacio.
Las líneas horizontales o verticales representan el intervalo detiempo en el que sólo uno de los procesos está ejecutándose (intercalado); una línea diagonal significa ejecución simultánea (solapamiento). Supóngase que existe un punto en la ejecución de cada proceso en el que se requiere el uso exclusivo de ambos recursos, Rl y R2, para continuar. En el ejemplo, llega un punto en el que el proceso Pl ha adquirido el recurso Rl y el proceso P2 ha adquirido elrecurso R2 y cada proceso necesita el otro recurso. Este es el punto de interbloqueo. “stanlling”
Figura 1. Avance conjunto de procesos p1 y p2
Condiciones necesarias para que exista un Interbloqueo
Deben darse tres condiciones para que pueda producirse un interbloqueo:
1. Exclusión mutua: Los recursos implicados deben usarse en exclusión mutua, o sea, debe tratarse de recursos de uso exclusivo.Como se analizó previamente en esta exposición, los recursos compartidos no están involucrados en interbloqueos.
2. Retención y esperar: Cuando no se puede satisfacer la petición de un proceso, este se bloquea manteniendo los recursos que tenía previamente asignados. Se trata de una condición que refleja una forma de asignación que corresponde con la usada prácticamente en todos los sistemasreales, “Carretero”
3. No apropiación: Ningún proceso puede ser forzado a abandonar un recurso que retenga. En la mayoría de los casos, estas condiciones son bastante necesarias. Por ejemplo, la exclusión mutua hace falta para asegurar la consistencia de resultados y la integridad de la base de datos. De forma similar, la expulsión o apropiación no se puede aplicar arbitrariamente y, cuando seencuentran involucrados recursos de datos especialmente, debe estar acompañada de un mecanismo de recuperación y reanudación, que devuelva a un proceso y a sus recursos a un estado previo adecuado, desde el que el proceso pueda finalmente repetir sus acciones.
Puede existir interbloqueo con estas tres condiciones, pero puede no existir con sólo estas tres condiciones. Para que se produzca interbloqueo,se necesita una cuarta condición:
4. Círculo vicioso de espera: Existe una cadena cerrada de procesos, cada uno de los cuales retiene, al menos, un recurso que necesita el siguiente proceso de la cadena (véase la figura 2). Las tres primeras condiciones son necesarias, pero no suficientes, para que exista interbloqueo. La cuarta condición es, en realidad, una consecuencia potencial de las tresprimeras. Es decir, dado que se producen las tres primeras condiciones, puede ocurrir una secuencia de eventos que desemboque en un círculo vicioso de espera irresoluble. Un círculo de espera irresoluble es, de hecho, la definición de interbloqueo. El círculo de espera de la condición 4 es irresoluble porque se mantienen las tres primeras condiciones. Es decir, las cuatro condiciones en conjuntoconstituyen una condición necesaria y suficiente para el interbloqueo. '
Figura 2”stanlling”
Recursos
Los recursos existentes en el sistema que serán utilizados por los procesos para llevar a cabo su labor. En un sistema existe una gran variedad de recursos. Por un lado, recursos físicos tales como procesadores, memoria o dispositivos. Por otro, recursos lógicos tales como archivos, semáforos,...
Regístrate para leer el documento completo.