自动合成异步通信机制与历史依赖Petri网
自动合成异步通信机制
在自动合成异步通信机制(ACM)方面,我们可以从Petri网模型生成实现代码。合成方法主要包含以下步骤:
1. 创建共享内存 :创建一个大小为所需ACM大小的数组作为共享内存。
2. 声明和初始化布尔变量 :对于模型中的每个位置p,声明一个名为vp的布尔变量,并使用其初始标记的值进行初始化。如果p属于外部位置(EXT),则实际上它将由其他进程初始化,因为此时vp被视为属于另一个进程的外部变量。
3. 映射转换为if语句 :对于模型中的每个转换t,将其映射为一个if语句。当t的所有输入变量都为真时,该语句的条件为真。语句的主体包括将t的输入位置的值切换为假,输出位置的值切换为真。如果t表示访问操作,则还需要在if语句的主体中添加向共享内存写入(或读取)新数据项的操作。
为了执行上述步骤,我们使用模板来定义ACM源代码的基础,然后填充一些空白。这些空白包括:声明给定大小的共享内存、声明控制变量以及合成控制对ACM访问的代码。
以下是控制变量声明和初始化的算法:
Algorithm 2. Control variables declaration and initialization
1: for all p ∈P do
2:
if p ∈LOC then
3:
Declare p as a local Boolean variable
4:
Initi
超级会员免费看
订阅专栏 解锁全文
32

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



