Definición de interbloqueo

De Wiki de Sistemas Operativos
Revisión del 10:55 21 ene 2013 de Marperrei1 (discusión | contribuciones) (Generalización de la definición)
Saltar a: navegación, buscar

También conocido como bloqueo mutuo o deadlock.

Es una espera circular permanente de dos o más procesos. Existen una serie de condiciones para que se produzca y una serie de estrategias para resolverlos.

  • Ejemplo simple:

GrafoDeadlock.jpg

Se aprecian dos procesos (P1 y P2), cada uno con un recurso diferente asociado (R1 y R2). Llega un punto en el que el proceso P1 ha adquirido el recurso R1 y el proceso P2 ha adquirido el recurso R2 y cada proceso necesita el otro recurso. Este es el punto de interbloqueo.

Un conjunto de P procesos está interbloqueado si y sólo si cada proceso Pi, que pertenezca a P, está bloqueado en espera de un evento que sólo puede ser provocado por otro proceso Pi, que pertenece a P. Si uno de los procesos está esperando a algo que no depende de los demás es una espera en cadena. La utilidad de los grafos de relación proceso/recurso es que habrá interbloqueo si y sólo si en el grafo se produce un ciclo.

Según Dijkstra, una configuración de procesos y recursos es estado seguro si a partir de ella podemos seguir ejecutando código, es decir, no se producen interbloqueos.