[发明专利]一种基于块偏序的动态数据竞争检测方法及系统有效

专利信息
申请号: 201611034047.5 申请日: 2016-11-18
公开(公告)号: CN106598845B 公开(公告)日: 2019-04-12
发明(设计)人: 廖小飞;林敏豪;郑龙;金海 申请(专利权)人: 华中科技大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 华中科技大学专利中心 42201 代理人: 李智
地址: 430074 湖北*** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种基于块偏序的动态数据竞争检测方法及系统,其中,方法的实现包括:利用底层虚拟机LLVM的前端对源代码进行编译得到中间代码IR,并利用LLVM的流程PASS对访存操作及同步操作进行插桩;在所述中间代码IR的运行过程中获取插桩后的访存操作及同步操作的物理时间信息,然后压缩简化HB关系;基于压缩后的HB关系进行数据竞争的检测。通过压缩简化事件的HB关系,降低了因大量HB关系而导致的时间与内存的开销。
搜索关键词: 一种 基于 块偏序 动态 数据 竞争 检测 方法 系统
【主权项】:
1.一种基于块偏序的动态数据竞争检测方法,其特征在于,包括:(1)利用底层虚拟机LLVM的前端对源代码进行编译得到中间代码IR,并利用LLVM的流程PASS对访存操作及同步操作进行插桩;(2)在中间代码IR的运行过程中获取插桩后的访存操作及同步操作的物理时间信息,然后根据获取的物理时间信息压缩简化HB关系,其子步骤为:(2‑1)对线程进行集合划分操作,以使在划分后的每个集合U中,满足只包含Join和/或Lock同步操作、只包含Fork和/或Unlock同步操作以及不存在同步操作中的任意一种形式;(2‑2)对同一线程中的不同集合内部的HB关系进行压缩:获取插桩后的访存操作及同步操作的物理时间信息,若对于相邻的两个时间点T1.tn和T1.tn+1之间有T1.Im到T1.Im+k‑1共k个操作,则T1.Im到T1.Im+k‑1之间存在k‑1个HB关系,其中,T1表示线程1,Im表示线程T1中的第m条访存或者同步操作,Im+k‑1表示线程T1中的第m+k‑1条访存或者同步操作,tn表示Im操作的物理时间信息,tn+1表示Im+k‑1操作的物理时间信息,将T1.tn和T1.tn+1之间的k个操作记为T1.Un的操作集合,Un属于线程T1中的集合;(2‑3)对不同线程间的HB关系按照子步骤(2‑1)划分的集合进行压缩:若T1.Im与T2.Ij之间存在HB关系T1.Im<hbT2.Ij以及T1.Im+1与T2.Ij+1之间存在HB关系T1.Im+1<hb T2.Ij+1,采用步骤(2‑2)的处理方式,T1.Im和T1.Im+1属于T1.Un,T2.Ij和T2.Ij+1属于T2.Uj,则将HB关系简化为T1.Un<hb T2.Uj,其中,T2表示线程2,Ij表示线程T2中的第j条访存或者同步操作,Ij+1表示线程T2中的第j+1条访存或者同步操作,Uj属于线程T2中的集合且Ij操作与Ij+1操作属于集合Uj;(3)数据竞争的检测,与步骤(2)同时进行,其子步骤为:(3‑1)对于步骤(2‑3)得到的线程间的HB关系T1.Un<hb T2.Uj,判断该HB关系是否可以忽略,若可以忽略则清除该HB关系,若不可以忽略,则保留该HB关系;(3‑2)对于只包含Join和Lock操作的集合U,记录最后一次进行写操作和读操作的变量名及位置分别加入写操作W集合和读操作R集合,然后依据存在的HB关系判断W集合和R集合中的变量是否与其他线程中的集合对该变量进行写或读操作产生竞争,若存在则确定发生了数据竞争,对于只包含Fork和Unlock操作的集合U,对每一个写操作和读操作均判断是否发生数据竞争,对于不包含任何同步操作的集合U,对每一个写操作和读操作均判断是否发生数据竞争。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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