domingo, 25 de octubre de 2015

2.4.3 Interbloqueo (DeadLock). Análisis

En un conjunto de procesos, cada uno está esperando un evento que sólo otro proceso del conjunto puede causar. Puesto que todos los procesos están esperando, ninguno de ellos puede causar ninguno de los eventos que podrían despertar a cualquiera de los demás miembros del conjunto, y todos los procesos continúan esperando indefinidamente.

Ejemplo: Una carretera en 2 direcciones tiene un puente que sólo deja pasar vehículos en un sentido, con las siguientes situaciones:

Un auto llega al puente y en sentido contrario no hay nadie y puede cruzar
Si el paso es controlado por un semáforo en cada lado y 100 m antes de cada uno hay detectores de autos para encender el semáforo opuesto en rojo, pude pasar que 2 autos lleguen al mismo tiempo en ambos sentidos y ambos estén detenidos por el semáforo (interbloqueo)

Si no hay semáforos, un conductor cede el paso, pero antes de que termine el otro, aparece un 3º y así sucesivamente, puede hacer que el conductor educado no cruce mientras haya carros en sentido contrario (postergación indefinida)

RECURSOS.- elemento que un programa o proceso puede usar en la computadora donde se ejecuta, y puede ser usado por un solo proceso en un momento dado.

Tipos

Reutilizables.- El que puede ser usado con seguridad por un proceso y no se agota con el uso, son liberados para que otros los reusen: CPU, canales de E/S, memoria y estructuras de datos archivos, bases de datos y semáforos. 
Consumibles.- El que puede ser creado (producido) y destruido (consumido). No hay límite en la cantidad.
Un proceso productor que no está bloqueado puede liberar cualquier número de recursos consumibles.
Cuando un proceso adquiere un recurso, éste deja de existir: señales, mensajes, e información en buffers.  Operaciones
  • Solicitud
  • Uso
  • Liberación

Condiciones para que se dé un interbloqueo (deben estar todas)
1.                   Condición de exclusión mutua. Cada recurso está asignado únicamente a un solo proceso o está disponible.
2.                   Condición de retener        y esperar.             Los procesos        que
actualmente tienen             recursos que         les           fueron otorgados previamente pueden         solicitar nuevos recursos. 3. Condición de no expropiación. No               es            posible
quitarle por la fuerza a un proceso los recursos que le fueron otorgados previamente. El proceso que los tiene debe liberarlos 
4. Condición de espera circular. Debe haber una cadena circular de dos o más procesos, cada uno de los cuales está esperando un recurso retenido por el siguiente miembro de la cadena.
Además:
Número finito de recursos y procesos.

Un proceso puede pedir tantos recursos como necesite siempre que no exceda los existentes 

No hay comentarios.:

Publicar un comentario