免费注册 查看新帖 |

Chinaunix

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

[中断] 内核竞争同步疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-06-21 16:10 |只看该作者 |倒序浏览
如题,在LDD3中看到,如果在irq中要保护数据的话,要使用spinlock,原因是在中断context中,这个context指的是什么context?特点是什么?和user context or kernel context有什么区别?如果在exception中,要保护数据的话,应该使用什么方法?在softirq中要使用什么方法?tasklet呢?work_queue呢?

论坛徽章:
0
2 [报告]
发表于 2013-06-21 23:35 |只看该作者
中断上下文不能睡眠,保护数据只能用自旋锁。软中断和tasklet也不能睡眠,但tasklet不需要保证代码的可重入性,工作队列可在进程上下文执行所以可睡眠

论坛徽章:
0
3 [报告]
发表于 2013-06-22 08:42 |只看该作者
回复 2# haohuanfei


    中断上下文为什么不能睡眠,原因是什么?有谁能解释吗?中断contex和kernel contex或者是user context到底之间有什么区别?谁能给出答案?

论坛徽章:
0
4 [报告]
发表于 2013-06-22 21:12 |只看该作者
回复 3# cuibixiong_cu
通俗易懂就是,中断只能嵌套。进程才可以切换。
所以中断就不能睡眠啊。。进程是可以的。


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP