并发算法与内存模型的深入解析
1. 原子读写共享对象算法
在异步、易崩溃、消息传递的环境中,实现原子读写共享对象是一个重要的研究方向。这里有关于 Erato - mw 算法的相关内容。
1.1 引理与定理
- 引理 6 :在 Erato - mw 的任何执行 ξ 中,如果 ρ1 和 ρ2 是两个读操作,且 ρ1 先于 ρ2 执行(即 ρ1 → ρ2),ρ1 返回标签 tg1,那么 ρ2 返回的标签 tg2 满足 tg2 ≥ tg1。
- 定理 2 :算法 Erato - mw 实现了一个原子多写多读(MWMR)对象。下面从三个原子性条件 A1、A2 和 A3 来证明:
- A1 :对于任意 π1, π2 ∈ Π ,若 π1 → π2,则不可能有 π2 ≺ π1。具体情况如下表所示:
| π1 类型 | π2 类型 | 条件 | 结论 |
| ---- | ---- | ---- | ---- |
| 写 | 写 | π1 → π2 | 由引理 4 得 tgπ2 > tgπ1,根据顺序定义 π1 ≺ π2 |
| 写 | 读 | π1 → π2 | 由引理 5 得 tgπ2 ≥ tgπ1,根据定义 π1 ≺ π2 |
| 读 | 写 | π1 → π2 | 由引理 3 得 tgπ2 > tgπ1,根据顺序定义 π1 ≺ π2 |
| 读 | 读 | π1 → π2 | 由引理 6 得 tgπ2 ≥ tgπ1;若 tgπ2 > tgπ
- A1 :对于任意 π1, π2 ∈ Π ,若 π1 → π2,则不可能有 π2 ≺ π1。具体情况如下表所示:
超级会员免费看
订阅专栏 解锁全文

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



