[发明专利]基于树语义的异步动态下推网络可达性分析方法在审
申请号: | 201410470378.8 | 申请日: | 2014-09-16 |
公开(公告)号: | CN104267936A | 公开(公告)日: | 2015-01-07 |
发明(设计)人: | 钱俊彦;曾宇清;赵岭忠;郭云川;李凤英 | 申请(专利权)人: | 桂林电子科技大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 楼艮基 |
地址: | 541004 广*** | 国省代码: | 广西;45 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 基于树语义的异步动态下推网络可达性分析方法属于软件安全、可靠性技术领域,其特征在于将树语义引入到异步动态下推网络中,通过构建一个中间模型模拟模型的树语义,并采用上下文限界方法使模型的可达性为可判定,计算有限的k次上下文执行内的可达格局集合,通过计算可达格局集合与目标格局集合的交集是否为空,判断出目标格局集合是否可达,从而确定程序的抽象模型中是否存在设计错误或漏洞,保证模型的正确与可靠。 | ||
搜索关键词: | 基于 语义 异步 动态 下推 网络 可达性 分析 方法 | ||
【主权项】:
一种基于树语义的异步动态下推网络可达性的分析方法,其特征在于:是一种并发程序的软件可靠性、安全性的验证方法,是在计算机中依次按以下步骤实现的,步骤(1)、依次按以下步骤构造一个基于异步动态下推网络的并发程序中间模型,以便模拟树语义的执行方式,步骤如下:步骤(1.1)构造所述的异步动态下推网络的中间模型M,简称模型M,M=(G,P,Γ,△l,△g),其中:G是全局状态集合,P是局部状态集合,Γ是栈符号的集合,Γ*是Γ的幂集,表示栈符号的集合的幂集,格局(G,PΓ*)表示异步动态的格局集合,表示栈符号为幂集Γ*的局部状态集合P所对应的全局状态G的集合,(g,ργ)表示栈符号为γ的局部状态ρ所处的全局状态g,△l是局部迁移规则集合,包括以下迁移规则:
表示栈符号为γ的某一局部状态p经过迁移lp后转化为栈符号集合Γ*中的某一组栈符号w1所对应的局部状态ρ1;![]()
表示栈符号为γ的某一局部状态p经过局部迁移lp后转化为栈符号组中的第一组栈符号组w1所对应的局部状态ρ1和第二栈符号组w2所对应的局部状态ρ2,△g是全局迁移规则集合,包括以下全局迁移规则:
表示栈符号为γ的局部状态ρ所处的全局状态g经过迁移lg后转换为全局状态g'下第一栈符号组w1所对应的局部状态ρ1;![]()
示栈符号为γ的局部状态ρ所处的全局状态g经过迁移lg后同时转换为栈符号组的集合Γ*中的第一栈符号组w1所对应的局部状态ρ1和第二栈符号组w2所对应的局部状态ρ2;其中g,g'∈G,ρ,ρ1,ρ2∈P,γ∈Γ,w1,w2∈Γ*,当用C表示所述异步动态下推网络模型M的格局集合(G,PΓ*)时,C=(G,PΓ*),令(g,α)∈C,其中g为全局状态,α是全局状态g中由n个栈符号组wn各自所对应的一个局部状态ρn组成的一个字符串,α称之为所述异步动态下推网络模型M在某一时刻的格局相应的动态下推网络格局,步骤(1.2)、构造一个hedge‑自动机A,也称树篱式自动机,接收所述模型M在树语义下的执行序列,也称为执行树,用h表示,其步骤如下:步骤(1.2.1)定义:所述执行树h是所述模型中由局部迁移规则和全局迁移规则组成的迁移序列集合,所述迁移规则用
表示,在初始状态下,仅有单个线程TM时,迁移规则表示为
PΓ*>×TM×<g′,ConfN>,其中,×TM×表示“经过TM下推”,执行树是指从栈符号集合Γ*下的一个局部状态集合P所处的全局状态经过单个线程TM后下推到一个符号串ConfN所对应的动态下推网络格局α所处的全局状态g′时的迁移规则
所组成的迁移序列集合,同时含有大于一个线程TM时,迁移规则
表示从格局C出发通过执行一组执行树h迁移到新格局C′时的状态,表示为
其中h=t1,…,ti,..,tn,i指一组执行树h中迁移时的各个线程ti执行所对应的执行树,步骤(1.2.2)利用基于所述迁移序列的线程创建规则L来创建新的线程:对于只有一个孩子节点的非动态创建节点S2′,用非动态创建规则L2来创建新线程,新创建线程的迁移序列对应于所述非动态创建节点S2′左边的一部分执行树,右边的迁移序列则对应于原来的线程所对应的执行树,执行树h用树状的线程组TM表示:TM::=N L1TM|S L2TMTM|L<G,PΓ*>,其中TM为树状的线程集合;N L1TM为非动态创建节点,该节点只有一个孩子,创建规则用字母组合N L1表示,后继为一个新节点TM;S L2TMTM为动态创建节点,该节点有两个孩子,创建规则用字母组合S L2表示,后继为一个动态创建出的新线程TM和原来的线程TM;L<G,PΓ*>为叶子节点,其对应此线程运行终止时的格局,此时格局为<G,PΓ*>,所述中间模型就是这种树状执行模型,用于判别迁移所属的进程,其中L为线程一般迁移规则,L1对应非动态创建规则,L2为动态创建规则,步骤(1.2.3)依次按以下步骤用所述hedge‑自动机A创建执行树h步骤(1.2.3.1),设定:hedge‑自动机A=(S,A0,D),其中S为有限个全局状态的集合,S*是S的幂集;A0为一个的初始自动机,A0∈S*,用L(A0)表示自动机A0的接收的语言簇;D为规则集合,它包括叶子节点的迁移规则集合DL、非动态创建节点的迁移规则集合DN和动态创建节点的迁移规则集合DS,表示为D=DL∪DN∪DS,其中:叶子节点的迁移规则为s→A1∈DL表示,其中s∈S,A1是接收所有格局集合(G,(PΓ*)+)的自动机,非动态创建节点的迁移规则为
其中s∈S,s′∈S,l1∈L1,动态创建节点的迁移规则
表示,其中s,s′,ss∈S,l2∈L2,符号>表示从状态s同时迁移到状态s'和ss,步骤(1.2.3.2)按下述步骤判断执行树h是否被hedge‑自动机A接收,其中h=t1…,tm,...,tn,tm为全局状态为m的线程,tm∈TM*,步骤(1.2.3.2.1)判断执行树h是否被hedge‑自动机A的迁移规则集合D模拟,对执行树h的叶子节点而言:叶子节点的全局状态<g,pw>与hedge‑自动机A的全局状态s相对应时应满足规则:s→A1∈DL,表示为:
对各个非动态创建节点N L1TM而言:非动态创建节点N L1TM的状态与hedge‑自动机A的状态相对应时应满足规则:
并且满足hedge‑自动机A的全局状态s′与执行树t相对应,即labT(s′,t),上述条表示为:
其中t∈TM,l1∈L1,对各个非动态创建节点S L2TMTM而言:动态创建节点S L2TMTM的状态与hedge‑自动机A的状态相应时应满足规则:
并且在下推同时满足非动态创建节点的状态t与hedge‑自动机A的全局状态s相对应(即labT(s′,t)),以及动态创建节点的状态ts与hedge‑自动机A的全局状态ss相对应(即labT(ss,ts)),上述条件表示为![]()
其中t∈TM,l2∈L2,符号“=”表示等同于;符号“∧”表示以及,符号“>”表示同时,步骤(1.2.3.2.2)若满足步骤(1.2.3.2.1)所述的条件,则通过所述迁移规则集合D构造接收执行树h的hedge‑自动机A,hedge‑自动机A与所述执行树h的全局状态的各全局状态一一对应,表示为:
自动机A接收的语言簇L(A)表示为,![]()
为hedge‑自动机的所有状态集合,步骤(1.3)、把所述hedge‑自动机A的状态和对应异步动态下推网络模型M的局部状态相结合组成新的全局状态,实现迁移序列的树语义执行方式:步骤(1.3.1)构造一个异步动态下推网络模型M×A来实现迁移序列在树语义下的执行方式:M×A=(G,P×S,Γ,L,△l,△g),其格局集合表示为:
其中:ConfM×A表示所述模型M×A所对应的动态下推网络的格局集合,C′×A:={(g,(p1,s1)w1...(pn,sn)wn)|(g,p1w1...pnwn)∈C′∧
其中:si为序号为i的hedge‑自动机A的状态,步骤(1.3.2)所述模型M×A的全局迁移规则△g'定义如下:非动态创建规则:
表示结合后的模型M×A下从格局(g,(p,s)γ')迁移到格局(g',(p',s')w')时时必须满足
在模型M中成立,并且满足
在自动机A中成立,动态创建规则:
表示结合后的模型M×A下从格局(g,(p,s)γ')迁移到格局(g′,(p′,s′)w′)并动态产生新的局部格局(ps,ss)ws时必须满足
在模型M中成立,并且满足
在自动机A中成立,步骤(1.3.3)所述模型M×A的全局迁移规则△l'定义如下:非动态创建规则:
成立,当且仅当
成立,表示结合后的模型M×A下从局部格局(p,s)γ'迁移到局部格局(p',s')w'时时必须满足
在模型M中成立,并且满足
在自动机A中成立,动态创建规则:
表示结合后的模型M×A下从局部格局(p,s)γ'迁移到局部格局(p',s')w'并动态产生新的局部格局(ps,ss)ws时必须满足
在模型M中成立,并且满足
在自动机A中成立,其中:γ′,w′均为结合后的栈符号或栈符号组,步骤(2)、依次按下述步骤计算所述模型M×A的K个上下文内的正则逆向可达格局集合preM[H](C′),其中H为正则的执行树,C′为正则集合,
C′为异步动态下推网络的格局集合,preM[H](C′)表示所述异步动态下推网络模型M下从格集合局C′出发的正则逆向可达格局集合,preK,M[H](C′)表示模型M下从格局集合C′出发的K‑上下文限界正则逆向可达格局集合,其中:
C′=(g,α),α为hedge‑自动机A对应的动态下推网络格局,在该所述异步动态下推网络模型M×A中α=(p,s)γ,异步动态下推网络的格局从(g,α)通过执行树迁移到(g',α'),表示为
步骤(2.1)、按以下步骤计算从所述异步动态下推网络的格局集合C′出发的未发生上下文切换的逆向格局集合pre1,M[H](C′)步骤(2.1.1)定义格局集合之间的迁移关系:
步骤(2.1.2)两个格局(g,u)和(g',v)之间的迁移关系为
其中:格局的局部迁移规则集合△l定义如下:
成立,当且仅当
u=u1ργu2,v=u1ρ1w1u2,g=g'成立,或者
u=u1ργu2,v=u1ρ2w2ρ1w1u2,g=g'成立格局的全局迁移规则集合△g定义如下:
成立,当且仅当
u=u1ργu2,v=u1ρ1w1u2成立,或者
且u=u1ργu2,v=u1ρ2w2ρ1w1u2成立;u,v是指一组栈符号和其所对应的局部状态组成的一个字符串,其中:u1∈(PΓ*)*,u2∈Γ*(PΓ*)*,全局迁移规则集合和局部迁移规则集合构成了整个迁移系统,步骤(2.1.3)在所述模型M×A中,自动机A接收字符串u1(p,s)u2,构造接收符号串u1(g,(p,s))u2的自动机Z,其中:u1(p,s)u2∈L(A),u1∈((P,S)Γ*)*,p∈P,u2∈Γ*((P,S)Γ*)*,步骤(2.1.4)可按下式构造接收所述hedge‑自动机Z的逆向可达格局集合的自动机Zpre*,其中,单个上下文中的逆向可达格局为:![]()
其中栈符号组w都属于hedge‑自动机Zpre*的接收语言簇中,具体包括栈符号组w=upu′和u(g′,p)u′,步骤(2.1.5)把所述自动机Zpre*接收的单个上下文中逆向可达格局集合pre1,M[H](g,u)放入reachable集合中,步骤(2.2)计算K‑上下文限界逆向可达格局集合preK,M[H](C′)步骤(2.2.1)若(g′,u′)∈pre1,M[H](C′),g′∈G,重复步骤(2.1.3)到步骤(2.1.5)计算pre1,M[H](g′,u′),步骤(2.2.2)、重复步骤(2.2.1)K次,直到计算完设定的有限个K个上下文时终止,即可计算出K‑上下文限界逆向可达格局集合,从而得到模型M×A的K‑上下文限界逆向可达格局集合preK,M[H](C′),K为设定的有限正整数,步骤(3)、通过投影操作得出所述异步动态下推网络下的逆向可达格局集合:定义投影操作projH:
则:格局C的投影操作为projH(C):
符号“→表示转换,从而得出原模型下的逆向可达格局集合,步骤(4)、目标可达性的判定分析,根据所述格局集合C的逆向可达格局集合reachable和初始格局集合I(I为程序初始状态对应的格局集合),计算集合reachable和初始集合I的交集是否为空;步骤(4.1)、若reachable∩I非空,则经过K次上下文切换的运行,某个目标格局c∈C是可达的,则存在一个起始于初始格局的执行路径能够到达该格局中的状态,进而根据每个进程的运行格局,尝试查找产生错误的原因;步骤(4.2)、若reachable∩I为空,则经过K次上下文切换的运行,目标格局集合C中的所有格局是不可达的,那么即存在两种可能:1)经过K次上下文切换的运行,搜索的状态空间覆盖度不足以覆盖到初始状态,此时通过增大K的值并继续求解,直至耗尽所有可用的计算资源;2)若根据上述步骤仍不能判定目标状态是可达的,则得出结论:在现有计算能力下目标格局是不可能出现的。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于桂林电子科技大学,未经桂林电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410470378.8/,转载请声明来源钻瓜专利网。
- 上一篇:一种水晶玻璃板材成型炉的实心柱料嘴
- 下一篇:一种光学玻璃熔炼坩埚装置