Requisito previo: Detección de interbloqueos en sistemas distribuidos
En el algoritmo de detección de interbloqueos jerárquicos, los sitios se organizan de forma jerárquica y un sitio detecta interbloqueos que involucran solo a sus sitios descendientes. Los algoritmos de puntos muertos distribuidos delegan la responsabilidad de la detección de puntos muertos en sitios individuales, mientras que en la jerarquía hay detectores locales en cada sitio que comunican sus gráficos de espera local (WFG) entre sí.
Enfoque:
los interbloqueos que son locales para un solo sitio se detectan en ese sitio utilizando su WFG local. Cada sitio también envía su WFG local al detector de puntos muertos en el siguiente nivel. Por lo tanto, los interbloqueos distribuidos que involucran 2 o más sitios serían detectados por un detector de interbloqueos en el nivel más bajo que tiene control sobre estos sitios.
En este enfoque, hay 2 métodos para detectar:
1. Algoritmo Ho-Ramamoorthy:
- Utiliza solo dos niveles, es decir, Nodes de control maestro y Nodes de control de clúster.
- Los Nodes de control de clúster se utilizan para detectar interbloqueos entre sus miembros y reportar dependencias fuera de su clúster al Node de control maestro.
- El Node de control maestro es responsable de detectar interbloqueos entre clústeres.
2. Algoritmo de Menasce-Muntz:
- Los controladores de hoja son responsables de asignar recursos, mientras que los controladores de rama encuentran puntos muertos entre los recursos que sus hijos distribuyen en el árbol.
- La congestión de la red se puede gestionar y la falla del Node es menos crítica que en un sistema completamente centralizado.
- La detección se puede realizar de formas tales como informes de asignación continuos o informes de asignación periódicos.
ventajas:
- Si la jerarquía coincide con el patrón de acceso a los recursos local para el grupo de sitios, este enfoque puede proporcionar una detección de puntos muertos eficiente en comparación con los métodos centralizados y distribuidos.
- Reduce la dependencia de los sitios centrales, reduciendo así el costo de comunicación.
Desventajas:
- Si los interbloqueos se extienden sobre varios clústeres, este enfoque será ineficiente.
- Es más complicado de implementar e implicaría una modificación no trivial de los algoritmos del administrador de transacciones y bloqueos.