云环境中的并发技术与线程协调
1. 因果传递与时钟条件
在云环境的并发系统中,因果传递是一个重要的概念。消息在时间 t 被传递时,需保证顺序性,且时间戳低于已传递消息的未来消息不会到达。对于不同进程中的任意两个事件 e 和 e′,需满足时钟条件:
[e \to e′ \Rightarrow RC(e) < RC(e′), \forall e,e′]
为了从事件的时间戳推断因果优先关系,还需定义强时钟条件,即因果优先和时间戳顺序之间的等价关系:
[\forall e,e′, e \to e′ \equiv TS(e) < TS(e′)]
因果传递之所以重要,是因为它允许进程仅使用本地信息来推断整个系统的状态。但这仅适用于所有通信通道都已知的封闭系统,在存在隐藏通道的系统中,基于因果分析的推理可能会得出错误结论。
2. 运行与切割;因果历史
在分布式系统中,了解多个(可能是所有)进程的状态通常是必要的。例如,监控进程需要检测部分进程是否死锁,进程迁移或复制前需要与其他进程达成协议等。
为了构建系统的全局状态,可引入监控器的概念。监控器向每个进程发送请求以获取其本地状态信息,并收集回复来构建全局状态。直观地说,构建全局状态相当于对各个进程进行快照,然后将这些快照组合成一个全局视图。但只有当所有进程都能访问全局时钟且快照在同一时间拍摄时,这种组合才是直接可行的,即快照彼此一致。
- 运行(Run) :是分布式计算全局历史中所有事件的全序排列 R,与每个参与进程的本地历史一致。例如,对于三个进程,运行 (R1 = (e_1^1,
云环境并发技术与线程协调解析
超级会员免费看
订阅专栏 解锁全文
1811

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



