分布式系统原理---CBCAST算法

ISIS中定义了三种通信原理ABCAST,CBCAST,GBCAST。ABCAST提供松散同步通信,用于向组成员传送消息;CBCAST提供虚拟同步通信,也用于向组成员传送消息;GBCAST与ABCAST类似,用于管理组内成员而不传送普通数据。

由于分布式考试的需要,这篇bolg主要结合考试题介绍CBCAST算法的主要解题步骤。

对于CBCAST算法而言,决定各个进程对到来的消息是接收还是等待,如果同时满足以下两个条件就是接收,否则等待:

假设 V_{i} 是发送方向量中的地 i 位,L_{i} 是接收方向量的第 i 位,假设消息由 j (进程j)发送:

(1)需要满足 V_{j} = L_{j} + 1 ;

(2)对所有的 i<>j (i\neq j),有 V_{i}\leq L_{i} 。

eg1:对于下列表格表示的进程,由进程1向其他的进程发送消息,此时刻,哪些进程需要等待,哪些进行可以接收消息。

解:对于此题,需要分别分析两个条件是否满足。

对于条件(1):消息由进程1发送,则首先需要满足 V_{1} = L_{1} + 1

也就是对于每个进程的第一维数据(4,3,3,3,2,3)而言,4=3+1,所以可以看出进程5不能接收消息,需要等待,其余进程均满足条件(1)。

对于条件(2):消息由进程1发送,则需要满足 i\neq j (即所有进程排除第一维数据),有 V_{i}\leq L_{i} 

所以对于1-6这几个进程而言,排除第一维数据后,其余的数据都需要比进程1的各维数据相等或更大,所以可以看出对于进程3而言5<6,所以进程3不能接收消息,需要等待。

综上两个条件,进程3,5需要等待,其余进程均可同时满足条件(1)(2),所以可以接收进程1发送的消息。

eg2:

对于此题,类比上面的解法,就是进程1,4,5需要等待;3,6可以接收消息。

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

楊木木8023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值