分布式系统死锁检测算法研究与实践
1. 引言
在分布式系统中,死锁检测是一个至关重要的问题。不同的算法被提出用于解决这一问题,各有其特点和适用场景。本文将介绍几种死锁检测算法,并详细阐述 2 - Vagabonds 算法的原理、实现和实验结果。
2. 相关算法概述
- 偏好未知死锁路径的函数 :有人提出了一种偏好通向未知死锁路径的启发式函数,用于 CCS 规范。不过,CCS 的同步形式在建模分布式系统时存在不足。
- Greedy 算法 :Gradara 等人提出了类似 A 的 Greedy 算法,使用非可采纳启发式,能比 A 更快地找到较短(但非最优)的反例。
- 遗传算法(Genetic Algorithm) :该算法将执行路径生成为染色体,基因是节点间转换的选择。在评估转换时,它面临与 ACO 和 A* 类似的问题。
3. 2 - Vagabonds 算法
3.1 总死锁检测
总死锁检测仅需一个“流浪者”,规则如下:
1. 从初始配置构建路径,路径由通过动作连接的配置组成,动作从当前配置的可用动作中随机选择。在配置 T 中,若 {m, p} ⊆ T,则动作 (m, p)K(m’, p’) 可用。
2. 若到达死锁配置,算法停止。
3. 若发现路径中已存在的配置,即出现循环,随机截断路径中的若干配置。从截断路径的最后一个配置开始,随机选择动作,但排除最近使用过的动作。若该配置只有
超级会员免费看
订阅专栏 解锁全文
69

被折叠的 条评论
为什么被折叠?



