Page 212 - 《软件学报》2021年第6期
P. 212

1786                                     Journal of Software  软件学报 Vol.32, No.6,  June 2021

         应,因此Σ T ⊆Σ (T,C,P) .当 p n =ε∧c n =true 时,Σ T =Σ (T,C,P) ,是 P HP-TCSP 到 P TCSP 的精化关系.
             那么,由定理 1 得,HP-TCSP 上所有与功能性质相关的模型检测都可以通过 TCSP 的模型检测工具完成.针
         对扩展的时空性质的一致性,需要进行时空一致性分析来判断是否满足时空一致性.在产生时空不一致时,进行
         一定的容错措施的处理.
         2.5   时空属性的分析

             HP-TCSP 的位置时间迁移系统是在 TCSP 的时间迁移系统上扩展位置因素而得到的,其状态空间可构造一
         个可达图 G.G:=(NODES,EDGES,TIMES,POSITIONS)其中,
             •   NODES={N i |N i 为进程执行的节点,0≤i≤n};
             •   EDGES={e(i,j)|表示从 N i 到 N j 的一条有向边,0≤i≤n,0≤j≤n,且 i≠j};
             •   TIMES={t(i,j)|表示从 N i 到 N j 边 e(i,j)上的时间,若从 N i 到 N j 没有边,则 t(i,j)=∞,0≤i≤n,0≤j≤n,且 i≠j};
             •   POSITIONS={〈dis(i,j),p(j)〉|〈dis(i,j),p(j)〉中包含两个元素,dis(i,j)表示边 e(i,j)从 N i 到 N j 经过的距离,若从
                N i 到 N j 没有边,则 dis(i,j)=∞,0≤i≤n,0≤j≤n,且 i≠j.p(j)=(x i ,y i ,z i )表示在节点 N j 时所处的位置,其中,
                x i ,y i ,z i 为位置的三维坐标}.
             对时空一致性的检验需要检查两个方面.一是行为模型端口分配时给出的最坏执行时间(worst-case
         execution time,简称 WCET)是否满足,以保证行为附件可以在期望的时间内完成任务;二是针对时空不一致问
         题的验证,即:在 t 时间本应该在 B 位置,而经过验证发现在 t 时间还处于 A 位置,此时的时空不一致问题将会产
         生严重的后果.
             对于第 1 个问题,本文针对状态空间图 G,首先判断 G 是否为规范的可达图,即,所有的状态空间的路径是否
         都可以在 WCET 时间内完成.本文通过一个深度优先的最坏时间可满足性检查算法判断 G 是否为规范的可达
         图.设定 max 的值为最坏执行时间,算法中设置 cur_path 存储当前已访问路径,abnormal 存储异常节点(即从 N 0
         到当前节点的迁移总时间不满足 WCET).该算法的输入是图 G,输出为图 G 是否为规范可达图:若是规范可达图,
         则该算法返回值为 true;否则,返回值为 false.最坏时间可满足性检查算法如图 3 所示.

           算法 1.  最坏时间可满足性检查算法.
           max:=WCET; abnormal:=∅; cur_path:={N 0}; totalt:=0;
           repeat
             ln:=last node in cur_path;   //取当前路径的最后一个节点

             if successor nodes of last node have been visited    //删除已经访问的子节点
               then delete last node of cur_path;
               totalt:=totalt-curr_t;  //删除最后一个节点时总时间减去相关的边
             else
               begin

                bn:=take a unvisited successor node of ln;  //取一个未被访问 ln 的孩子节点 bn

                totalt:=totalt+curr_t   //将当前路径与该孩子节点迁移边的时间加入 totalt
                result:=true;

                if totalt>max then result:=false;   //从源节点到当前节点 bn 之间的执行时间值大于最坏时间 max 时 result 值为 false
                if result=false
                  then abnormal:=abnormal∪{bn};   //如果 result 值为 false,将异常节点记下来
                else
                  cur_path:=cur_path∪{bn};
               end
           until cur_path=∅;
           if abnormal=∅ then
             return true;
           else return false;
                              Fig.3   Algorithm for checking the worst-time satisfyability
                                       图 3   最坏时间可满足性检查算法
             通过算法 1,当返回值为 false 时,说明图 G 并不是一个规范的可达图,图中存在执行总时间大于 totalt 的路
         径,此时删除仅属于 abnormal 节点所在路径的节点与边,从而可以获得一个规范的可达图 G′.接下来对规范可
         达图 G′的时空一致性进行检验(如图 4 所示).consist_abnormal 用来存放执行路径中产生时空不一致的异常节
   207   208   209   210   211   212   213   214   215   216   217