同步通信中的会合算法与分布式终止检测
1. 非确定性选择的会合算法
在某些应用场景中,发送方进程可能想与预定义进程集合中的任意接收方进程进行带截止时间的会合,或者接收方想与预定义集合中的任意发送方进行会合。这里我们主要探讨多个发送方和一个接收方的情况。
发送方进程 (p_1,p_2,\cdots,p_n) 和接收方进程 (q) 各自定义了自己的截止时间。当发送方 (p_i) 调用 timed_send(m, deadline_i) 操作时,会向接收方 (q) 发送消息 MSG(m, deadline_i) 。接收方 (q) 收到消息后,需要从多个发送方中选择一个进行会合。
接收方 (q) 做出决策的核心在于一个谓词。设 (\mu_q) 是接收方 (q) 接收到发送方 (p_i) 消息 MSG(m, deadline_i) 的时间。为了确保会合的一致性,需要满足 (\mu_q + \delta + \theta \leq deadline_i)。如果该谓词为假,(q) 不会向 (p_i) 发送 COMMIT() 消息。
以下是具体的算法:
operation timed_send(m,deadlinei) to q is
% invoked by pi %
(1) send MSG(m,deadlinei) to q;
(2) within deadlinei do
(3) when COMMIT() is received from q do return
超级会员免费看
订阅专栏 解锁全文
30

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



