发明名称 一种用于数据竞争检测的程序调度方法
摘要 本发明涉及一种用于数据竞争检测的程序调度方法,属于软件测试领域和软件可靠性领域,步骤包括:划分给定程序为若干个程序块;通过运行程序一次,动态确定每个程序块b<sub>i</sub>中锁的类型的集合;选取数据竞争检测工具,再次运行程序p并根据每个线程和锁、程序块中锁的类型集合的关系调度每个线程的运行,并使用已选定的数据竞争检测工具检测数据竞争;在程序的调度过程中重新计算每个程序块对应的锁类型集合;重复上述步骤若干次。本发明提出了基于程序块中锁类型集合和线程对锁的获取关系来调度程序的运行,以至于隐藏的数据竞争可以被暴露出来,从而被基于Happens-before的数据竞争检测工具检测到,增加了基于Happens-before的数据竞争的检测效率。
申请公布号 CN104978272A 申请公布日期 2015.10.14
申请号 CN201510399123.1 申请日期 2015.07.08
申请人 中国科学院软件研究所 发明人 蔡彦
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 北京科迪生专利代理有限责任公司 11251 代理人 成金玉;孟卜娟
主权项 一种用于数据竞争检测的程序调度方法,其特征在于包括以下步骤:(1)划分给定程序为若干个程序块;(2)运行一次给定程序,并计算每个程序块中锁的类型的集合;(3)选择数据竞争检测工具,再次运行给定程序,并根据每个线程和锁、程序块中锁类型集合的关系调度每个线程的运行;(4)在步骤(3)的运行中同时使用选定的工具检测数据竞争;(5)在步骤(3)的运行中同时重新计算每个程序块的锁的类型集合,用于下一次运行的调度;(6)重复步骤(3)至(5)若干次,并收集每次检测到的数据竞争。
地址 100190 北京市海淀区中关村南四街4号