面向多线程程序的并行运行时验证

来源 :南京航空航天大学 | 被引量 : 1次 | 上传用户:wgxwjl
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
现代操作系统、嵌入式系统、航电系统等安全关键系统一般都使用C/C++语言进行开发,因此针对C程序的运行时验证技术研究变得非常重要。主流的运行时验证技术主要针对程序的内存安全性和形式化规约进行检测,首先通过对C程序中与内存操作和规约相关的代码进行插桩,然后编译运行插桩后的C程序来验证原程序是否满足内存安全性和给定的规约。但是现有技术存在许多局限性。一方面,现有技术大都只能处理单线程的C程序,在多线程C程序的情况下,可能引起对运行时信息的竞争访问问题,从而导致错误的验证结果。另一方面,针对形式化规约的运行时验证技术大都通过串行的方式处理多监控器,在规约数量较多的情况下,多监控器的串行运行会导致运行时性能大大降低。针对以上的两个局限性,本文主要研究面向多线程C程序的运行时验证技术和多监控器的并行验证技术。具体工作和创新点包括:首先,针对内存安全性问题,我们提出了面向多线程C程序的运行时验证算法。该算法采用有锁哈希表或无锁哈希表对指针元数据进行插入、查找和删除等操作,使得插桩后的多线程C程序可以并发地对指针元数据进行访问,从而实现对多线程C程序内存安全性的运行时验证。第二,针对形式化规约的验证问题,我们提出了面向多线程C程序的形式化规约验证算法。该算法采用无锁队列来存储和处理程序产生的事件,进行入队和出队操作,使得插桩后多线程目标程序和监控器线程可以并行地对程序产生的事件序列进行访问,从而实现对多线程C程序形式化规约的运行时验证。第三,针对多监控器的验证问题,我们提出了一种并行验证算法,其基本原理是根据监控器规约的数量和可用线程的数量,将规约产生的监控器平均分配到多个验证线程上,用户线程通过信号量控制验证线程的运行,从而实现多监控器的并行运行。最后,基于以上新的验证算法,我们实现了工具Movec,并在MiBench和SARD测试集上与现有技术进行了对比实验。实验结果表明,对于内存安全性的验证,Movec比Addresssanitizer能检测出更多的错误,采用有锁哈希表产生的运行时负载与待验证程序的线程数正相关,而采用无锁可扩展哈希表产生的运行时负载与待验证程序的线程数无关。对于形式化规约的验证,采用无锁队列和并行验证可以有效地对多线程C程序的多个形式化规约进行并行的运行时验证,多监控器并行验证算法产生的运行时负载比串行验证算法减少了约40%。
其他文献
实证分析表明,FDI对中国宏观投资效率具有负面影响。其原因主要有FDI拉升国内产出成本,使得内资企业投入产出下降,抢夺内资企业人才和技术外溢效应不明显四个方面。为此,本文
陕西关中石雕在我国有着深厚的民族文化内涵,它随着中华五千年的历史,承载帝王风脉,沐浴汉唐遗风,流传至今,可以称其为中华石雕之宗胄。“和合二仙”象征家人之和合、婚姻之
期刊
<正>血液的宏观流动性,即为粘度。粘度是血液流变学研究的重点。全血粘度是反映血液流变的总指标。 1.全血粘度意义:血液粘度反映血液运输及供应状况,测定血液粘度对于了解血液
会议
文章从劳务派遣机构存在的财务风险展开分析,并以此为依据,提出建立完善的内部控制制度、加强应收账款的管理、推进信息化建设,树立责任制的有效措施,旨在劳务派遣机构在实际
通过诊断3套再分析资料的非绝热加热场,研究冬季青藏高原上空大气的热力特征。结果表明,与夏季为强热源的特征不同,冬季高原上空不是欧亚大陆上最强的冷源中心。冬季高原上空
近年来,家庭金融日益受到重视,家庭金融资产选择、家庭金融市场参与程度及其影响因素则是家庭金融研究的核心问题。研究调查发现,尽管存在较高的股票溢价,我国居民家庭金融市
为满足经济体制转型的需要以及缓解资源枯竭问题等方面的压力,我国住宅产业向产业生态化发展方向不断探索。由于当前住宅产业的生态价值分配不均,可持续发展程度偏低,生态污染问题突出。基于住宅全寿命周期的整体思维与各方合作共赢的理念,顺应住宅建造方式改革趋势来探索住宅产业向生态化发展的模式成为必然。本文以装配式住宅为研究对象,立足装配式住宅项目参与价值主体所组成的动态联盟的视角,应用产业生态学、循环经济理论
<正>正如美国前总统威廉·杰斐逊·克林顿所言:"信息产业革命是人类有史以来最大的一次革命,也是人类几百年才有的一次机遇。"在IP大时代的背景下,科学技术发展日新月异。安
目的对158例急性脑梗死住院死亡病例与140例存活病例的白细胞计数及中性粒细胞分类计数进行了回顾性分析,探讨白细胞计数对脑梗死转归的影响,以便对高危患者及时予以干预。方法