15、重命名与定向流形:理论与实践

重命名与定向流形:理论与实践

1. 引言

想象一下,有 (n + 1) 架飞机在大西洋上各个方向飞行。为了避免碰撞,每架飞机都需要被分配一个独特的高度(以千英尺为单位)。在集中式空中交通控制系统中,这个任务很简单,只需按航班号对飞机进行排序,然后将第 (i) 架飞机分配到第 (i) 个高度即可。

但如果我们希望飞机自己协调分配高度呢?这就是重命名任务:每架飞机最初有一个来自大命名空间的唯一名称(航班号),最终要获得一个来自较小命名空间的唯一名称(高度)。由于我们事先不知道哪些飞机参与,且通信可能会丢失或延迟,所以我们对异步协议感兴趣。为了便于说明,这里假设飞机通过某种共享读写内存进行通信。

2. 两架飞机的重命名问题

考虑两架飞机 (P0) 和 (P1) 的简单分层执行协议。它们共享一个初始全为 (\perp) 的数组。在每一层,每架飞机都会立即进行快照:先将其航班号写入内存,然后对内存进行快照。
- 如果一架飞机只看到自己的航班号,它选择 (1000) 英尺的高度。
- 如果一架飞机看到两个航班号,它会比较它们:
- 如果自己的号码小于另一个,它选择 (2000) 英尺。
- 否则,它选择 (3000) 英尺。

为什么两架飞机需要三个高度呢?假设 (Pi) 的航班号小于 (Pj)。如果 (Pi) 看到了 (Pj) 的航班号,那么 (Pj) 可能看到也可能没看到 (Pi) 的航班号。如果 (Pj) 没看到 (Pi) 的号码,它会选择 (1000) 英尺;如果看到了,它会选择 (3000) 英尺。所以 (Pi) 唯一安全的选择是 (2000) 英尺。

两架飞机能否在两个高度中选择

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值