Definición
Un procedimiento o mecanismo que identifica la presencia de interbloqueos — situaciones en las que uno o más procesos o hilos están permanentemente bloqueados porque cada uno espera recursos en posesión de otros de modo que no es posible avanzar sin intervención.
Principio
Principio
La detección modela la contención de recursos con grafos (wait‑for graphs o grafos de asignación de recursos) y usa detección de ciclos o análisis del espacio de estados para identificar esperas circulares. La detección es una de las tres familias de enfoques (prevención, avoidance, detección+recuperación); los detectores prácticos negocian completitud frente a coste, pueden ejecutarse periódicamente o bajo demanda y deben mapear ciclos abstractos a acciones concretas de recuperación.
Demostración
Demostración
Ejemplos concretos: detectores de interbloqueo en sistemas operativos que construyen wait‑for graphs y detectan ciclos para elegir una víctima a terminar o preemptar; sistemas de bases de datos que detectan esperas sobre bloqueos y abortan una transacción para romper el ciclo; herramientas de análisis estático que aproximan posibles interbloqueos en código multihilo modelando órdenes de adquisición de locks.
Aplicación incorrecta
Aplicación incorrecta
Asumir que detectar equivale a resolver — la detección solo informa (o señala) que existe un interbloqueo y debe ir seguida de recuperación (terminar procesos, rollback, preemption). Sobreinterpretrar falsos positivos de análisis estáticos conservadores u omitir livelock y starvation —problemas distintos con remedios distintos— son usos indebidos comunes.
Consecuencia
Consecuencia
Una detección eficaz permite acciones de recuperación dirigidas (rollback, preempción de recursos, terminación de hilos) e informa el diseño y ajuste del sistema, pero introduce coste de monitorización y requiere políticas cuidadosas para la selección de víctimas y minimizar la interrupción.
Inversión
Inversión
Prevención o evitación de interbloqueos (imponer un orden global sobre recursos, usar el algoritmo del banquero, asignar solo si es seguro) elimina la necesidad de detectar y recuperar pero puede reducir la concurrencia o exigir sobredimensionamiento conservador.
Límite
Límite
Se aplica a sistemas con recursos mutuamente excluyentes y semántica de adquisición bloqueante (locks, semáforos, canales I/O); excluye anomalías de progreso que no son esperas circulares (starvation, livelock) y modelos donde los recursos no se retienen mientras se espera (p. ej. paso de mensajes puro sin bloqueo), salvo que pueda derivarse una relación wait‑for.
Tensión semántica
Tensión semántica
Tensión entre detección en tiempo de ejecución (reactiva, posiblemente más barata en el caso común) y prevención/evitación (proactiva, puede impedir concurrencia). También tensión entre detección dinámica precisa y análisis estático conservador que intercambia falsos positivos por seguridad.
Síntesis
Síntesis
La detección de interbloqueos es la identificación en tiempo de ejecución o en análisis de condiciones cíclicas de espera de recursos mediante wait‑for o resource‑allocation graphs; forma parte del espacio de diseño más amplio que incluye prevención, evitación y recuperación, y ofrece un medio pragmático para descubrir ciclos bloqueantes de modo que políticas de recuperación controladas puedan restaurar el progreso.