Interbloqueo

10
2.4.3 INTERBLOQUEO Deadlock INTEGRANTES:

Transcript of Interbloqueo

Page 1: Interbloqueo

2.4.3 INTERBLOQUEODeadlock

INTEGRANTES:

Page 2: Interbloqueo

Es el bloqueo permanente de un conjunto de procesos o hilos de ejecución en un sistema concurrente que compiten por recursos del sistema o bien se comunican entre ellos. A diferencia de otros problemas de concurrencia de procesos, no existe una solución general para los interbloqueos.

Todos los interbloqueos surgen de necesidades que no pueden ser satisfechas, por parte de dos o más procesos.

INTERBLOQUEO

Page 3: Interbloqueo

Los procesos compiten por dos recursos que necesitan para funcionar, que sólo pueden ser utilizados por un proceso a la vez. El primer proceso obtiene el permiso de utilizar uno de los recursos (adquiere el lock sobre ese recurso). El segundo proceso toma el lock del otro recurso, y luego intenta utilizar el recurso ya utilizado por el primer proceso, por lo tanto queda en espera. Cuando el primer proceso a su vez intenta utilizar el otro recurso, se produce un interbloqueo, donde los dos procesos esperan la liberación del recurso que utiliza el otro proceso.

Page 4: Interbloqueo

En una carretera de dos direcciones, en donde se ha construido un puente que por problemas urbanísticos o de presupuesto solo deja pasar vehículos en un sentido. Dado este punto crítico en la mencionada carretera, se presentan las siguientes situaciones:

• Un vehículo llega al puente y no se encuentra ningún otro en sentido contrario. En este caso, cruza haciendo uso del puente y no ocurre nada anormal.

• Si el paso por el puente es controlado por un semáforo en cada lado de manera que 100 metros antes de cada semáforo se sitúen detectores de presencia de vehículos cuya finalidad sea poner en rojo el semáforo del sentido contrario ante la presencia de un vehículo, podría suceder que si llegan al mismo tiempo vehículos

en los dos sentidos se pongan los dos

semáforos en rojo impidiendo el paso

de vehículos en ambos sentidos.

En este caso el camino queda

bloqueado, ocurriendo algo similar al

interbloqueo de procesos.

EJEMPLO DE INTERBLOQUEO

Page 5: Interbloqueo

Un conjunto de procesos llega al interbloqueo si se cumplen las siguientes condiciones:

• 1. Exclusión mutua. Los recursos compartidos son adquiridos y utilizados de modo mutuamente exclusivo, es decir, por un proceso como máximo en cada momento.

• 2. Retener y esperar. Cada proceso retiene los recursos que ya le han sido asignados mientras espera a adquirir el resto de recursos.

Page 6: Interbloqueo

• 3. No expropiación. Los recursos concedidos a un proceso sólo pueden ser liberados y devueltos al sistema como resultado de la acción voluntaria de ese proceso: el sistema no puede obligarle a entregarlos.

• 4. Espera circular. Los procesos interbloqueados forman una cadena circular de modo que cada proceso retiene uno o más de los recursos que son solicitados por el siguiente proceso de la cadena.

Page 7: Interbloqueo

Se refiere a prevenir que surja el interbloqueo en el mismo. De tal manera que nunca se lleguen a cumplir ninguna de las cuatro condiciones necesarias para que se produzcan los interbloqueos.

La exclusión mutua: es generalmente difícil de evitar, por lo que es costumbre prevenir una o más de las tres condiciones restantes.

Prevención

Page 8: Interbloqueo

La condición retener-y-esperar :puede ser eliminada exigiendo o forzando a un proceso a liberar todos los recursos .En otras palabras, los interbloqueos se previenen debido a que los procesos en espera no retienen recursos. Hay básicamente dos implementaciones posibles de esta estrategia:

1) el proceso solicita todos los recursos necesarios antes de comenzar a ejecutarse

2) el proceso solicita los recursos de forma incremental en el curso de la ejecución pero libera todos los recursos retenidos si se encuentra con una negativa.

Page 9: Interbloqueo

No expropiación: puede ser negada obviamente permitiendo expropiación, es decir, autorizando al sistema a revocar la propiedad de ciertos recursos a los procesos bloqueados. Puesto que la expropiación es involuntaria desde el punto de vista del proceso afectado, el sistema operativo debe encargarse de salvar el estado y restaurarlo cuando el proceso sea posteriormente reanudado.

Page 10: Interbloqueo

Espera circular: es mediante la ordenación lineal de los diferentes tipos de recursos del sistema.  Los interbloqueos se previenen exigiendo que todos los procesos soliciten y adquieran sus recursos en orden estrictamente creciente de las clases de recursos de sistema especificadas. Además. la adquisición de todos los recursos pertenecientes a una clase debe efectuarse con una sola petición, y no incrementalmente.

Una desventaja de este método es que los recursos deben ser adquiridos en el orden prescrito, en vez de ser solicitados cuando realmente se necesitan.