top of page

INTERBLOQUEOS

La presencia de interbloqueos (deadlocks) es una característica no deseable para todo sistema concurrente. En sistemas centralizados el manejo de interbloqueos es o muy costoso o extremadamente restrictivo. En sistemas distribuidos debemos agregar el costo que se paga por tener a los elementos de procesamiento físicamente separados.

Los deadlocks están relacionados tanto a aspectos de sincronización como de administración de recursos. Con respecto a los recursos estos pueden ser propios de la aplicación como por ejemplo: señales o mensajes de sincronización, o parte del sistema completo como por ejemplo: servidores de bases de datos, servidores de llaves, etc.

 

Condiciones para la presencia de un deadlock
Las condiciones necesarias para la presencia de deadlocks son las siguientes:
1. Exclusión mutua. Los recursos compartidos se obtienen y se usan en una forma
mutuamente exclusiva, esto es, a lo más un proceso a la vez.
2. Hold and wait. Cada proceso continúa manteniendo el control de un recurso
mientras espera obtener otros recursos.
3. No preemption. Los recursos concedidos a un proceso pueden ser liberados al
sistema únicamente como resultado de una acción voluntaria de tal proceso; el
sistema no puede liberar los recursos por la fuerza.

 

Prevenir deadlocks
La idea es prevenir que se presente alguna de las cuatro condiciones necesarias para la
existencia de un deadlock. Las estrategias que se pueden seguir son:
• hacer que cada proceso adquiera de antemano los recursos que va a utilizar.
• retirarle el uso de un recurso al conceder una nueva solicitud.
Las desventajas son:
• decrementa la concurrencia del sistema.
• los procesos puede entrar en un deadlock en la fase de adquisición.
• el uso de los recursos tiene un caracter dinámico que no se puede predecir
fácilmente.

bottom of page