Diferencia entre revisiones de «Definición de interbloqueo»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(definición de estado seguro según djikstra)
(Generalización de la definición)
Línea 8: Línea 8:
  
 
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.
 
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 [http://es.wikipedia.org/wiki/Edsger_Dijkstra 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.
 
Según [http://es.wikipedia.org/wiki/Edsger_Dijkstra 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.

Revisión del 10:55 21 ene 2013

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.