Interbloqueos
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
●