[发明专利]程序死锁检测方法、存储介质、设备及系统有效
申请号: | 201710528372.5 | 申请日: | 2017-07-01 |
公开(公告)号: | CN109213576B | 公开(公告)日: | 2022-04-08 |
发明(设计)人: | 杨亮;陈少杰;张文明 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/48 |
代理公司: | 武汉智权专利代理事务所(特殊普通合伙) 42225 | 代理人: | 张凯 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及操作系统领域,公开了一种程序死锁检测方法、存储介质、设备及系统,该方法包括S1:在线程的线程句柄创建函数、信号事件创建函数、互斥体创建函数和临界区创建函数中均加入一hook函数;S2:通过hook函数分别获取线程句柄创建函数、信号事件创建函数、互斥体创建函数和临界区创建函数所对应的当前线程以及当前线程的线程ID;S3:将获取的线程、线程ID以及获取的线程所拥有的资源存储于全局字段中;S4:根据全局字段中的线程ID,调用系统的等待函数获取全局字段中每个线程所等待的资源;S5:从全局字段中任取两个线程进行死锁判断。本发明能够对程序的死锁进行及时而有效的检测。 | ||
搜索关键词: | 程序 死锁 检测 方法 存储 介质 设备 系统 | ||
【主权项】:
1.一种程序死锁检测方法,用于当程序采用线程的同步和互斥机制进行多线程运行时,判断程序是否发生死锁,所述线程的同步和互斥机制包括信号事件、临界区、互斥体、以及线程句柄,所述程序运行于Windows操作系统上,其特征在于,包括:S1:在线程的线程句柄创建函数、信号事件创建函数、互斥体创建函数和临界区创建函数中均加入一hook函数;S2:当线程句柄创建函数、信号事件创建函数、互斥体创建函数或临界区创建函数分别相应地进行线程、信号事件、互斥体或临界区的创建时,通过hook函数分别获取线程句柄创建函数、信号事件创建函数、互斥体创建函数和临界区创建函数所对应的当前线程以及当前线程的线程ID;S3:将获取的线程、线程ID以及获取的线程所拥有的资源存储于全局字段中;S4:根据全局字段中的线程ID,调用系统的等待函数获取全局字段中每个线程所等待的资源;S5:从全局字段中任取两个线程,若其中第一个线程所等待的资源为第二个线程所拥有的资源,且第二个线程所等待的资源为第一个线程所拥有的资源,则程序发生死锁,若否,则程序未发生死锁。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710528372.5/,转载请声明来源钻瓜专利网。
- 上一篇:单一处理器运行程序的方法
- 下一篇:一种线程睡眠的方法、装置及计算机设备