免费注册 查看新帖 |

Chinaunix

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

[中断] X86架构下是否存在外设中断嵌套 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2013-06-04 16:21 |显示全部楼层
本帖最后由 frank529 于 2013-06-04 16:21 编辑

ULK3 P166说了中断发生的时候内核用SAVE_ALL保存现场,同时CPU也会自动保存cs,eip等寄存器到栈里。第二个中断也是通过ret_from_intr()恢复现场。此时不允许内核抢占是因为第一个中断的现场都保存在当前进程的内核栈里,如果切走了就回不到第一个中断了,所以用preempt_count来禁止内核抢占。

论坛徽章:
0
2 [报告]
发表于 2013-06-04 16:37 |显示全部楼层
本帖最后由 frank529 于 2013-06-04 16:37 编辑

回复 4# dxyf1524


    LKD P45, 你自己也说了当preempt_count大于0说明不允许内核抢占,这个说法是对的。preempt_count是用来标记嵌套深度的,只要它大于0,就不允许

抢占,至于为什么,我已经解释了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP