一种数据并发竞争冲突检测分析方法及系统技术方案

技术编号:32298855 阅读:94 留言:0更新日期:2022-02-12 20:09
本发明专利技术公开了一种数据并发竞争冲突检测分析方法及系统,涉及数据竞争分析技术领域。该方法包括:发送mutex互斥资源接口的监控指令;对监控指令进行处理,创建对应mmap内存存储区,并对对应的mutex互斥资源接口进行hook;当线程访问mutex互斥资源接口时,判断内存存储区中是否存在当前的mutex互斥资源接口地址,如果否,则对mmap内存存储区中的数据进行更新,当mmap内存存储区中持有count为负时,获取并根据当前锁持有者的线程情况信息采用对应的死锁检测方法进行死锁判定,进行异常输出。本发明专利技术可有效解决生产实际中大量隐秘的内存操作并发竞争问题。存操作并发竞争问题。存操作并发竞争问题。

【技术实现步骤摘要】
一种数据并发竞争冲突检测分析方法及系统


[0001]本专利技术涉及数据竞争分析
,具体而言,涉及一种数据并发竞争冲突检测分析方法及系统。

技术介绍

[0002]基于多处理的系统中汇集多个CPU,但是共享内存子系统,无法避免的带来数据竞争。竞争同步不当的时候,会带来各种数据异常,这类问题一直很难调试和定位。传统方式一般是对存在竞争的临界资源进行互斥锁的操作等,锁的冲突加剧,从而导致多CPU处理的优势明显下降。死锁检测的方式方法充满多样性,单一的方式检测已经难以满足复杂系统的死锁冲突检测。小规模的程序检测死锁相对生产而言是相对容易发现的,大型复杂的系统、分布式的复杂系统中如何发现死锁变得极其困难,以及嵌套递归等等复杂场景造成的死锁更是在静态扫描过程难以检测。其中大型系统或者分布式应用中对于一个持有某个资源的线程,等待另一个或者多个持有自己等待自己持有资源的状态,这种死锁的判定异常困难。往往生产出现这类问题又无法定位触发条件。大量的生产业务系统往往需要既满足性能需求又能对异常的竞争进行追踪定位,因此,亟需提供一种新的分析检测手段,解决生产实际中本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据并发竞争冲突检测分析方法,其特征在于,包括以下步骤:S1、基于系统临界资源保护接口情况信息生成并发送mutex互斥资源接口的监控指令;S2、对监控指令进行处理,创建对应mmap内存存储区,并对对应的mutex互斥资源接口进行hook;S3、当线程访问mutex互斥资源接口时,判断内存存储区中是否存在当前的mutex互斥资源接口地址,如果是,则结束;如果否,则对mmap内存存储区中的数据进行更新,并进入步骤S4;S4、当mmap内存存储区中持有count为负时,获取并根据当前锁持有者的线程情况信息采用对应的死锁检测方法进行死锁判定,生成死锁检测结果,并进行异常输出。2.根据权利要求1所述的一种数据并发竞争冲突检测分析方法,其特征在于,所述存储区包括锁地址链表、资源持有者位图和等待资源位图。3.根据权利要求2所述的一种数据并发竞争冲突检测分析方法,其特征在于,所述锁地址链表包括计数器count、时间戳、线程id和线程位图。4.根据权利要求3所述的一种数据并发竞争冲突检测分析方法,其特征在于,所述步骤S3包括:当线程访问mutex互斥资源接口时,判断当前锁地址链表是否存在当前的mutex地址,如果是,则结束;如果否,则对线程位图进行标记,并将mutex地址、线程id、时间戳、计数器count和标记后的线程位图存放至mmap内存存储区;判断count是否为0,如果是,则更新资源持有者位图;如果否,则更新等待资源位图,并进入步骤S4。5.根据权利要求3所述的一种数据并发竞争冲突检测分析方法,其特征在于,所述步骤S4包括:判断持有count是否为负,如果否,则结束;如果是,则获取当前锁持有者的线程情况信息;判断当前锁持有者的线程情况信息是否为单线程,如果是,则判断线程位图的bit使用位数量是否为1,若是,则为非死锁,若否,则为死锁,记录持有死锁的相关记录,并进行异常输出;如果否...

【专利技术属性】
技术研发人员:赵熙
申请(专利权)人:南京云信达科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1