FSP语言学习(一):对单个process建模

目录

一、什么是正式建模语言

1. 正式建模语言是进程代数

2. 为什么要使用正式建模语言

二、Finite State Processes

1. FSP的基本概念

2. FSP—the action prefix

3. FSP—choice

4. FSP—non-deterministic choice

5. FSP—indexed processes

6. FSP—constants and ranges

7. FSP—Process Parameters

8. FSP—guarded actions

9. FSP—the STOP process

10. FSP—Process Alphabets


一、什么是正式建模语言

1. 正式建模语言是进程代数

正式建模,像有Finite State Processes (FSP) 是一种建模语言,它基于Communicating Sequential Processes (CSP) 和 Calculus of Communicating Systems (CCS)。在这些语言中操作和推理表达式的规则称为进程代数(有时也称为进程演算)。

2. 为什么要使用正式建模语言

正式建模语言,例如FSP,具有定义良好的语法和语义,与编程语言非常相似。事实上,FSP具有比大多数编程语言更严格的语义定义。

首先,正式的建模语言有两个优点:

  • 它使我们的思维更加严谨。
  • 它为我们提供了分析我们的模型所需的严谨性。建模语言将模型与问题的物理环境相比较并以一种精确的方式进行权衡。

如果不使用正式建模语言,那我们对模型的描述就像再给我们的代码写注释一样,充斥着歧义和不完整的问题。

二、Finite State Processes

1. FSP的基本概念

一个进程是一个顺序程序的执行。进程在任何时间点的状态由程序员声明的显性变量的值和隐性变量组成,如程序计数器和数据/地址寄存器的内容。随着进程的执行,它通过执行语句来改变其状态。

每个语句由一个或多个原子动作(“alphabet”)的序列组成,这些原子动作会使状态发生不可分割的变化。原子动作的例子是加载和存储寄存器的不间断的机器指令。一个更抽象的过程模型,忽略了状态表示和机器指令的细节,只是把一个过程看作是有一个被不可分割的或原子性的动作修改的状态。每个动作都会导致从当前状态到下一个状态的转换。允许动作发生的顺序由过渡图决定,过渡图是程序的一个抽象表示。换句话说,我们可以将进程建模为有限状态机。

下图描述了一个有开和关动作的电灯开关的状态机。

我们使用以下的图表惯例。初始状态总是被编号为0,过渡总是按顺时针方向绘制。因此在图2.1中,开导致从状态(0)到状态(1)的转换,关导致从状态(1)到状态(0)的转换。这种形式的状态机描述被称为标记过渡系统(Labeled Transition System,LTS),因为过渡是用动作名称标记的。这种形式的图可以在LTS分析工具LTSA中显示。尽管这个过程的表示是有限的,但所描述的行为不一定是有限的。例如,上图的状态机允许以下的动作序列:

on → off → on → off → on → off → ...

状态机描述的图形形式对于简单的进程来说是非常好的;然而,对于大量的状态和转换来说,它变得难以管理(和难以阅读)。因此,我们引入了一个简单的代数符号,称为FSP(有限状态过程)来描述过程模型。每个FSP描述都有一个相应的状态机(LTS)描述。这一篇博客,我们将介绍FSP所提供的动作前缀和选择操作符。

总结一下:

FSP允许描述一个或多个独立运行的进程,但它们可能在不同点上同步。FSP中的每个流程模型都由一组可能发生在该流程中的原子动作(“alphabet”)和一个定义组成,该定义规定了系统中原子动作的合法序列。

每个进程,以及并发进程如何同步,都使用一组代数运算符来描述。

2. FSP—the action prefix

x -> P

x是一个动作,P是一个过程。上面的表达式描述了一个Process,它最初参与到动作x中,然后像P那样行动。

动作前缀操作符"\rightarrow"的左边总是有一个动作,右边是一个进程。在FSP中,以小写字母开头的标识符表示动作,以大写字母开头的标识符表示进程。下面的例子说明了一个过程,它参与了一次行动,然后停止。

ONESHOT = (once->STOP).

下图说明了ONESHOT的等效LTS状态机描述。它表明FSP中的动作前缀描述了相应状态机描述中的一个转换。STOP是一个特殊的预定义进程,它不参与任何进一步的行动,这在图中很清楚。进程的定义以". "结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值