Interbloqueo
Cosiste en un grupo de procesos bloqueados, cada uno reteniendo un recurso y esperando adquirir un recurso retenido por otro proceso del grupo.
Condiciones para que ocurra un interbloqueo
- Exclusion mutua: solo un proceso a la vez puede utilizar un recurso.
- Retener y esperar: un proceso que esta reteniendo al menos un recurso esta esperando adquirir recursos adicionales retenidos por otros procesos.
- Sin prioridades: un recurso solo puede ser liberado voluntariamente por el proceso que lo retiene, luego de que ese proceso se ha terminado de ejecutar.
- Espera circular: existe un grupo de recursos {P0,P1,...,Pn} esperando recursos; tal que P0 espera por un recurso que retiene P1, P1 espera por un recurso que retiene P2, ..., Pn-1 espera un recurso que retiene Pn y Pn espera un recurso que retiene P0.
Metodos para manejar los interbloqueos
- Prevencion: Asegurarse de que el sistema nunca entrara en un estado de interbloqueo.
- Evitar: Asegurarse que el sistema nunca entrara en un estado inseguro (en un sistema que esta en estado seguro nunca ocurrira un interbloqueo, mientras que en uno que esta en estado inseguro hay posibilidades de que se presenten interbloqueos).
- Deteccion: Permitir al sistema entrar en un estado de interbloqueo y luego recuperarse (Para esto hay que implementar algoritmos que detecten los interbloqueos y otros que los resuelvan).
- Hacer nada: Ignorar el problema y permitir que el usuario o el administrador del sistema se encargue de solucionarlo (Actualmente el metodo mas utilizado por los sistemas modernos).