无阻塞事务内存(Obstruction-Free TMs)技术解析
1. 锁基事务内存(Lock-Based TMs)的局限性
锁基事务内存(Lock-Based TMs)的基本算法概念简单,实现轻量,能提供一定的活性保证,如操作的无等待性和强进展性。然而,它对进程崩溃缺乏弹性。例如,当进程 p1 执行更新所有事务变量(t-variables)的事务 T1,在获取所有锁后停止活动,其他进程尝试执行事务时,由于锁未释放,这些事务会被强制中止,导致所有事务的进展受阻。即便进程只是长时间延迟,在其恢复执行并释放锁之前,其他事务也无法提交。这表明在异步系统中,一个进程可能会任意延迟其他进程的进展。
2. 无阻塞事务内存(OFTMs)的引入
为了实现事务的独立进展,无阻塞事务内存(OFTMs)应运而生。直观地说,OFTMs 保证每个单独执行的事务(即并发事务被暂停或崩溃时)能够取得进展。常见的 OFTM 实现包括 DSTM、WSTM、ASTM、RSTM、NZTM 和 MM - STM 等。
3. 无阻塞性与强进展性的区别
强进展性的保证依赖于事务间的冲突数量。若进程 pi 执行的事务 Tk 对某个事务变量 x 进行写操作,那么在 Tk 提交或中止之前,它会持续在 x 上引发冲突。若进程 pi 在执行 Tk 时崩溃,Tk 可能会永远引发冲突。而无阻塞性的保证依赖于活动事务(持续执行步骤的事务)之间的竞争程度。进程崩溃会减少竞争源,从而可能促进其他进程的进展。
4. 无阻塞性的潜在问题与应对策略
无阻塞性在事务并发执行时无法提供保证,可能导致两个并发事务相互阻止对方无限期提交,即出现活锁。但在实际应用中
超级会员免费看
订阅专栏 解锁全文
682

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



