Condiciones para Interbloqueo en Sistema Distribuido

Este artículo analizará el concepto de condiciones para interbloqueo en sistemas distribuidos. Interbloqueo se refiere al estado en el que dos procesos compiten por el mismo recurso y terminan bloqueando el recurso por uno de los procesos y el otro no puede adquirir ese recurso.

Deadlock in Distributed System

 

Considere el siguiente escenario: tenemos dos procesos, P1 y P2. El proceso P1 tiene el recurso R1 y espera el recurso R2. El proceso P2 tiene el recurso R2 y está esperando el recurso R1 al mismo tiempo. Como resultado, el proceso P1 está esperando adquirir un recurso del proceso P2 y el proceso P2 también está esperando que el proceso P1 libere su recurso. Pero ninguno de los dos está liberando recursos. Por lo tanto, están esperando el uno al otro para renunciar al recurso. Esto da como resultado una espera interminable y, por lo tanto, se denomina «punto muerto».

Los procesos en un sistema operativo (distribuido o centralizado) y las transacciones de bases de datos son dos contextos comunes en los que pueden ocurrir interbloqueos. Los puntos muertos del sistema distribuido son más difíciles de evitar, prevenir o incluso detectar. Debido a que toda la información relevante se distribuye en varias máquinas, son difíciles de rastrear y curar. 

En los sistemas distribuidos, hay dos categorías principales de interbloqueos:

  • Interbloqueo de recursos: el interbloqueo de recursos se refiere al estado de interbloqueo cuando el recurso requerido por el primer proceso está bloqueado por el segundo y el recurso requerido por el segundo proceso está bloqueado por el primer proceso. Entonces, el estado de espera es indefinido entre ellos, lo que resulta en un punto muerto.
  • Punto muerto de comunicación : en los sistemas distribuidos, el punto muerto de comunicación se refiere a un estado en el que los procesos están esperando los mensajes para iniciar la ejecución.

Diferencia entre interbloqueo de recursos y interbloqueo de comunicación en un sistema distribuido:

Sr. Nusedo. Parámetro Interbloqueo de recursos Punto muerto de comunicación
1.  Definición Interbloqueo de recursos se refiere al estado de interbloqueo cuando el recurso requerido por el primer proceso está bloqueado por el segundo y el recurso requerido por el segundo proceso está bloqueado por el primer proceso.  En los sistemas distribuidos, el interbloqueo de la comunicación se refiere a un estado en el que los procesos están esperando los mensajes para iniciar la ejecución.
2.  Ejecución Un proceso no puede comenzar a ejecutarse hasta que obtenga todos los recursos que está esperando. Un proceso no puede comenzar a ejecutarse hasta que pueda comunicarse con uno de los procesos que está esperando.
3.  Esperando Aquí, los procesos esperan los recursos. Aquí, los procesos esperan los mensajes.
4. Conjunto de procesos El conjunto de procesos tiene un punto muerto de recursos si cada proceso del conjunto desea recursos que está utilizando otro proceso del conjunto y debe obtener todos los recursos necesarios para desbloquearse. El conjunto tiene una comunicación en interbloqueo si cada proceso del conjunto está esperando para comunicarse con otro proceso del conjunto, y ningún proceso del conjunto inicia más comunicación hasta que recibe la comunicación que está esperando.
5. Condición para la ejecución La condición AND también se puede utilizar para reflejar el hecho de que el proceso solo se ejecutará si tiene todos los recursos necesarios. Debido a que requiere al menos uno de los recursos para continuar su proceso, se puede describir usando condiciones OR.
Diagram of Resource Deadlock

 

Por ejemplo, un sistema tiene dos procesos P1 y P2 y para la ejecución de estos procesos se requieren recursos R1 y R2. En este escenario, el proceso P1 tiene el recurso R1 y espera adquirir el recurso R2 mientras que el proceso P2 tiene el recurso R2 y espera adquirir el recurso R1. Ambos Procesos están esperando el uno al otro para liberar los recursos después de su finalización. Por lo tanto, se produjo un interbloqueo de recursos.

Diagram of Communication Deadlock

 

