[发明专利]死锁控制方法和装置有效
申请号: | 201610261308.0 | 申请日: | 2016-04-25 |
公开(公告)号: | CN107305507B | 公开(公告)日: | 2020-05-01 |
发明(设计)人: | 魏亚文;孙政 | 申请(专利权)人: | 北京京东尚科信息技术有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 孙清然;王琦 |
地址: | 100080 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 死锁 控制 方法 装置 | ||
1.一种死锁控制方法,其特征在于,包括:
预先将应用程序中需要请求共享资源的代码封装为函数模块;
当所述应用程序的线程执行所述函数模块时,将当前的上下文环境信息保存在所述线程的回滚资源池中;对所述函数模块需要请求的共享资源进行锁定,如果锁定成功,则触发所述线程继续执行;否则,阻塞所述线程;
当所述线程需要释放所占用的共享资源时,将相应的上下文环境信息从所述线程的回滚资源池中删除;
当发生死锁时,确定当前需要释放资源的线程S1以及资源释放时需要回滚到的目标函数模块;利用所述线程S1的回滚资源池中的上下文环境信息,按照先执行后回退的原则,将所述线程S1的待执行位置回滚到所述目标函数模块;阻塞所述线程S1,触发当前等待被释放的共享资源的线程获取所述被释放的共享资源;
所述将所述线程S1待执行位置回滚到所述目标函数模块包括:
按照后入先出的顺序,从所述线程S1的回滚资源池中依次取出上下文环境信息并根据所述上下文环境信息释放相应的共享资源,直至取出所述目标函数模块对应的上下文环境信息并释放对应的共享资源,将所述线程S1的待执行位置设置为所述目标函数模块。
2.根据权利要求1所述的方法,其特征在于,按照释放资源数量最少的原则,确定当前需要释放资源的线程S1,以及资源释放时回滚到的目标函数模块。
3.根据权利要求2所述的方法,其特征在于,所述确定当前需要释放资源的线程S1,以及资源释放时回滚到的目标函数模块包括:
对于所述死锁涉及的每个线程,确定当前占用本线程等待的共享资源W的线程Q,以及在所述共享资源W对应的上下文环境信息之后保存至所述线程Q的回滚资源池的上下文环境信息数量N;
选择最小的所述N对应的所述线程Q,作为所述当前需要释放资源的线程S1;并将相应的所述线程S1中请求所述共享资源W的函数模块作为所述目标函数模块。
4.根据权利要求1所述的方法,其特征在于,所述触发当前等待被释放的共享资源的线程获取所述被释放的共享资源包括:
唤醒当前所有等待所述被释放的共享资源的线程;
每个被唤醒的线程请求锁定被释放的所述共享资源,如果锁定成功,则触发该锁定成功的线程继续执行,如果锁定失败,则阻塞该锁定失败的线程。
5.一种死锁控制装置,其特征在于,包括:
调用控制单元,用于当应用程序的线程执行指定的函数模块时,将当前的上下文环境信息保存在所述线程的回滚资源池中;对所述函数模块需要请求的共享资源进行锁定,如果锁定成功,则触发所述线程继续执行;否则,阻塞所述线程;所述函数模块为预先采用函数形式对应用程序中需要请求共享资源的代码进行封装后得到的模块;
资源释放单元,用于当所述线程需要释放所占用的共享资源时,将相应的上下文环境信息从所述线程的回滚资源池中删除;
死锁控制单元,用于当发生死锁时,确定当前需要释放资源的线程S1以及资源释放时需要回滚到的目标函数模块;按照后入先出的顺序,从所述线程S1的回滚资源池中依次取出上下文环境信息并根据所述上下文环境信息释放相应的共享资源,直至取出所述目标函数模块对应的上下文环境信息并释放对应的共享资源,将所述线程S1的待执行位置设置为所述目标函数模块;阻塞所述线程S1,触发当前等待被释放的共享资源的线程获取所述被释放的共享资源;
资源池管理单元,用于为所述应用程序的各线程创建和维护所述回滚资源池。
6.根据权利要求5所述的装置,其特征在于,所述资源释放单元,用于按照释放资源数量最少的原则,确定当前需要释放资源的线程S1,以及资源释放时回滚到的目标函数模块。
7.根据权利要求6所述的装置,其特征在于,所述死锁控制单元,用于对于所述死锁涉及的每个线程,确定当前占用本线程等待的共享资源W的线程Q,以及在所述共享资源W对应的上下文环境信息之后保存至所述线程Q的回滚资源池的上下文环境信息数量N;选择最小的所述N对应的所述线程Q,作为所述当前需要释放资源的线程S1;并将相应的所述线程S1中请求所述共享资源W的函数模块作为所述目标函数模块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司,未经北京京东尚科信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610261308.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:动态分配内存的方法、装置及系统
- 下一篇:制造执行系统及其操作方法