Sistemas Operativos, Interbloqueos (Deadlock)

INFORMATICA UNIVERSIDAD

PROCESO

 

Interbloqueos

 

Concepto:

 Un interbloqueo se da más que todo en los entornos multiprogramación, en donde varios procesos compiten entre sí por un número finito de recursos. Uno de éstos procesos solicita a uno de los recursos, en donde ese recurso debe estar libre para poder utilizarse, de lo contrario el proceso pasa a estado de espera, y si éste recurso no se libera el proceso se mantendrá siempre en estado de espera.

  

Es por ello que cuando ésto ocurre lo conocemos como Interbloqueo. Un sistema consta de un número finito de recursos como mencionamos anteriormente, los cuales se distribuyen en varios procesos. Para que un proceso pueda utilizar un recurso éste debe solicitarlo ante de utilizarlo y previamente liberarlo, estos procesos pueden utilizar tantos recursos como los necesite para poder realizar sus tareas, siempre y cuando el número de recursos que se soliciten no sobrepasen el total de recursos disponibles del sistema.

 

Por ejemplo

 

Utilizar una impresora, se solicita usar pero alguien más la está utilizando y hay que esperar hasta que se libere. Una vez que se libere por el otro usuario entonces se concede nuestra solicitud, luego se hace uso de este recurso (La impresora) y finalmente luego de usarla se procede a liberar el recurso para que sea utilizado por otro usuario.

Condicion necesaria para darse interbloqueo:

 

El interbloqueo puede darse si se activa al mismo tiempo 4 condiciones importantes en un sistema.

 

  • Exclusión Mutua: consiste cuando un sólo proceso puede ser utilizado a la vez, si otro proceso decide utilizarlo deberá esperar hasta que el recurso sea liberado.

  • Retención y espera: Consiste cuando un proceso posee un recurso retenido y a su vez espera para adquirir otro recurso que se encuentra retenido por otros procesos.

  • Sin desalojo: Consiste cuando un recurso sólo puede liberarse si un proceso decide liberarlo voluntariamente por el proceso que lo tiene retenido, luego de que este proceso haya completado su tarea.

 

Tras investigaciones para buscar formas de resolver el bloqueo se han encontrado métodos limpios y rápidos que permitan manejar de mejor manera la mayoria de estos problemas, para ello exiten 4 áreas que se relacionan con los interbloqueos las cuales son: prevención, técnica para evitarlos, detección y recuperación.

 

1) Técnica de Prevención: Consiste en eliminar de nuestro sistema al menos una condición de interbloqueo. 

*Ventajas: No debe matar procesos, ni expropiar recursos  a su vez es un método limpio. 
*Desventajas: Se aprovecha mal los recursos que nos brinda.

 

2) Técnica de Evitación: Permite la posibilidad de interbloqueo. Lo cual hace un análisis continuo, donde se realiza en la asignación de recursos a procesos, debido a que las solicitudes son inevitables.

*Ventajas: Es un método limpio

*Desventajas: Posee poco rendimiento por lo que genera una sobrecarga al sistema, debido al constante análisis por parte del sistema.

 

3 y 4) Técnica de Detención y recuperación: En ésta técnica los procesos pueden actuar libremente, aun permitiendo que ocurra el interbloqueo. Luego cada cierto tiempo se realiza un análisis para ver si ha ocurrido un interbloqueo. En caso de que lo haya se aplica un mecanismo de recuperación.

*Desventajas: No es un Método limpio.

 

 

 

 

 

 

(Puede quitar la publicidad ampliando la cuenta)