Por ejemplo, un sistema tiene tres procesos, a saber, P1, P2 y P3. Aquí, un proceso espera a que otro proceso en un grupo de procesos se comunique con él. El proceso P1 está esperando recibir un mensaje del proceso P2, el proceso P2 está esperando recibir un mensaje del proceso P3 y el proceso P3 está esperando recibir un mensaje del proceso P1, por lo tanto, ninguno de ellos podrá ejecutarse y alcanzar un estado de desbloqueo. . Por lo tanto, se produce un punto muerto en la comunicación.

Condiciones necesarias para interbloqueo en sistema distribuido:

Las siguientes son las condiciones necesarias y suficientes para un interbloqueo en un sistema distribuido. Estas condiciones también se conocen como condiciones de Coffman .

  • Exclusión mutua: esta condición implica la existencia de al menos un recurso en el sistema que puede ser utilizado por un solo proceso en un momento dado. Ejemplo: impresora como un recurso que solo puede ser utilizado por un proceso a la vez. Si no existe tal recurso en el sistema, no se producirá un interbloqueo. Otro ejemplo ilustrativo se muestra a continuación, es si a un proceso P1 se le asigna el recurso R1 en un instante de tiempo particular, entonces el proceso P2 no puede usar ese recurso R1 simultáneamente con el proceso P1.
Mutual Exclusion

 

  • Retener y esperar: esta condición implica la existencia de un proceso que retiene algunos recursos y espera otro que está en manos de algún otro proceso en el sistema. Por ejemplo, si un proceso P1 tiene el recurso R1 y al mismo tiempo, puede solicitar otro recurso R2 que actualmente está asignado al proceso P2.
Hold and Wait

 

  • Sin preferencia: esta condición implica que los recursos, una vez asignados a un proceso, no se pueden quitar hasta que el proceso los libere voluntariamente. Por ejemplo, si un proceso P1 tiene el recurso R1 que requiere el proceso P2, entonces el proceso P2 no puede tomar ese recurso a la fuerza hasta que el proceso P1 lo libere voluntariamente.
  • Espera circular: esta condición se refiere a la espera de procesos de forma circular donde el último proceso espera el recurso que está en manos del primero. Por ejemplo, el proceso P1 está esperando el recurso R que actualmente tiene el proceso P2, el proceso P2 está esperando el recurso R que actualmente tiene el proceso P3, el proceso P3 está esperando el recurso R que actualmente tiene el proceso P4 y el proceso P4 está esperando el recurso R que está actualmente en manos del proceso P1. Esto se llama espera circular y se muestra a continuación.
Circular Wait

 

Nota: Las cuatro condiciones anteriores deben ocurrir simultáneamente para que se produzca un interbloqueo en el sistema.

Condiciones necesarias y suficientes para interbloqueo en sistema distribuido:

Si el gráfico tiene un ciclo dirigido, entonces hay interbloqueo. El estado de asignación de recursos se puede registrar fácilmente con un gráfico dirigido. En tal gráfico, hay n procesos y m recursos:

  • P 1 –> R 1   implica que el proceso P 1 solicita el recurso R 1
  • P 1 <– R 1 implica que el recurso R 1 se asigna al proceso P 1

Los gráficos de asignación de recursos también se pueden utilizar para la detección de interbloqueos. Si el gráfico no contiene ciclos, el sistema no está en un estado de interbloqueo. El interbloqueo existe si el grafo contiene ciclos y existe la disponibilidad de una sola instancia de cada proceso. Pero el estado de interbloqueo no está asegurado en caso de que exista la disponibilidad de múltiples instancias de cada proceso. Entonces, las condiciones necesarias y suficientes para el punto muerto en los sistemas distribuidos son las siguientes:

  •  Un ciclo es una condición necesaria para el interbloqueo en un sistema distribuido.
  • Si solo hay una sola unidad de cada tipo/instancia de recurso involucrada en el ciclo, un ciclo es una condición tanto necesaria como suficiente para que exista un interbloqueo.
  • Si uno o más de los tipos/instancias de recursos involucrados en el ciclo tienen más de una unidad, un nudo es una condición suficiente para que exista un interbloqueo.

Publicación traducida automáticamente

Artículo escrito por annieahujaweb2020 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *