[发明专利]一种基于硬件和线程本地时序的数据竞争采样检测方法有效

专利信息
申请号: 201610565161.4 申请日: 2016-07-18
公开(公告)号: CN106227656B 公开(公告)日: 2018-07-17
发明(设计)人: 蔡彦;张健 申请(专利权)人: 中国科学院软件研究所
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 北京科迪生专利代理有限责任公司 11251 代理人: 成金玉;卢纪
地址: 100190 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明涉及一种基于硬件和线程本地时序的数据竞争采样检测方法,属于软件测试领域和软件可靠性领域,步骤包括:按给定采样率随机选择内存访问指令,对这些指令插桩;并识别同步语句,对每个线程设置一个本地时序,该时序随着同步语句的执行而增加;程序运行时,若某个插桩被运行,则在对应指令要访问的内存地址上设置一个内存(读写或写)断点并记录当前线程的本地时序;若一个内存断点被另一个线程触发,且设置断点的线程的本地时序未改变,则检测到一个数据竞争。本发明的方法基于硬件断点和线程本地时序,和单纯使用硬件断点或线程时序的方法相比,在比较小的内存访问采样率下,时间开销更小,数据竞争检测的有效性更高。
搜索关键词: 时序 线程 数据竞争 断点 采样检测 硬件断点 采样率 插桩 语句 内存 指令 内存访问指令 数据竞争检测 软件可靠性 程序运行 内存地址 内存访问 软件测试 时间开销 随机选择 触发 读写 检测 记录 访问
【主权项】:
1.一种基于硬件断点和程序线程本地时序的数据竞争采样检测方法,其特征在于包括以下步骤:(1)给定程序P和一个采样率r,按照r对P中的所有指令采样,采样集合记为S,并对S中的每条指令设置指令断点;(2)识别程序P中的同步操作,并对每个同步操作插桩一个函数调用;(3)运行程序,并根据如下不同情况采用不同操作:A.如果一个指令断点触发,则获取该对应指令的如下属性:内存访问地址信息addr,是否是写操作isWrite,以及所访问内存的大小size;之后在内存addr处设置大小为size的内存断点:若写操作isWrite为true,则设置读写内存断点,即setDataBreakpointRW(addr,size);否则仅设置写内存断点,即setDataBreakpointW(addr,size);同时记录当前线程t1的本地时序值t1.preClock,并启动一个计时器;B.若某个内存断点被线程t2触发,则立即获取之前线程t1当前的本地时序t1.curClock,若t1≠t2且t1.preClock=t1.curClock,则在内存addr上检测到一个数据竞争;同时取消该断点;C.若在定时器触发时,addr上的内存断点没有被触发,则取消该断点;D.若某个同步操作被执行,则在被插入的函数中把当前线程的本地时序加1;E.若程序执行退出指令,则清空所有的内存断点,退出程序。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201610565161.4/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top