33、原子对象实现与共享内存快照算法解析

原子对象实现与共享内存快照算法解析

1. 读写变量实现读写修改原子对象

在共享内存模型中,使用读写共享变量实现读写修改(Read-Modify-Write,RMW)原子对象是一个关键问题。如果不考虑容错,有简单的解决方案,如RMWfromR W算法:
- 将实现对象对应的RMW变量的最新值存于读写共享变量x中。
- 进程使用一组不同于x的读写共享变量,执行无锁互斥算法的尝试部分(如PetersonNP算法),以对原子对象进行操作。
- 当进程i进入互斥算法的临界区时,获得对x的独占访问权,先读再写完成RMW操作,最后执行互斥算法的退出部分。

然而,该算法不具备容错性,若进程在临界区失败,会阻止其他进程访问模拟的RMW变量。实际上,即使只容忍单个故障,也不存在使用读写共享变量实现RMW原子对象并保证1 - 故障终止的共享内存系统。

下面是相关证明的简要流程:
1. 假设存在这样的系统B。
2. 有RMWAgreement算法A,它在RMW共享内存模型中保证无等待终止,从而保证1 - 故障终止。
3. 对A应用转换,用B替换A中的单个共享RMW变量,得到系统Trans(A)。
4. 证明Trans(A)能解决一致性问题并保证1 - 故障终止,但这与读写共享内存模型中无法实现带1 - 故障终止的一致性算法相矛盾。

2. 共享内存的原子快照

在读写共享内存模型中,进程若能对共享内存的整个状态进行瞬时快照将非常有用,但该模型本身不直接提供此功能。下面将介绍如何实现这种快照,即快照原子对象。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值