56、节俭通用构造算法与知识感知分块算法解析

节俭通用构造算法与知识感知分块算法解析

1. TLC算法基础与正确性证明

TLC算法中,CAS的初始值为 -1,这意味着信息以序号 -1 和完成状态进行编码。所有进程最初会竞争序号为 0 的第 0 轮。若CAS中编码的序号为 k,则系统处于第 k 轮。
- 系统按轮次推进 :系统按轮次推进,每轮CAS中的序号增加 1。假设系统处于第 k 轮,即CAS中的序号为 k。必然存在一个进程 p 在第 30 行获取相应的序号轮次,并尝试在第 31 行将其值赋给 History[k]。这意味着准备阶段最终会完成,系统将转向帮助阶段。在帮助阶段,每个进程将调用写入 History[k],然后将系统更新为完成状态。因此,帮助阶段最终会完成,系统将进入下一轮,序号增加 1。
- TLC算法无锁 :由于系统总是在推进,所以TLC算法是无锁的。
- 每轮唯一调用 :对于每一轮 k,History[k] 只会被分配一个唯一的调用。因为系统按轮次推进,对于每一轮 k,History[k] 必须在第 24 行更新。但每个进程可能在第 30 行写入 History[k]。假设 History[k] 首次被分配值 v,在这之前,SubHistory[p][k] 必须已经被分配 v,并且在整个执行过程中仅在第 29 行分配一次。后续对 History[k] 的每次写入都是 SubHistory[p][k] 的副本,由于 SubHistory[k] 只被写入一次,所以该引理得证。
- 进程按相同顺序执行调用 :所有进程按照 History 数组中出现的顺序运行调用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值