Condiciones para el interbloqueo y estrategias de resolución
De Wiki de Sistemas Operativos
Condiciones
En la política del sistema operativo deben darse una serie de condiciones para que se produzca un interbloqueo.
- Exclusión mutua: cada recurso está asignado a un único proceso o está disponible.
- Detención y espera: los procesos que tienen, en un momento dado, recursos asignados con anterioridad, pueden solicitar nuevos recursos.
- No apropiación: los recursos otorgados con anterioridad no pueden ser forzados a dejar un proceso. El proceso que los posee debe liberarlos en forma explícita.
- Espera circular: debe existir una cadena circular de dos o más procesos, cada uno de los cuales espera un recurso poseído por el siguiente miembro de la cadena. Esta condición es una consecuencia potencial de las tres primeras, es decir, dado que se producen las tres primeras condiciones, puede ocurrir una secuencia de eventos que desemboque en un círculo vicioso de espera irresoluble.
Las tres primeras condiciones son necesarias, pero no suficientes para que exista interbloqueo. Sólo las cuatro condiciones en conjunto constituyen una condición necesaria y suficiente para el interbloqueo.
Estrategias
- Omisión: consiste en suponer que los programadores lo han hecho bien, y obviar las posibles situaciones de interbloqueo. Es la más usada.
- Detección y Recuperación
- Detección
- Grafo de relación recursos-procesos
- Matrices de relación recursos-procesos
- Detección
- Recuperación
- Apropiación temporal
- Checkpoints
- Eliminación
- Recuperación
- Prevención
- Supresión de exclusión mutua
- Supresión de retención y espera:
- Supresión de no apropiación: El proceso libera todos los recursos que está usando y espera a que todos los que necesita estén disponibles
- Supresión de espera circular
- Predicción: el SO observa la evolución que siguen los procesos, e intenta anticiparse a los futuros conflictos