免费注册 查看新帖 |

Chinaunix

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

中断中获取自旋锁为什么要禁止本地中断 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-08-15 10:16 |只看该作者 |倒序浏览
中断中获取自旋锁为什么要禁止本地中断? 不是很明白,求教,谢谢!

论坛徽章:
0
2 [报告]
发表于 2010-08-16 10:04 |只看该作者
大概是下个中断可能抢占正在运行的中断。正在运行的获得自旋锁后,被抢占,再运行这段代码,又要获得自旋锁,死锁。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2010-08-16 17:20 |只看该作者
获得spinlock后,赶紧运行, 就几个指令的问题。然后再释放。
如果打开中断, 那谁知道中断处理什么时候结束。
那其它 cpu不就等的望穿秋水了。

论坛徽章:
0
4 [报告]
发表于 2010-08-19 19:32 |只看该作者
二楼正解。 因为中断是以随机方式发生, 从而有可能抢占刚刚获得lock的中断处理程序。 如果抢占的中断程序也刚好需要这把锁, 或者说是其后抢占的内核程序需要这把锁, 而这把锁没有释放, 从而死锁

论坛徽章:
0
5 [报告]
发表于 2010-08-20 10:06 |只看该作者
看了LDD3上的解释,有点明白了,不过还要在编程中慢慢体会,谢谢楼上几位了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP