Un interbloqueo es una situación en la que un conjunto de procesos están bloqueados porque cada proceso está reteniendo un recurso y esperando otro recurso ocupado por algún otro proceso. Cuando surge esta situación, se conoce como Deadlock.
Un sistema distribuido es una red de máquinas que pueden intercambiar información entre sí mediante el paso de mensajes. Puede ser muy útil ya que ayuda a compartir recursos. En tal entorno, si no se controla la secuencia de asignación de recursos a los procesos, puede producirse un interbloqueo. En principio, los interbloqueos en los sistemas distribuidos son similares a los interbloqueos en los sistemas centralizados. Por lo tanto, la descripción de interbloqueos presentada anteriormente es válida tanto para sistemas centralizados como distribuidos. Sin embargo, el manejo de interbloqueos en sistemas distribuidos es más complejo que en sistemas centralizados porque los recursos, los procesos y otra información relevante están dispersos en diferentes Nodes del sistema.
Tres estrategias comúnmente utilizadas para manejar interbloqueos son las siguientes:
- Evitación: los recursos se asignan cuidadosamente para evitar puntos muertos.
- Prevención: se imponen restricciones sobre las formas en que los procesos solicitan recursos para evitar interbloqueos.
- Detección y recuperación: se permite que ocurran interbloqueos y se utiliza un algoritmo de detección para detectarlos. Después de que se detecta un interbloqueo, se resuelve por ciertos medios.
Tipos de interbloqueo distribuido:
Hay dos tipos de interbloqueos en el sistema distribuido:
Bloqueo de recursos: se produce un bloqueo de recursos cuando dos o más procesos esperan de forma permanente los recursos que tienen entre sí.
- Un proceso que requiere ciertos recursos para su ejecución, y no puede continuar hasta que haya adquirido todos esos recursos.
- Sólo procederá a su ejecución cuando haya adquirido todos los recursos necesarios.
- También se puede representar usando la condición AND , ya que el proceso se ejecutará solo si tiene todos los recursos necesarios.
- Ejemplo: el proceso 1 tiene R1, R2 y solicita recursos R3. No se ejecutará si falta alguno de ellos. Procederá solo cuando adquiera todos los recursos solicitados, es decir, R1, R2 y R3.
Bloqueo de comunicación: Por otro lado, un bloqueo de comunicación ocurre entre un conjunto de procesos cuando están bloqueados esperando mensajes de otros procesos en el conjunto para comenzar la ejecución pero no hay mensajes en tránsito entre ellos. Cuando no hay mensajes en tránsito entre ningún par de procesos en el conjunto, ninguno de los procesos recibirá un mensaje. Esto implica que todos los procesos del conjunto están interbloqueados. Los interbloqueos de comunicación se pueden modelar fácilmente mediante el uso de WFG para indicar qué procesos están esperando para recibir mensajes de qué otros procesos. Por lo tanto, la detección de interbloqueos de comunicación se puede realizar de la misma manera que para los sistemas que tienen solo una unidad de cada tipo de recurso.
- En Modelo de Comunicación, un Proceso requiere recursos para su ejecución y procede cuando ha adquirido al menos uno de los recursos que ha solicitado.
- Aquí recurso representa un proceso con el que comunicarse.
- Aquí, un Proceso espera comunicarse con otro proceso en un conjunto de procesos. En una situación en la que cada proceso en un conjunto está esperando para comunicarse con otro proceso que a su vez está esperando para comunicarse con algún otro proceso, esta situación se denomina punto muerto de comunicación.
- Para que 2 procesos se comuniquen, cada uno debe estar en estado desbloqueado.
- Se puede representar usando condiciones OR ya que requiere al menos uno de los recursos para continuar su Proceso.
- Ejemplo: en una red de sistema distribuido, el proceso 1 intenta comunicarse con el proceso 2, el proceso 2 intenta comunicarse con el proceso 3 y el proceso 3 intenta comunicarse con el proceso 1. En esta situación, ninguno de los procesos se desbloqueará y se produce un punto muerto de comunicación.
Publicación traducida automáticamente
Artículo escrito por vaibhavpatel1904 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA