Bloqueo
permanente de un conjunto de procesos que compiten por
los recursos del sistema o bien se comunican con otros.
Ninguno de los procesos que compiten por los recursos o
interactúan entre sí puede avanzar por carecer de algún
recurso o esperar a que se produzca un evento.
- Recursos
reutilizables: puede ser utilizado por un proceso y
no se agota por el uso del mismo. Los procesos
obtienen unidades de recursos que liberan
posteriormente para que otros procesos las
reutilicen (procesador, memoria principal,
dispositivos de E/S, etc.)
- Recursos
consumibles: son creados y destruidos, producidos y
consumidos. Cuando un proceso adquiere un recurso,
éste queda excluido del sistema. Normalmente no hay
límite en el número de recursos consumibles de un
tipo particular, la única restricción está impuesta
por la capacidad de almacenamiento temporal del
sistema.
Condiciones
de interbloqueo:
- Exclusión
mutua: sólo un proceso puede usar un
recurso simultáneamente.
- Retención
y espera: un proceso retiene unos
recursos asignados mientras espera que se le asignen
otros.
- No
expropiación: ningún proceso puede ser
forzado a abandonar un recurso que retenga.
- Espera
circular: las anteriores causas son las
más importantes pero no son suficientes. Se debe dar
también el caso de que exista una cadena cerrada de
procesos, cada uno de los cuales retiene, al menos,
un recurso que necesita el siguiente proceso de la
cadena para continuar su ejecución (círculo
vicioso).
|