基于读写寄存器的对象重命名方法解析
在分布式系统中,对象重命名是一个重要的问题,它涉及到如何为参与的进程分配新的唯一名称。本文将介绍几种基于读写寄存器的对象重命名实现方法,包括基于分割器的重命名、基于快照的最优大小自适应实现以及递归存储 - 收集的大小自适应实现。
1. 基于分割器的重命名
1.1 基本原理
基于分割器的重命名方法中,每个分割器有不同的名称,且最多一个进程会在每个分割器处停止。正确进程调用 new_name() 操作会终止,并且不会有两个进程获得相同的新名称。
1.2 性质分析
- 有效性 :新名称属于区间
[1..p(p + 1)/2],这是由于分割器的名称静态分配是对角线分配。 - 索引独立性 :
new_name()和direction()代码中都不使用索引,因此满足索引独立性。 - 时间复杂度 :每次调用
direction()最多对原子读写寄存器进行 4 次访问,一个进程最多经过 p 个分割器,所以new_name()调用最多对原子寄存器进行 4p 次访问,时间复杂度为 O(p),这对于 p 个参与进程是最优的。
2. 基于快照的最优大小自适应实现
2.1 内部表示
重命名对
超级会员免费看
订阅专栏 解锁全文
60

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



