23、无阻塞并发的模块化终止验证

无阻塞并发的模块化终止验证

1. 共享数据结构的区域类型定义

为了处理共享数据结构,我们定义了区域类型 TStack 。该类型由栈的地址进行参数化,其抽象状态包含栈中的节点列表 ns 、已弹出节点的集合 ds 以及一个序数 α TStack 区域类型的解释如下:

I(TStackr(x, ns, ds, α)) ≜∃y. x →y ∗stack(y, ns, ds)

我们使用单个防护 G 来赋予线程对栈进行压入和弹出操作的权限。转换系统如下:

G : ∀n, v, ns, ds, α, β < α. (ns, ds, α) ⇝((n, v) : ns, ds, β)
G : ∀n, v, ns, ds, α. ((n, v) : ns, ds, α) ⇝(ns, (n, v) ⊎ds, α)

第一个操作允许我们将元素添加到栈顶,第二个操作允许我们移除栈顶元素并将其添加到已丢弃节点的集合中。空栈的弹出操作没有显式的转换,因为该操作不会改变抽象状态。

需要注意的是,对于每个转换 (ns, ds, α) ⇝(ns′, ds′, α′) ,都有 2·α + |ns| > 2 · α′ + |ns′| 。压入操

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值