[发明专利]一种多核操作系统的自旋锁死锁检测方法在审
申请号: | 202211612125.0 | 申请日: | 2022-12-15 |
公开(公告)号: | CN116107766A | 公开(公告)日: | 2023-05-12 |
发明(设计)人: | 仝敏;张东;杨静远;杨弋;杜妍;高雅濛 | 申请(专利权)人: | 中国航空工业集团公司西安航空计算技术研究所 |
主分类号: | G06F9/52 | 分类号: | G06F9/52 |
代理公司: | 北京清大紫荆知识产权代理有限公司 11718 | 代理人: | 秦亚群 |
地址: | 710065 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多核 操作系统 自旋 死锁 检测 方法 | ||
本发明提供了一种多核操作系统的自旋锁死锁检测方法,方法包括获取操作系统处理器核集,依次查找各处理器核的变量;将变量中无待获取自旋锁信息的处理器核集中去除形成待检测核集;使用位图染色法循环查找待检测核集中运行检测程序的处理器核待获取自旋锁是否已被其他处理器核获取,如果有则发生了死锁,没有则将该处理器核剔除,并对其他处理器一一进行检测直至此待检测核集为空,多核操作系统不存在死锁,检测结束。本发明设计的方法具有高效、精确、简单方便的优点,可以尽早发现死锁问题并及时进行反馈,使用户可以根据反馈结果采取相应的解除死锁措施,从而保证系统继续运行。
技术领域
本发明涉及计算机系统软件设计技术领域,具体为一种多核操作系统的自旋锁死锁检测方法。
背景技术
当前多核操作系统的发展滞后于多核处理器的发展,多个核间的同步与互斥是多核操作系统研究的重点难点,多个核间互斥机制主要包括原子操作、自旋锁、内存栅栏、互斥信号量,其中自旋锁在提供全局资源保护的同时也带来操作的不确定等待问题,即出现自旋锁的死锁情况。
自旋锁死锁是多核操作系统中两个或者大于两个处理器核为了争夺自旋锁而相互等待的情况,如果没有外部推动则这些处理器核将无法继续运行。在一些实时性要求较高的关键软件中,必须防止处理器核处于相互等待进而出现死锁情况。
目前,操作系统层中防止死锁发生的有效方式包括死锁避免,自旋锁死锁避免策略通过操作系统对于自旋锁的使用进行严格的限制,其可对因自旋锁而引起的死锁情况进行防范。但是在面对用户复杂应用场景下的程序实现,避免死锁的措施无法满足应用要求,此时需要提供自旋锁死锁检测的方法。
发明内容
为了对多核操作系统中是否有自旋锁死锁的情况进行检测判断,并及时上报以避免一直出现自旋锁死锁的情况,确保多核操作系统的正常运行,本发明设计了一种多核操作系统的自旋锁死锁检测方法。
实现发明目的的技术方案如下:一种多核操作系统的自旋锁死锁检测方法,包括以下步骤:
S1、获取操作系统的处理器核集;
S2、基于待获取自旋锁信息,从所述处理器核集中提取待检测核集;
S3、判断所述待检测核集是否为空;
若为空,则操作系统中的处理器核不存在死锁;
若不为空,则操作系统中的处理器核存在死锁,进入并执行S4;
S4、在所述待检测核集任意选择一个处理器核作为当前核;
S5、基于待获取自旋锁信息和已获取自旋锁集,对当前核是否处于死锁状态进行判断;
若判断所述当前核处于死锁状态,则上报死锁结果;
若判断所述当前核不处于死锁状态,则进入并执行S6;
S6、删除所述当前核,并重复步骤S4~S5,直至所述待检测核集中所有处理器核均检测完。
在一个实施例中,上述步骤S1中,操作系统的处理器核集均为使能的处理器核,且所述使能的处理器核标记为1。
在另一个实施例中,上述步骤S1中,操作系统的处理器核集中包括使能的处理器核和未使能的处理器核,所述使能的处理器核标记为1,所述未使能的处理器核标记为0。
在上述实施例的一个改进实施例中,上述步骤S2中,基于待获取自旋锁信息,从处理器核集中提取待检测核集的方法,包括:
S201、获取所述处理器核集中各处理器核的变量;
S202、提取所述变量中的所述待获取自旋锁信息;
S203、剔除所述处理器核集中没有所述待获取自旋锁信息所对应的处理器核,形成所述待检测核集。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航空工业集团公司西安航空计算技术研究所,未经中国航空工业集团公司西安航空计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211612125.0/2.html,转载请声明来源钻瓜专利网。