PAT:过程分析工具包

一种用于并发和实时系统的增强模拟器、模型检查器和优化检查器

月度档案2009年5月

2009年6月2日:PAT 2.5.0发布!

PAT 2.5.0的新增功能

在此版本中,实时系统模块在PAT中实现,支持实时系统的建模和验证。对于用户界面,PAT增加了对I18N和新模型向导的支持。其他更新包括语言丰富、新GUI功能、新示例和错误修复。具体解释如下。

实时系统模块
在本模块中,我们研究了实时系统,这些系统是指定的组合定时进程。并行运行的定时进程可以通过共享内存或通道通信进行通信。不是显式地操纵时钟变量,而是使用一些定时行为模式来捕获定量的定时要求,例如延迟、超时、截止日期、等待时间、定时中断等。对于此类系统,模型检查算法可用于通过动态创建(仅在必要时)和修剪时钟变量(尽可能早)以及维护/解决对活动时钟的约束来动态探索所有系统行为。

与标准CSP过程原语相比,PAT中的实时系统模块添加了五个特定于时间的原语,即等待、超时、定时中断、截止日期和等待,如下所述。
注:5个原语中的时间值可以是带有全局常量/变量和过程参数的任意表达式。但这些表达式的实际值必须是整数。

1等待过程
等待进程wait[t]在时段t内不允许通信,然后终止。进程等待[t];P用于表示P被时间t延迟。

2超时过程
如果在某个截止时间t之前主进程P中没有发生任何事件,超时进程P超时[t]Q将控制权传递给异常处理程序Q。
具体来说,进程(a->P)超时[t]Q将尝试执行a->P,但如果a事件在时间t之前没有发生,则会将控制权传递给Q,这是从进程调用的角度衡量的。

3定时中断过程
进程P中断[t]Q表现为P,直到t个时间单位过去,然后切换到Q。

4截止日期流程
流程P截止日期[t]限制为在t个时间单位内终止。

5等待流程
waituntil操作符是截止日期的双重操作符。进程P waituntil[t]的行为与P相同,但不会在t个时间单位过去之前终止。如果P提前终止,它将一直空闲,直到t个时间单位过去。

CSP模块的语言丰富
1保护输入通道:
c?[x+y+9>10]x.y->P带有保护表达式的通道输入
对于通道输入c?[x+y+9>10]x.y,如果缓冲区不为空,则检索缓冲区上的顶部元素,然后将其分配给局部自由变量x和y,并且保护条件x+y+9>10为真。否则,它会等待。请注意,在通道输入中,可以在c?之后编写表达式?,但表达式不能包含任何全局变量。

2中断过程语法从P|>Q改为P中断Q,以便于理解。

3通用选择被添加到CSP和RTS模块中。一般选择由任何事件决定。外部选择仅由可见事件解决。

4条件选择,如果现在只为条件测试生成tau事件。我们添加了ifa(原子条件选择),它将执行条件测试和then或else的第一个事件原子化分支。

用户界面
1 I18N支持。PAT提供不同的用户界面语言:中文(简体)、中文(繁体)、英语、日语、德语和越南语。您可以在工具栏“查看”->“语言”下切换语言。系统将在下次启动时记住您的选择。如果有请求,将添加其他语言。

2新建模型向导。为了帮助用户快速开始构建模型,PAT提供了如下所示的“新建模型向导”。用户可以根据建模语言和模板的选择快速生成模型模板。
您可以在“新建”按钮的下拉列表中启动向导。

3在模拟器中,用户可以调整工具栏中工具提示弹出延迟:5s、10s、20s、40s、60s。

4 LaTex生成得到改进。PAT样式的文件PAT.sty现在可用。

5增加模型提交功能。用户可以通过单击“将模型提交给作者”按钮(在“另存为”按钮之后)来提交模型,从而为PAT项目做出贡献。

PAT控制台更新
1 PAT Concole增加了搜索深度选项。(FALCIONI DAMIANO要求)
2所有模块都增加了控制台界面。用户可以使用-csp、-rtm、-ws指定目标模块。

C#库更新
1在C#库中,方法可以为无效操作引发PAT运行时异常。
2 PAT Lib现在应该使用导入关键字包含在模型中,而不是自动包含所有库以提高性能。

其他
1用户手册更新至最新实施
2增加了安全协议示例。
3增加了三个定时CSP示例:铁路交叉口和费歇尔互斥协议,以及定时桥梁交叉口示例