异步网络算法中逻辑时间的添加与应用
在异步网络算法中,逻辑时间的引入为解决诸多问题提供了有效的途径。本文将详细介绍两种为异步发送/接收网络算法生成逻辑时间的算法变换,以及逻辑时间在异步网络算法中的一些简单应用。
为异步算法添加逻辑时间
为给定的异步发送/接收网络算法 A 的事件生成逻辑时间,有两种算法变换方法,这两种变换都可修改后用于广播系统。
LamportTime 变换
LamportTime 变换基于维护本地时钟,在接收到消息时推进时钟以保持充分同步。逻辑时间域 T 是由非负整数 c 和进程索引 i 组成的对 (c, i) 的集合,对的排序是字典序。
-
具体实现 :
- 进程 LamportTime(A)i 维护进程 Ai 的状态,以及一个初始值为 0 的本地变量 clock,该变量在进程 i 发生的每个事件(包括用户界面事件、发送和接收事件以及内部事件)时至少增加 1。
- 任何事件的逻辑时间定义为事件发生后 clock 变量的值,再加上进程索引 i 作为平局决胜。
- 当进程 i 执行发送事件时,先增加其 clock 变量以获得发送事件的时钟值 v,然后将值 v 作为时间戳附加到发送的消息上。
- 当进程 i 执行接收事件时,将其 clock 变量增加到不仅严格大于其先前的值,而且严格大于消息的时间戳。新的时钟值被分配给接收事件。
-
代码实现 :
超级会员免费看
订阅专栏 解锁全文

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



