怎么解除Linux系统的死锁??
答案:2 悬赏:20
解决时间 2021-11-26 03:57
- 提问者网友:熱戀丶瘋
- 2021-11-25 15:52
怎么解除Linux系统的死锁??
最佳答案
- 二级知识专家网友:抱不住太阳的深海
- 2021-11-25 16:15
你可以进到系统另外一个环境,打开终端,使用TOP命令看看什么进程没有响应,kill 掉 就可以解除死锁了
全部回答
- 1楼网友:一池湖水
- 2021-11-25 17:55
死锁形成的原因是不同进程所持有和申请的锁形成了一个环,出现死锁一般表明程序代码中有bug。 在linux内核中,为了避免死锁,有几条措施: 1 spin lock获得后不会发生进程调度; 2 获取多把spin lock时,所有进程按照锁的地址大小顺序获取; 3 要使用多个锁的子系统中,对各种锁的使用会形成一个获取顺序的约定,(可参考mm/rmap.c) 4 linux内核中有一个nmi不可屏蔽中断,如果系统发现关中断时间过长,就会认为发生了死锁,触发这个中断。当然这种措施并不能发现那些未关中断获取的锁导致的死锁。 总而言之,死锁是一种bug,linux内核中并没有什么能够在系统发生死锁之后还能够恢复过来的机制。 不过美国washington大学的nooks项目好像在这方面有些改进。(参见http://nooks.cs.washington.edu/)
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