Punto muerto


En la informática concurrente , interbloqueo es cualquier situación en la que ningún miembro de un grupo de entidades puede proceder porque cada uno espera a que otro miembro, incluido él mismo, tome medidas, como enviar un mensaje o, más comúnmente, liberar un bloqueo . [1] Los interbloqueos son un problema común en los sistemas de multiprocesamiento , computación paralela y sistemas distribuidos , porque en estos contextos los sistemas a menudo usan bloqueos de software o hardware para arbitrar recursos compartidos e implementar la sincronización de procesos . [2]

En un sistema operativo , se produce un interbloqueo cuando un proceso o subproceso entra en un estado de espera porque un recurso del sistema solicitado está retenido por otro proceso en espera, que a su vez está esperando otro recurso retenido por otro proceso en espera. Si un proceso permanece indefinidamente incapaz de cambiar su estado porque los recursos solicitados por él están siendo utilizados por otro proceso que está esperando, entonces se dice que el sistema está en punto muerto. [3]

En un sistema de comunicaciones , los interbloqueos ocurren principalmente debido a la pérdida o corrupción de las señales más que a la disputa por los recursos. [4]

Puede surgir una situación de interbloqueo en un recurso si y solo si todas las siguientes condiciones ocurren simultáneamente en un sistema: [5]

Estas cuatro condiciones se conocen como las condiciones de Coffman desde su primera descripción en un artículo de 1971 de Edward G. Coffman, Jr. [8]

Si bien estas condiciones son suficientes para producir un interbloqueo en los sistemas de recursos de una sola instancia, solo indican la posibilidad de un interbloqueo en los sistemas que tienen múltiples instancias de recursos. [9]


Ambos procesos necesitan recursos para continuar la ejecución. P1 requiere el recurso adicional R1 y está en posesión del recurso R2 , P2 requiere el recurso adicional R2 y está en posesión de R1 ; ninguno de los procesos puede continuar.
Cuatro procesos (líneas azules) compiten por un recurso (círculo gris), siguiendo una política de derecha antes que izquierda. Se produce un interbloqueo cuando todos los procesos bloquean el recurso simultáneamente (líneas negras). El interbloqueo se puede resolver rompiendo la simetría.
Dos procesos compitiendo por dos recursos en orden opuesto.
  1. Pasa un solo proceso.
  2. El proceso posterior tiene que esperar.
  3. Se produce un interbloqueo cuando el primer proceso bloquea el primer recurso al mismo tiempo que el segundo proceso bloquea el segundo recurso.
  4. El interbloqueo se puede resolver cancelando y reiniciando el primer proceso.
(A) Dos procesos que compiten por un recurso, siguiendo una política de orden de llegada. (B) Interbloqueo ocurre cuando ambos procesos bloquean el recurso simultáneamente. (C) El interbloqueo se puede resolver rompiendo la simetría de las cerraduras. (D) El interbloqueo se puede evitar rompiendo la simetría del mecanismo de bloqueo.