Interbloqueos
Clean & simple
Sistemas Operativos
2° año Ing. en Sistemas de Información
Universidad Tecnológica Nacional Facultad Regional Villa
María
Agenda
• Introducción Interbloqueos
• Recursos
• Algoritmo de avestruz.
• Detección, recuperación
• Evasión
• Prevención
Recursos
• Recurso: Adquirir, utilizar y liberar a lo largo del tiempo
• Apropiativos: ej. Memoria ram
• No apropiativos: Grabadora de Cd.
– Secuecia de eventos
●
Solicitud
●
Utilización
●
Liberación
• Bloqueo vs inactividad
Adquisición de recursos
• Semáros o mutexes asociados al recurso
• Adquisión de manera secuencial
• Abrazo Mortal: cada uno de los procesos involucrados se bloquea hasta
conseguir el recurso que tiene el otro proceso.
Interbloqueos
• Definición:
„Un conjunto de procesos está en un abrazo mortal cuando todos los procesos en ese
conjunto están esperando un evento que sólo puede ser causado por otro proceso en el
conjunto. „
Ninguno se puede:
Ejecutar
Liberar recursos
Ser despertado
Interbloqueos
• Condiciones para los interbloqueos
1- Exclusión mutua (Un recurso se asigna a un solo proceso en un Tiempo o está libre)
2- Contención y espera. (Si un proceso tiene un recurso puede solicitar otro)
3- No apropiativa. (No se puede quitar por la fuerza un recurso, se deben liberar)
4- Espera circular. (Debe haber una cadena circular donde cada uno espera por el recurso del
otro).
Interbloqueos
• Modelado de Interbloqueos
Interbloqueos
Interbloqueos
Interbloqueos
Algoritmo de la avestruz
• Los interbloqueos ocurren rara vez, hacer de
cuenta que no pasa nada
Detección de Interbloqueo
• Detección de interbloqueos con un recurso de cada tipo
• 1 o mas ciclos → interbloqueo por los nodos que pertencen al ciclo
• Ejemplo de un sistema – deadlocked?
• Proceso A tiene R, quiere S
• Proceso B tiene nada, quiere T
• Proceso C tiene nada, quiere S
• Proceso D tiene U, quiere S y T
• Proceso E tiene T, quiere V
• Proceso F tiene W, quiere S
• Proceso G tiene V, quiere U
Detección de Interbloqueo
• Se utilizan algoritmos conocidos para la detección de ciclos en un grafo
• Se toma cada nodo como raiz y se baja en profundidad, si vuelvo a pasar por alguno hay ciclo.
Recuperación de Interbloqueo
• Recuperación por medio de la apropiación
– En algunos casos Manual. Ej. Procesamiento por lotes Impresora
– Casi imposible recuperarse
• Recuperación a través del retroceso
– Puntos de comprobación periódicas.
• Recuperación a través de la eliminación de procesos
– Se puede borrar un proceso que no este en interbloqueo pero que libere un
recurso en particular
– Cuidado con el proceso que se elije para eliminar. Ej. Compilación, registro BD
Cómo evitar Interbloqueos
• Intentar no asignar todos los recursos a la vez, que se soliciten en orden de
acuerdo a la demanda de los demas.
• Otorgar el recurso cuando sea seguro y no genere interbloqueo
Trayectoria de los recuros
Cómo evitar Interbloqueos
• Estados inseguros
Cómo prevenir Interbloqueos
• 4 Condiciones de Coffman
– Atacar la condición de exclusión mutua
●
Ej, Demonio de impresión
– Atacar la condición de contención y espera
●
Reservar los recursos a priori? No es eficeinte y no se conocen de antemano todos
los recursos que necesita el proceso.
– Atacar la condición no apropiativa
●
Virtualizar recursos. Ej demonio de impresión
– Atacar la condición de espera circular
●
Utiliza solo uno en un momento o hace la lista de requerimientos