基于多引擎并行协作的SCADE模型检测.pdf
《基于多引擎并行协作的SCADE模型检测.pdf》由会员分享,可在线阅读,更多相关《基于多引擎并行协作的SCADE模型检测.pdf(5页珍藏版)》请在咨信网上搜索。
1、收稿日期:2022-12-09摇 摇 摇 摇 摇 摇 修回日期:2023-04-12基金项目:国家自然科学基金(62172217);国家自然科学基金委员会-中国民航局民航联合研究基金(U1533130);中央高校基本科研业务费人工智能+专项(NZ2020019)作者简介:方雨瑶(1998-),女,通讯作者,硕士,研究方向为软件验证。基于多引擎并行协作的 SCADE 模型检测方雨瑶,张摇 聪(南京航空航天大学 计算机科学与技术学院,江苏 南京 211106)摘摇 要:SCADE 语言是一种同步数据流语言,通常被用于实时嵌入式自动控制系统的开发,在航空航天、交通、核工业等领域有广泛的应用。已有的
2、SCADE 同步语言模型检测工具存在无法验证部分复杂程序和验证效率低下的问题。为了解决现有的问题,该文提出了多引擎并行协作的方法,通过并行执行 BMC 引擎、归纳法引擎和程序抽象引擎三个模型检测引擎来实现对 SCADE 同步语言程序验证的协作,其中程序抽象引擎通过反例引导的抽象精化方法解决了大型复杂程序验证效率低下的问题。实现了一款针对 SCADE 同步语言程序的模型检测工具 PSMC,该工具采用多引擎并行协作方法来提升 SCADE 同步语言程序模型检测的效率。手动构造了 887 个 SCADE 同步语言程序用于对 PSMC 进行实验验证,结果表明提出的优化方法可以有效地对 SCADE 同步语
3、言程序进行自动的验证,并且可以提升模型检测的验证效率(约 31%)。关键词:同步语言;形式化验证;一阶逻辑;反应系统;可满足性模理论中图分类号:TP311摇 摇 摇 摇 摇 摇 文献标识码:A摇 摇 摇 摇 摇 摇 摇 文章编号:1673-629X(2023)11-0086-05doi:10.3969/j.issn.1673-629X.2023.11.013SCADE Model Checking Based on Multi-engine Parallel CollaborationFANG Yu-yao,ZHANG Cong(School of Computer Science and T
4、echnology,Nanjing University of Aeronautics and Astronautics,Nanjing 211106,China)Abstract:SCADE language is a synchronous data flow language that is commonly used for the development of real-time embeddedautomatic control systems and has a wide range of applications in the aerospace,transportation
5、and nuclear industries.The existingSCADE synchronous language model checking tools suffer from the inability to verify some of the complex programs and the inefficiencyof verification.In order to solve the existing problems,we propose a multi-engine parallel collaboration approach,in which three mod
6、elchecking engines,namely the BMC engine,the induction engine and the program abstraction engine,are executed in parallel to collaborateon the verification of SCADE synchronous language programs,where the program abstraction engine solves the problem of inefficient ver鄄ification of large complex pro
7、grams by means of counterexample-guided abstraction refinement.We have implemented a model checkingtool,PSMC,for SCADE synchronous language programs,which uses a multi-engine parallel collaboration approach to improve theefficiency of model checking for SCADE synchronous language programs.We manuall
8、y construct 887 SCADE synchronous languageprograms for experimental verification of PSMC,and the results show that the proposed optimization method can effectively andautomatically verify SCADE synchronous language programs,and can improve the verification efficiency of model checking byabout 31%.Ke
9、y words:synchronous languages;formal verification;first-order logic;reactive systems;satisfiability mode theory0摇 引摇 言随着科技的发展,反应式系统1在航空航天、交通、核工业等关键性领域应用越来越广泛,它能够以确定的时间对其所处的环境做出连续反应,具有时间约束性、可预测性、与外部环境的交互性等。为了方便反应式系统的设计与实现,领域专家与学者提出了同步语言2。其中 SCADE(Safety Critical Application De鄄velopment Environment)语
10、言3-5是这些领域的事实标准开发语言,已经被广泛应用于实现实时嵌入式自动控制系统6。这些领域对系统的安全性与可靠性要求非常高,因此这些系统需要经过严格的形式化验证7。现有的 SCADE Suite 工具可以对 SCADE 程序进第 33 卷摇 第 11 期2023 年 11 月摇 摇 摇 摇 摇 摇 摇 摇 摇 摇计 算 机 技 术 与 发 展COMPUTER TECHNOLOGY AND DEVELOPMENT摇 摇 摇 摇 摇 摇 摇 摇 摇 摇Vol.33摇 No.11Nov.摇 2023行模型检测,但该工具是一款价格昂贵的商业软件,且已经限制在国内使用和研究,并且验证方法单一、验证效率
11、不高8-9。而由 Henning Basold 等人开发的免费工具 不 支 持 完 整 的 SCADE 语 言,并 且 验 证 效 率较低10。基于现状,该文提出了基于多引擎并行协作的SCADE 模型检测方法。将 SCADE 程序和待验证的安全属性转化为一阶逻辑公式,并对一阶逻辑公式使用 SMT(Satisfiability Modulo Theories)求解器,通过多引擎并行协作的方法进行验证。主要工作如下:(1)提 出 并 行 执 行 BMC(Bounded ModelChecking)引擎、归纳法引擎,将原本 k-Induction 算法中串行的基础步骤和归纳步骤改为并行执行。(2)提
12、出程序抽象引擎,对大型复杂程序进行抽象,并反复进行检测、确认、精化,加快对无效属性的验证速度。(3)开发了一款 SCADE 模型检测工具 PSMC,实现 BMC 引擎、归纳法引擎和程序抽象引擎并行协作的验证架构,经过实验证明了相比于不使用优化时能够提高验证效率,从而可以对较大规模的程序进行验证。1摇 相关工作传统的 k-Induction 算法11以 1-Induction 标准归纳法为基础,当标准归纳法无法证明“性质在系统执行的第 i 步成立冶蕴含“性质在系统执行的第 i+1 步成立冶时,对待验证公式进行扩展,尝试证明“性质在系统执行的第 n+1 到 n+k 步内成立冶蕴含“性质在系统执行的
13、第 n+k+1 步成立冶。假设一个有限状态迁移系统 S=,其中 X 是系统所有状态变量的集合,xi表示系统所有状态变量在时钟 i 下的瞬时值,I表示系统的初始状态,T 是系统在前一个时钟到当前时钟的迁移关系表达式。要验证属性 P 是有效的,即证明 P 在有限迁移系统 S 中是不变式(在有限迁移系统 S 的所有可达状态都满足 P)。k-Induction 算法所依赖的验证公式包括公式(1)和公式(2)。如果它们在某个时刻 k(k 逸0)都成立,即可证明 P 是不变式。T(0)夷 夷 T(k)圯 P(0)夷 夷 P(k)(1)T(n)夷 夷 T(n+k+1)夷 P(n)夷 夷 P(n+k)圯 P(
14、n+k+1)(2)传统的 k-Induction 算法中基础步骤公式(1)和递归步骤公式(2)是串行协作的关系,也就是说,公式(2)的检查需要依赖于公式(1)的检查结果。由此带来的一个后果是,当属性无效且在 k 值较大才能被证伪的情况下,串行验证会消耗大量时间在递归步骤公式(2)的验证上。为了提高验证效率,将串行协作优化为并行协作,将基础步骤作为单独线程,将递归步骤也作为单独线程,再通过消息传递机制控制线程之间的关系,这样算法引擎就可以在各自的线程上并行地同时运行,可以使得有效属性和无效属性的验证速度大大加快。接下来,详细描述多引擎并行协作算法的实现。2摇 多引擎并行协作方法图 1 展示了多引
15、擎并行协作的架构设计。首先,词法语法解析器将 SCADE 同步语言程序解析为抽象语法树12(AST),然后逻辑公式生成器将 AST 转化为求解器可求解的逻辑公式,最后 BMC 引擎、归纳法引擎和程序抽象引擎分别调用独立的 SMT 求解器(例如 Z3)13同时对逻辑公式进行求解,得到验证结果。注意,在求解阶段设定了一个固定的 k 值,在 k_opt 步图 1摇 PSMC 的架构设计78摇 第 11 期摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 方雨瑶等:基于多引擎并行协作的 SCADE 模型检测之前由 BMC 引擎和归纳法引擎并行执行,在 k_opt 步之后由程序抽象引擎和归纳法引擎并行执行,并
16、且通过共享变量进行消息传递和协作。2.1摇 BMC 引擎BMC 引擎从 k=0 开始验证公式(1),并逐渐递增k 的值,如果在某个 k 值下公式不成立,求解器会返回一组可以证明公式不成立的变量值,称之为反例。再将无效属性和反例输出后终止该线程,同时将终止线程信号 M1=Abort 传递给归纳法引擎所处的线程。否则,将继续递增 k 值,并将成功通过该公式验证的 k 值通过信号 M1=k 传递给归纳法引擎线程,直到接收到由归纳法引擎所处线程传递来的终止线程信号 M2=Abort,终止本线程。2.2摇 归纳法引擎线程休眠,直到接收到来自 BMC 引擎线程或程序抽象引擎线程消息 M1。如果 M1=Ab
17、ort 是终止线程信号,也就是说,BMC 引擎或程序抽象引擎已经证明了属性是不成立的,则终止本线程。如果 M1=k 是自然数,也就是说,BMC 引擎或程序抽象引擎发现属性在第 k 个时钟以内是成立的,则对于所有的自然数i 臆k,调用 SMT 求解器验证归纳公式(2)是否成立。如果对于某个 i 归纳公式(2)成立,那么对于所有的时钟 c(c 0),基础公式(1)都是成立的,即证明了属性是成立的。此时输出有效属性,并将终止线程信号M2=Abort 传递给 BMC 引擎线程和程序抽象引擎线程,然后终止本线程。如果归纳公式(2)不成立,归纳法引擎则继续递增 k 值对公式(2)进行验证,直到 k 值递增
18、到大于 M1传递来的自然数,归纳法引擎继续休眠直到再次接收到来自 BMC 引擎线程或程序抽象引擎线程消息 M1。2.3摇 程序抽象引擎在多引擎并行协作的架构上设定一个控制 BMC引擎和程序抽象引擎的临界值 k_opt,当 BMC 引擎的变量 k k_opt 时,BMC 引擎所处线程进入休眠状态并且启动程序抽象引擎,对程序进行抽象后,进行 BMC 检测,如果没有报告反例,说明该抽象程序在 k 个时钟以内满足待验证属性,则通过信号 M1=k 将通过检查的k 值传递给归纳法引擎;如果报告了反例,且经过确认该反例确实为真实反例,可以得出该属性无效的结论,则输出反例所违反的属性(即无效属性)和反例,并将
19、终止线程信号 M1=Abort 传递给归纳法引擎所处线程,然后终止本线程。如果接收到归纳法引擎所处线程传递来的终止线程信号 M2=Abort,则终止本线程。否则,k 值加 1 继续进行抽象程序算法检测。图 2 是程序抽象引擎采用的程序抽象算法流程。首先,对目标程序进行初始化抽象,将抽象程序进行BMC 算法检测,如果检测过程中出现反例,那需要对该反例进行确认,判断该反例是否为伪反例,如果是,那么需要对抽象程序进行精化操作使抽象程序更靠近原程序;如果不是,则得出该属性无效的结论。接下来将对反例引导的抽象精化算法进行详细的说明。图 2摇 程序抽象算法流程如图 2,首先将对逻辑公式转化器处理完的程序N
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 引擎 并行 协作 SCADE 模型 检测
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。