20、基于成对组合的大型并发程序合成

基于成对组合的大型并发程序合成

在并发编程领域,合成大型并发程序是一项具有挑战性的任务。本文将介绍一种通过成对组合来合成大型并发程序的方法,包括相关定义、合成方法的正确性、死锁避免、活性保证等方面,并通过读者 - 写者问题和两阶段提交协议两个示例进行说明。

1. 成对合成定义

首先,我们定义了 I 进程 $P_{I}^{i}$($i \in {i_1, \ldots, i_K}$)是如何从成对进程 $P_{j}^{i}$($j \in I(i)$)派生而来的。

$P_{I}^{i}$ 包含一条从 $s_i$ 到 $t_i$ 的弧,其标签为 $\otimes_{j \in I(i)} \oplus_{\ell \in [1:n_j]} B_{j}^{i,\ell} \to A_{j}^{i,\ell}$,当且仅当对于所有 $j \in I(i)$,$P_{j}^{i}$ 包含一条从 $s_i$ 到 $t_i$ 的弧,其标签为 $\oplus_{\ell \in [1:n_j]} B_{j}^{i,\ell} \to A_{j}^{i,\ell}$。

I 程序的初始状态集 $S_{0}^{I}$ 是从成对程序的初始状态集 $S_{0}^{ij}$($(i, j) \in I$)派生而来的,具体为 $S_{0}^{I} = {s | \forall (i, j) \in I : s^{\uparrow ij} \in S_{0}^{ij}}$。

这里,$\otimes$ 是受保护命令的“合取”。例如,$B_1 \to A_1 \otimes B_2 \to A_2$ 的操作语义是,如果两个保护条件 $B_1$ 和 $B_2$ 都评估为真,则主体

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值