sábado, 9 de julio de 2016

INTERBLOQUEOS







INTERBLOQUEOS







Interbloqueo Se dice que dos o más procesos están bloqueados, cuando están suspendidos en espera de un evento que sólo puede ser activado por uno de los procesos bloqueados, y por lo tanto dicho evento nunca sucederá. Para este problema no existe solución Un ejemplo fácil para entender este contexto es imaginar que existen dos procesos que compiten por dos recursos que necesitan para funcionar, que solo pueden ser usados por un proceso a la vez. El primer proceso obtiene el permiso de utilizar uno de los recursos. El segundo proceso toma el otro recurso, y luego intenta utilizar el recurso ya utilizado por el primer proceso, por lo tanto queda en espera. Cuando el primer proceso a su vez intenta utilizar el otro recurso, se produce un interbloqueo, donde los dos procesos esperan la liberación del recurso que utiliza el otro proceso.
Condiciones necesarias para un interbloqueo  • Exclusión mutua: Si dos procesos solicitan un recurso exclusivo, uno de los dos quedará suspendido hasta que el favorecido libere el recurso.     • Contención o retención y espera: Si un proceso necesita más de un recurso para realizar su trabajo, conservará en su poder los recursos exclusivos ya asignados, mientras espera por otro recurso adicional.
Condiciones necesarias para un interbloqueo • Inapropiatividad: Los recursos asignados a un proceso, sólo pueden ser liberados por el proceso mismo y no pueden ser desasignados por el sistema, cuando otro proceso los necesite. • Espera circular: Dependencia: Si un proceso P1 está suspendido en espera de un recurso exclusivo que está asignado a otro proceso P2, entonces decimos que P1 depende de P2 (P1 <= P2).
Formas de enfrentar los interbloqueos • Indiferencia: Problema del usuario y del programador, lograr que no se dé el interbloqueo. • Prevención: Consisten en condicionar el sistema con una serie de restricciones a los programadores, para que no se den al menos una de las condiciones del interbloqueo, por lo que éste nunca sucederá.




Formas de enfrentar los interbloqueos • Evitación o predicción: Esta estrategia consiste en dejar que las condiciones para el interbloqueo se puedan dar, pero en el momento de asignar recursos, y se detecte que puede ocurrir un interbloqueo, deniega la asignación del recurso que puede desencadenar el interbloqueo. • Detección y recuperación: En esta política, el sistema deja que suceda el interbloqueo, pero se implementan procesos encargados de revisar el estado de asignación de los procesos, para detectar los interbloqueo. Una vez detectado, se pueden implementar políticas de recuperación de interbloqueo, que básicamente consisten en matar procesos.





Ejemplos de  interbloqueo

  El Interbloqueo se puede definir como el bloque permanente de un conjunto de procesos que compiten por los recursos del sistema, todos los interbloqueos suponen necesidades contradictorias de recursos, por parte de dos o más procesos.
Un ejemplo clásico de interbloqueo es el interbloqueo de tráfico:


2.- Ahora se describe una situación de interbloqueo, en la que intervienen procesos y recursos informáticos, al siguiente gráfico se le asigna la siguiente forma:

           Proceso P                               Proceso Q
         Obtener A                               Obtener B
         Obtener B                               Obtener A
         Liberar A                                Liberar B
         Liberar B                                Liberar A



El que se produzca interbloqueo o no, depende de la dinámica de la ejecución, por ejemplo; supóngase que p no necesitara ambos recursos en el mismo instante y tuviera la siguiente forma:
Proceso P
Obtener A
Liberar A
Obtener B
Liberar B


Ejemplo Ilustrativo:




•Dos procesos compiten por el acceso exclusivo a un archivo D del disco y a una unidad de cinta C. Guiarse por la tabla  6.4, el interbloqueo se produce si un proceso pide un recurso y retiene otro.
                                      p0p1q0q1p2q2
Esta es la forma para que se produzca un interbloqueo en un sistema multiprogramado







No hay comentarios:

Publicar un comentario