[发明专利]一种信号量死锁的检测方法有效
申请号: | 201210575762.5 | 申请日: | 2012-12-26 |
公开(公告)号: | CN103902356B | 公开(公告)日: | 2018-07-31 |
发明(设计)人: | 王伟;车任秋;张百元 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 杭州千克知识产权代理有限公司 33246 | 代理人: | 周希良 |
地址: | 201616 上海市松江*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 信号量 死锁 检测 方法 | ||
本发明提供了一种信号量死锁的检测方法,通过调用系统提供的信号量和任务函数动态的获取到信号量和任务信息,在操作系统之外的应用层创建信号量结构体和信号量链表。将处于等待状态的任务加入到信号量链表中,对链表进行死锁检测。本发明完全独立于操作系统,不必在操作系统中添加任何代码,是作为一套工具性的软件存在于系统的应用层。且没有繁琐的代码改动,没有给系统增加额外的开销,有效的解决了现有方法的缺点。
【技术领域】
本发明涉及操作系统的信号量死锁的检测方法。
【背景技术】
在实时嵌入式操作系统中,对于共享资源的保护和任务间的协调及调度一般都是由系统提供信号量机制来进行管理。信号量可以有效地防止多个任务同时去访问系统的受保护资源。但有时,如果系统存在两个或两个以上的任务相互申请对方独占的信号量而导致双方都无法将任务继续下去,必须依靠外力的协助,这种现象称为信号量死锁。信号量死锁在软件开发和调试中比较常见,有效而精确的信号量死锁检测方法可以显示死锁中的信号量与任务间的占有和等待关系,有助于开发和调试。
当前,比较常见的信号量死锁检测方法是构造一个任务数组和一个信号量数组,通过系统创建任务和信号量时把相关信息记录到数组中,例如公开日为2006年9月13日、公开号为CN1831779A的专利文献揭示了一种信号量死锁的检索方法,该方法就构造了进程数组(即任务数组)和信号量数组。这类方法的缺点是显而易见的。创建任务和信号量是系统调用非常频繁的操作,如果每次操作的时候去给数组赋值这样不仅在代码上很繁琐,而且也增大的系统资源的开销。
【发明内容】
本发明需解决的技术问题是克服上述的不足,提供一种不必在操作系统中添加任何代码、没有繁琐的代码改动、没有给操作系统增加额外开销的操作系统信号量死锁的检测方法。
为解决上述的技术问题,本发明设计了一种操作系统信号量死锁的检测方法,其包括以下几个步骤:Step1:在操作系统之上的应用层建立信号量死锁检测命令;Step2:创建信号量结构体,信号量结构体包含的字段设有:信号量ID pSem、等待信号量的任务pWaitTaskTcb、拥有信号量的任务pOwner;Step3:通过调用操作系统函数判断所有任务,把处于等待的任务赋值给pWaitTaskTcb,通过pWaitTaskTcb偏移找到等待的信号量赋值给IDpSem,获取到占有信号量的任务赋值给pOwner;Step4:根据占有信号量的任务的信号量建立信号量链表a;Step5:执行死锁检测命令,遍历整条链条a,把存在等待和占有信号量关系的信号量结构体挑出来并重新组成一个新链表b,判断新链表b是否存在信号量环路,如果存在,则检测到存在信号死锁;如果不存在,则不存在信号死锁;继续遍历链表a,直到遍历完成为止。
根据本发明进一步改进,检测到存在信号死锁,把构成环路的任务及信号量打印出来。
本发明完全独立于操作系统,不必在操作系统中添加任何代码,是作为一套工具性的软件存在于系统的应用层。且没有繁琐的代码改动,没有给系统增加额外的开销,有效的解决了现有方法的缺点。
【附图说明】
图1是本发明操作系统信号量死锁的检测方法的流程图。
【具体实施方式】
下面结合附图和实施方式对本发明作进一步说明。
本发明提供了一种信号量死锁的检测方法,通过调用系统提供的信号量和任务函数动态的获取到信号量和任务信息,在操作系统之外的应用层创建信号量结构体和信号量链表。将处于等待状态的任务加入到链表中,对链表进行死锁检测。其具体的操作步骤如下:
Step1:在操作系统之上的应用层建立信号量死锁检测命令,sem check命令执行信号量死锁检测。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210575762.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于油气井开采的易拔井下过滤器及其实现方法
- 下一篇:一种木铝推拉门结构