FSP 最重要基层 语法/用途总结 (FSP (1))

本文介绍了FinitestateMachines(FSP)中的LabelledTransitionSystem(LTS)在软件建模中的应用,特别是用于检测并行程序中的死锁问题。通过原子操作(Atomicactions)和字母表(Alphabet)的定义,LTS可以模拟所有可能的行为,而LTSA工具则帮助可视化这些状态图。
摘要由CSDN通过智能技术生成

介绍:

Finite state machines(FSP),主要用于对于软件的建模。本文主要介绍的实现FSP的系统为:LTS(labelled transition system)。所有的FSP流程都有一个期对应的LTS模型。

其主要目的为给并行程序建模,给建模好的并行程序检测死锁等问题。可以为程序员发现那些不容易直接通过肉眼直接辨别的问题。

建模程序下载链接:LTSA - Labelled Transition System Analyser

LTS:

与现实不同,LTS模拟的系统不会强调这个信号灯的timing,它只会展示这个信号灯被允许的运行顺序。我们需要从系统中抽象出这样的顺序。由于要展现出一个系统中可能发生的所有行为,所以这个模型会非常的庞大。一个只有11个statement的LTS系统就能生成出一个非常庞大的图像:

由于其会模拟所有行为,自然可以发现那先隐藏的错误。

FSP建模并行程序:

FSP 系统允许多个porcess同时互不干扰的运行,单这些程序可以在某些地方进行同步,并行处理。(模拟现实中多核对资源的操作)

每一个FSP process model有一系列 Atomic actions(不可分割的操作单元),也叫alphabet。这个process需要对这些actions进行定义和排列,给他们设定一系列必须遵守的action运行顺序。所有的process都有这些Alphbet组成。

alphabet 建模语法:

action perfix(行动前缀): '->' 

这个行动前缀左边为行动名(action),右边为将要到达的下一个行程(process)。这个alphabet里,左边的x为行程名,->为行动前缀,P为之个系统之后会进行处理的流程(process)。

举例:

        在信号灯系统中:LTS语句为

在这例子中,green代表一个atomic action,->为这个atomic action和它之后要进行的流程都连接符。他之后要进行的流程为yellow->red->TRAFFIC_LIGHT。之后的流程中的TRAFFIC_LIGHT为整个流程的名字,代表着这个流程将会从头开始再做一个循环,

Atomic action用小写英语表示,process name用大写表示。

上面就是最重要的基础语法。对这个语法进行扩展,也可以把上面的式子写成下面这个样子:

这就是把几个Atomic action总结成了一个单独的流程,这样其他流程就可以引用它,从而进行更精细的定义。

使用LTSA来实现:

打开上面链接的软件,输入这些代码,最终就可以用画图来实现这样的state图:

  • 39
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值