Page 208 - 《软件学报》2021年第6期
P. 208
1782 Journal of Software 软件学报 Vol.32, No.6, June 2021
其中,SourceState 表示状态迁移之前的状态,目的状态 DestinationState 是状态 SourceState 在执行描述迁移后的
状态,guard 表示执行该状态迁移的前提条件,action 为执行该状态迁移后完成的动作.
本文在原行为附件基础上扩展时间与空间的相关因素.扩展后的 AADL 行为附件可表示为:
annex behavior_specification(extend)
{**
〈variables〉
〈states〉
〈times〉
〈positions〉
〈transitions〉
**}
我们在原行为附件的基础上增加了时间〈times〉与位置〈positions〉.〈times〉部分,共涉及 5 个时间变量:wait 为
执行该迁移的等待时间,即为使用 CPU 的时间;compute 为迁移的计算时间及迁移的持续时间,是任务被挂起或
中断的时间;ex_compute 为当前迁移的期望执行时间;ex_wait 为当前迁移的期望等待时间;worst_execute 表示该
行为附件计算的最坏执行时间,当执行模型端口被分配的时候可以获得.
我们在扩展中引入 3 个运算符.
• vara?varb:表示将变量 varb 的值赋给变量 vara,如 speed?v 表示将变量 v 的值赋给变量 speed;
• vara!varb:表示取出变量 vara 值放在 varb 中,如 v!speed 表示将变量 v 的值取出赋给变量 speed;
• |:该符号表示两个赋值动作互不影响,同时进行.
定义 2. 我们将包含时间与空间因素的行为附件定义为以下五元组:
ExAction:={Vars,States,Transition,Time,Position},
其中,
• Time:={wait,compute,ex_compute,ex_wait,worst_execute};
• Position:=(x,y,z),x~c|y~c|z~c,c 是一个实数,~∈{>,≥,<,≤,=},且三维坐标 x,y,z 按照ϕ(x),ϕ(y),ϕ(z)的微分
方程变化.
该过程中涉及的赋值动作为 action,接下来我们用 act 代替:
Trans_sequence:=SourceState[〈act 1 〉〈guard〉]→{DesS 1 [{〈act 2 〉}],DesS 2 [{〈act 3 〉}],...,error]},
其中,
• {DesS 1 [{〈act 2 〉}],DesS 2 [{〈act 3 〉},...,error]}为迁移序列,当 DesS 1 在 ex_wait 时间未响应,则会执行迁移到
状态 DesS 2 ;DesS 2 未在期望等待时间响应,则执行迁移至状态 DesS 3 .以此类推,直到执行迁移到最后一
个 error 状态,进行容错处理;
• act i :=act.act 进行系统变量、时间变量与位置变量的赋值操作以及输入/输出操作,act i ∈{act 1 ,act 2 ,
act 3 ,…};
• guard:=con∨(wait~ex_wait)∨(compute~ex_compute).~∈{>,≥,<,≤,=}.guard 表示执行该迁移的前提条
件,如果 wait 在指定等待时间 ex_wait 没有执行当前迁移,或执行时间 compute 不满足当前 ex_compute
值,或 con 中有条件不满足,则迁移至迁移序列的下一个状态直至迁移至容错状态 error;
• error 为错误状态,并执行预定的处理异常的操作进行容错处理.
1.3 AADL组件的物理附件的扩展
对 AADL 的物理组件进行扩展,从而对 CPS 中的物理行为进行建模,实现物理设备之间的通信.对传感器和
执行器的连续行为建模可以作为抽象组件实现.
定义 3. 物理设备的混成附件定义为以下五元组:
PY:={process,var,interface,time,position},