时间多栈下推网络的静态转换方法

文档序号:9506105阅读:539来源:国知局
时间多栈下推网络的静态转换方法
【技术领域】
[0001] 本发明属于软件安全性和可靠性研究领域,涉及实时并发程序的验证方法,是一 种实时并发程序抽象模型的静态转换技术,具体涉及一种时间多栈下推网络的静态转换方 法D
【背景技术】
[0002] 随着多核处理器技术日益发展,并发软件已渗透到国民经济和国防建设的各个领 域,然而软件上微小错误可能导致重大事故,甚至危及人身安全,诸如交通控制和航空航天 等领域。如何提高软件系统的可靠性和安全性已成为当前紧迫问题。对于一些安全攸关的 实时系统来说,其安全性要求更高,需充分验证软件系统的某些关键性质,故对其形式化分 析验证显得尤为重要。
[0003] 诸多学者已致力于实时系统分析与验证的研究,为了描述不同类型的实时系统, 提出了时间自动机、时间下推自动机、时间递归状态自动机、嵌套时间自动机等理论模 型D 具体而言,1994 年 Alur (Alur R,Dill D. A theory of timed automata. Theoretical Computer Science,1994, 126 (2) : 183-235)在自动机的基础上,引入描述连续时间的 时钟,提出了时间自动机,并采用时钟等价技术实现模型检验时间自动机(Bengtsson J j Wang Y.Timed automata:Semantics, algorithms and tools//Proceedings of the 4th Advanced Course on Petri Nets. Eichstaat. Germany,2004:87-124) D 为了解决含 有递归的实时系统建模,Abdulla(Abdulla P A,Atig M F,Stenamn J.Adding time to pushdown automata//Proceedings of the 1st workshop on Quantities in Formal Methods. Paris,France,2012:1-16)提出时间下推自动机,通过时间离散化,转换为下 推自动机,然后对其进行分析,并在文献(Abdulla P A,Atig M F,Stenamn J.Minimal cost reachability problem in priced timed pushdown systems//Proceedings of the 6th International Conference on Language and Automata Theory and Applications. Tarragona,Spain,2012:58-69)中加入权值,求解最小时间花费的可达性 问题,2014 年 Cai (Cai Xj Ogawa M. Well-structured pushdown system: case of dense timed pushdown automata//Proceedings of the 12th International Symposium on Functional and Logic Programming. Kanazawa, Japan, 2014:336-352)给出了 一个时 间下推自动机的实例;Trivedi (Trivedi A,Wojtczak D. Recursive timed automata// Proceedings of the 8th International Symposium on Automated Technology for Verification and Analysis.Singapore, 2010:306 - 324)和 Benerecetti(Benerecetti M,Minopoli S,Peron A. Analysis of timed recursive state machines//Proceedings of the 17th International Symposium on Temporal Representation and Reasoning. Paris,France,2010:61 - 68)提出了时间递归状态自动机,通过相互调用来实现递归描 述,调用过程中,时钟通过值或者引用的方式传递的;2013年Li (Guoqiang L,Xiaojuan C,Mizuhito 0,Shoji Y. Nested timed automata//Proceedings of the Ilth International Conference on Formal Modeling and Analysis of Timed Systems. Buenos Aires, Argentina, 2013:168-182)提出了嵌套时间自动机(NeTAs),其整体是一个 下推自动机,栈的每一层为时间自动机,利用嵌套的思想来解决实时系统中的递归问题。上 述模型能描述实时系统的并发及递归问题,但是无法描述实时并发系统中线程间交互的情 况。
[0004] 然而,另一类模型能描述并发递归程序的线程间交互,但不能描述实时性。诸 如 Atig(Atig M F, Narayan K, Prakash S. Adjacent ordered multi-pushdown systems. Developments in Language Theory, 2013:58-69)给出的序列多栈下推自动机(OMPA), 其在栈上增加了线性序列描述线程间交互;Torre(Torre S L, Madhusudan P, Parlato G. A robust class of context-sensitive languages//Proceedings of the 22nd IEEE Symposium on Logic in Computer Science. Wroclaw, Poland, 2007:161 - 170)给出基于上 下文限界的多栈下推系统(SMPDS),并论证了其可达性为PSPACE完全问题。
[0005] 对于连续时间的实时系统而言,形式化验证此类系统将产生状态空间爆炸问题, 给验证带来了极大困难。

【发明内容】

[0006] 本发明所要解决的技术问题是提供一种时间多栈下推网络的静态转换方法,其所 构建的抽象模型能够实现同时实现实时并发系统的实时性和并发性的描述,并能为实时并 发程序的形式化验证提供保证。
[0007] 为解决上述问题,本发明是通过以下技术方案实现的:
[0008] -种时间多栈下推网络的静态转换方法,包括如下步骤:
[0009] 步骤(1)将含有时间行为的并发递归程序转换为一个等价的可模拟程序执行的 时间多栈下推网络,该时间多栈下推网络的执行对应于程序包含的所有动作或行为;
[0010] 步骤(1.1)构造实时并发递归程序的抽象模型即时间多栈下推网络;
[0011] 所构造的时间多栈下推网络是一个六元组Mt= (n,Q,q。,Γ,τ,Δ),其中Mt表示时 间多栈下推网络,η表示系统中栈的个数;Q表示有限状态集;q。表示初始状态;Γ表示有 限栈符集;T = TtiU 1\表示有限时钟集,其中表示全局时钟,用于标识实时并发系统中全 局变量或事务的时间,?Υ表示栈内局部时钟,用于标识系统中局部变量或子事务的时间;迀 移关系
为描述系统格局的迀移;
[0012] 所构造的时间多栈下推网络的格局C = <Work[n], q, (Wi)i E [n], v>,其中q e Q,
^ [n]子集,表示当前工作栈集,W1为栈i的字,表示栈i的内容,描述为 V表示时钟当前取值;
[0013] 步骤(1. 2)将所构造的时间多栈下推网络用操作语义进行描述;其中时间多栈下 推网络作为实时并发程序的模型,用于描述多个栈同时产生迀移,其迀移关系A分为栈内 迀移A'栈间切换和并发执行Δ
[0014] 步骤(1. 2. 1)对于一个栈i内迀移的执行,用形式

:表示,其中OPinS栈内迀移时的动作集,包括空操作nop、 时间约束判断t e I ?、时钟重置t - I、时间流逝Time - c、压栈操作push (a, I)和出栈 操作pop (a, I),其中I表示时钟取值范围,t e T,Time为具体时间值;故栈内迀移关系Δ ιη 表示为 Δ 卿 U Δ ? U Δ = U Δ h U Δ push U Δ pop,其中 Δ 卿、Δ ?、Δ =、Δ h、Δ '啣口 Δ pop 分别表示上述操作的迀移;根据不同的栈内迀移动作〇ριη给出其执行含义如下:
[0015] 1) Δ ιη= Δ n°p:〇pin= nop,w / = Wi, ν' = V ;表示格局内元素未发生变化;
[0016] 2) Δ ιη= Δ ? :〇pin= t e I ?,w / = Wi, ν' = v,v(t) e I ;表示当 t 的时钟值 在I范围内时,执行该操作,格局内元素未发生变化;
[0017] 3) Δ ιη= Δ - :〇pin= t - I,w / = Wi, ν' = v[t - c],c e I ;表示给时钟 t 指 定I范围内的任意值c,其它格局内元素未发生变化;
[0018] 4) Δ ιη= Δ h :〇pin= Time 一 c,w / =界广,假设 Wi=〈a !,V1Xa2, v2>... <an,vn>, 那么w^=〈a^ VfcXa2, v2+c>*"〈an, vn+c>,ν' = v+c ;表示格局内所有时钟增加 c,格局内 非时钟内容未发生变化;
[0019] 5) Δ ιη= Δ push:〇pin= push(a,I),w / = Wi ·〈a, c>,c e I,ν' = V ;表示将变量 a压入栈顶,并设定相应时钟为t,其时钟值为I范围内的任意值;
[0020] 6) Δ ιη= Δ p〇p:〇pin= pop (a, I),w ;= w / ·〈a, c>,c e I,ν' = V ;表示将栈顶 内时钟值为I范围的变量a弹出;
[0021] 步骤(1. 2. 2)描述栈间切换Δ ιη,假设栈间切换操作表示栈i切换 到栈j,用形式
表示,其中q,q< eQ; ν' = V ;Wi,w_j分别为栈i, j的字,i, j e [η]且i乒j ;上下文切换时,将栈j从等待 栈切换到工作栈,同时将栈i从工作栈切换到等待栈,则切换后的工作栈Work[nP = Work[n]\{i} U {j};
[0022] 步骤(1.2.3)描述并发操作Δ11;假设o
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1