【技术实现步骤摘要】
本专利技术属于软件安全性、可靠性研究领域,涉及并发程序的验证方法,具体是一种 并发程序抽象模型的可达性求解技术,针对一个异步动态下推网络模型,构造一个中间模 型来模拟树语义执行方式,采用上下文限界技术对模型的逆向可达问题进行求解的一种自 动化方法。
技术介绍
随着多核处理器的发展,对并发程序的研究已成为程序设计的热点。然而并发程 序执行的不确定性,导致传统测试方法很难发现程序中隐匿的错误。模型检验作为一种自 动验证技术,已成为保证并发程序安全性与可靠性的重要手段之一。可达性分析通过分析 某一状态是否可达来判定程序的正确性,是模型检验的重要核心技术。 通常,并发程序使用并发下推系统或并行过程调用建模,然而这两种模型都不能 很好的模拟带有动态线程创建的程序。Bouajjani等人于2005年提出了动态下推网络,适 用于含有递归过程或带有线程动态创建的并发程序建模(A. Bouaj jani, M. Miiller-Olm, T. Touili. Regular symbolic analysis of dynamic networks of pushdown systems. Proceedings of the 16th International Conference on Concurrency Theory. LNCS 3653,San Francisco:Cisco Syst,2005, 473-487),其模型的:集合保持正则性质 (Regularity),可分析位向量问题(bitvector problem)和逆 ...
【技术保护点】
一种基于树语义的异步动态下推网络可达性的分析方法,其特征在于:是一种并发程序的软件可靠性、安全性的验证方法,是在计算机中依次按以下步骤实现的,步骤(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经过迁移l ...
【技术特征摘要】
1. 一种基于树语义的异步动态下推网络可达性的分析方法,其特征在于:是一种并发 程序的软件可靠性、安全性的验证方法,是在计算机中依次按以下步骤实现的, 步骤(1)、依次按以下步骤构造一个基于异步动态下推网络的并发程序中间模型,以便 模拟树语义的执行方式,步骤如下: 步骤(I. 1)构造所述的异步动态下推网络的中间模型M,简称模型M,M= (G,P,r,A1,Ag),其中: G是全局状态集合,P是局部状态集合,r是栈符号的集合,r*是r的幂集,表示 栈符号的集合的幂集,格局(G,Pr*)表不异步动态的格局集合,表不栈符号为幂集r* 的局部状态集合P所对应的全局状态G的集合,(g,PY)表不栈符号为Y的局部状态 P所处的全局状态g,Ai是局部迁移规则集合,包括以下迁移规则:表示栈符号为Y的某一局部状态P经过迁移Ip后转化为栈符号集合r*中的某一组栈 符号W1所对应的局部状态Pi;表不栈符号为Y的某一局部状 态P经过局部迁移Ip后转化为栈符号组中的第一组栈符号组W1所对应的局部状态Pi和第二栈符号组W2所对应的局部状态P2,Ag是全局迁移规则集合,包括以下全局迁移 规则:表示栈符号为Y的局部状态P所处的全局状态g经 过迁移Ig后转换为全局状态g'下第一栈符号组W1所对应的局部状态Pi; (b)(g,示栈符号为Y的局部状态P所处的全局状态g经过迁移Ig后 同时转换为栈符号组的集合r*中的第一栈符号组W1所对应的局部状态P1和第二栈符号 组W2所对应的局部状态P 2;其中g,g'GG,P,PDP2Gp,YGr,W1, W2Gr*, 当用c表示所述异步动态下推网络模型M的格局集合(G,Pr*)时,c= (G,Pr*),令 (g,a)GC,其中g为全局状态,a是全局状态g中由n个栈符号组Wn各自所对应的一个 局部状态Pn组成的一个字符串,a称之为所述异步动态下推网络模型M在某一时刻的格 局相应的动态下推网络格局, 步骤(1. 2)、构造一个hedge-自动机A,也称树篱式自动机,接收所述模型M在树语义 下的执行序列,也称为执行树,用h表示,其步骤如下: 步骤(1. 2. 1)定义:所述执行树h是所述模型中由局部迁移规则和全局迁移规则组成 的迁移序列集合,所述迁移规则用^表示,在初始状态下,仅有单个线程Tm时,迁移规则 表示为Pr*>XTMX〈g',ConfN>,其中,XTmX表示经过Tm下推,执行树是指从 栈符号集合r*下的一个局部状态集合P所处的全局状态经过单个线程Tm后下推到一个 符号串ConfN所对应的动态下推网络格局a所处的全局状态g'时的迁移规则所组成 的迁移序列集合,同时含有大于一个线程Tm时,迁移规则表示从格局C出发通过执行一 组执行树h迁移到新格局C'时的状态,表示为C;,,C',其中h=&,…,k. .,tn,i指一 组执行树h中迁移时的各个线程^执行所对应的执行树, 步骤(1. 2. 2)利用基于所述迁移序列的线程创建规则L来创建新的线程: 对于只有一个孩子节点的非动态创建节点S2',用非动态创建规则L2来创建新线程, 新创建线程的迁移序列对应于所述非动态创建节点S2'左边的一部分执行树,右边的迁移 序列则对应于原来的线程所对应的执行树, 执行树h用树状的线程组Tm表示:TM: : =NL1TmISL2TmTmIL〈G,Pr*>,其中Tm为树状 的线程集合;NL1Tm为非动态创建节点,该节点只有一个孩子,创建规则用字母组合NL1表 示,后继为一个新节点Tm;SL2TmTm为动态创建节点,该节点有两个孩子,创建规则用字母组 合SL2表示,后继为一个动态创建出的新线程Tm和原来的线程Tm ;L〈G,Pr*>为叶子节点, 其对应此线程运行终止时的格局,此时格局为<G,Pr*>,所述中间模型就是这种树状执行 模型,用于判别迁移所属的进程,其中L为线程一般迁移规则,L1对应非动态创建规则,L2为 动态创建规则, 步骤(1. 2. 3)依次按以下步骤用所述hedge-自动机A创建执行树h步骤(1. 2. 3. 1),设定: hedge-自动机A=KAtl,D),其中S为有限个全局状态的集合,S*是S的幂集;Atl为 一个的初始自动机,AciGS*,用L(Aci)表示自动机Aci的接收的语言簇;D为规则集合,它包 括叶子节点的迁移规则集合、非动态创建节点的迁移规则集合Dn和动态创建节点的迁 移规则集合Ds,表示为D= ^UDnUDs,其中:叶子节点的迁移规则为s-A1G^表示, 其中sGS,A1是接收所有格局集合(G,(Pr*)+)的自动机,非动态创建节点的迁移规则为 ,其中sGS,s'GS,I1GL1,动态创建节点的迁移规则s 表不,其中S,s',ssGs,I2GL2,符号>表不从状态s同时迁移到状态s'和ss, 步骤(1. 2. 3. 2)按下述步骤判断执行树h是否被hedge-自动机A接收,其中h=h…,tm,? ? ?,tn,tm为全局状态为m的线程,tmGTm*, 步骤(1. 2. 3. 2. 1)判断执行树h是否被hedge-自动机A的迁移规则集合D模拟, 对执行树h的叶子节点而言:叶子节点的全局状态<g,pw>与hedge-自动机A的全局状态s相对应时应满足规则:s-A1G队,表示为: k!h!{s,L <g,pw>) <? .v-zi/eD//、<g,/7vv>eI), 对各个非动态创建节点NL1Tm而言:非动态创建节点NL1Tm的状态与hedge-自动机A的状态相对应时应满足规则:eDv,并且满足hedge-自 动机A的全局状态s'与执行树t相对应,S卩labT(...
【专利技术属性】
技术研发人员:钱俊彦,曾宇清,赵岭忠,郭云川,李凤英,
申请(专利权)人:桂林电子科技大学,
类型:发明
国别省市:广西;45
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。