[发明专利]一种信号量死锁的检测方法有效
申请号: | 201210575762.5 | 申请日: | 2012-12-26 |
公开(公告)号: | CN103902356B | 公开(公告)日: | 2018-07-31 |
发明(设计)人: | 王伟;车任秋;张百元 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 杭州千克知识产权代理有限公司 33246 | 代理人: | 周希良 |
地址: | 201616 上海市松江*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种信号量死锁的检测方法,通过调用系统提供的信号量和任务函数动态的获取到信号量和任务信息,在操作系统之外的应用层创建信号量结构体和信号量链表。将处于等待状态的任务加入到信号量链表中,对链表进行死锁检测。本发明完全独立于操作系统,不必在操作系统中添加任何代码,是作为一套工具性的软件存在于系统的应用层。且没有繁琐的代码改动,没有给系统增加额外的开销,有效的解决了现有方法的缺点。 | ||
搜索关键词: | 一种 信号量 死锁 检测 方法 | ||
【主权项】:
1.一种信号量死锁的检测方法,其特征在于,通过调用系统提供的信号量和任务函数动态的获取到信号量和任务信息,在操作系统之外的应用层创建信号量结构体和信号量链表,将处于等待状态的任务加入到链表中,对链表进行死锁检测,具体包括以下几个步骤:Step1:在操作系统之外的应用层建立信号量死锁检测命令,sem check命令执行信号量死锁检测;Step2:创建信号量结构体,信号量结构体包含的字段设有:信号量IDpSem、等待信号量的任务pWaitTaskTcb、拥有信号量的任务pOwner;Step3:通过调用操作系统函数判断所有任务,把处于等待的任务赋值给pWaitTaskTcb,通过pWaitTaskTcb偏移找到等待的信号量赋值给ID pSem,获取到占有信号量的任务赋值给pOwner;Step4:根据占有信号量的任务的信号量建立信号量链表a;Step5:执行死锁检测命令sem check,遍历整条链表a,把存在等待和占有信号量关系的信号量结构体挑出来并重新组成一个新链表b,判断新链表b是否存在信号量环路,如果存在,则检测到存在信号死锁,把构成环路的任务及信号量打印出来;如果不存在,则不存在信号死锁;继续遍历链表a,直到遍历完成为止。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201210575762.5/,转载请声明来源钻瓜专利网。
- 上一篇:一种用于油气井开采的易拔井下过滤器及其实现方法
- 下一篇:一种木铝推拉门结构