免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8341 | 回复: 9
打印 上一主题 下一主题

linux对死锁的处理? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-07 11:41 |只看该作者 |倒序浏览
请教高手,死锁问题是进程调度的一个重要内容
可是,《linux内核完全注释》(赵炯编著)中对sched.c的分析中,好像没有提到这方面的内容,

不知道linux对死锁是怎么处理的?

论坛徽章:
0
2 [报告]
发表于 2007-04-07 13:14 |只看该作者

回复 #1 gp8209 的帖子

死锁形成的原因是不同进程所持有和申请的锁形成了一个环,出现死锁一般表明程序代码中有bug。
在Linux内核中,为了避免死锁,有几条措施:
1   spin lock获得后不会发生进程调度;
2   获取多把spin lock时,所有进程按照锁的地址大小顺序获取;
3   要使用多个锁的子系统中,对各种锁的使用会形成一个获取顺序的约定,(可参考mm/rmap.c)
4  Linux内核中有一个nmi不可屏蔽中断,如果系统发现关中断时间过长,就会认为发生了死锁,触发这个中断。当然这种措施并不能发现那些未关中断获取的锁导致的死锁。
总而言之,死锁是一种bug,linux内核中并没有什么能够在系统发生死锁之后还能够恢复过来的机制。 不过美国washington大学的Nooks项目好像在这方面有些改进。(参见http://nooks.cs.washington.edu/

论坛徽章:
0
3 [报告]
发表于 2007-04-08 23:37 |只看该作者
非常感谢,
我再查查资料,遇到什么问题再请教阿

论坛徽章:
0
4 [报告]
发表于 2007-04-09 12:15 |只看该作者
原帖由 puppylove 于 2007-4-7 13:14 发表于 2楼  

总而言之,死锁是一种bug,linux内核中并没有什么能够在系统发生死锁之后还能够恢复过来的机制。



说得好,系统最好能尽可能的检测到死锁的发生,然后直接panic来个核心转储,这样有利于分析和解决问题。

Solaris就是这样做的,部分死锁就会被内核检测并panic。

论坛徽章:
0
5 [报告]
发表于 2007-04-09 12:53 |只看该作者

回复 #4 Solaris12 的帖子

最近这段时间比较空闲,正在研究Solaris, 有问题的时候希望能够得到指教,谢谢。

论坛徽章:
0
6 [报告]
发表于 2007-04-10 12:20 |只看该作者
原帖由 puppylove 于 2007-4-9 12:53 发表于 5楼  
最近这段时间比较空闲,正在研究Solaris, 有问题的时候希望能够得到指教,谢谢。


好,欢迎技术讨论。关于solaris死锁的debug,我有blog,你可以去看看。

最近intel也在北京和上海招聘OpenSolaris内核开发,相信以后有很多机会找到同道来讨论Solaris开发了。

论坛徽章:
0
7 [报告]
发表于 2007-04-10 12:49 |只看该作者
原帖由 Solaris12 于 2007-4-10 12:20 发表于 6楼  


好,欢迎技术讨论。关于solaris死锁的debug,我有blog,你可以去看看。

最近intel也在北京和上海招聘OpenSolaris内核开发,相信以后有很多机会找到同道来讨论Solaris开发了。



intel北京也有?  印象里连linux也是只有上海有职位的, 而且给的还挺扣。

论坛徽章:
0
8 [报告]
发表于 2007-04-10 13:01 |只看该作者

回复 #7 albcamus 的帖子

intel北京这边都是搞研究的吧?好像paper发得比较多。  去年年底的时候得到了一个面试机会,不过后来仔细考虑了一下,觉得想先做几年工程再说,所以放弃了。

论坛徽章:
0
9 [报告]
发表于 2007-04-11 21:52 |只看该作者
原帖由 albcamus 于 2007-4-10 12:49 发表于 7楼  



intel北京也有?  印象里连linux也是只有上海有职位的, 而且给的还挺扣。


我也是听同事说的,正好在招聘版看到有招opensolaris开发,你可以去问问。

论坛徽章:
0
10 [报告]
发表于 2007-04-11 21:56 |只看该作者
原帖由 puppylove 于 2007-4-10 13:01 发表于 8楼  
intel北京这边都是搞研究的吧?好像paper发得比较多。  去年年底的时候得到了一个面试机会,不过后来仔细考虑了一下,觉得想先做几年工程再说,所以放弃了。




http://bbs.chinaunix.net/viewthr ... &extra=page%3D6


我可能还可以推荐另一家公司的OpenSolaris驱动开发的职位,如果有兴趣,可以把简历发给我,邮件在我blog上找。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP