Linux.ChinaUnix.net
ChinaUnix | Linux首页 | 新闻 | 博客 | 文章 | 专栏 | 新手 | 方案 | 图书 | 下载 | 人才 | 手册 | wiki | 搜索     
Linux论坛
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


奥运快报: 
奥运热点:
 

弱问:在kernel里死循环的问题
首页 » CU论坛 » Linux » 汇总贴列表 » 内核源码 »  
[打印] [订阅] [收藏] [推荐给朋友] [本帖文本页]
frank_seng
精灵



UID:588431
注册:2007-7-17
最后登录: 2008-08-15
帖子:208
精华:2

可用积分:226 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[资料] [站内短信] [Blog]


顶部
21楼 发表于 2008-5-11 10:19 


QUOTE:
原帖由 dengcainiao 于 2008-5-10 11:35 发表

过程描述的很详细啊,e描述的稍微有点不准确,实际上中断返回时只要发现之前的中断发生在中断上下文都不会执行当前中断的后半部

把  [ e] 检查没有,则执行键盘的软中断处理程序。很明显,这里刚才的收包软中断没有处理完毕,因此是有没有处理完毕的软中断的,所以中断直接退出,而不执行键盘的软中断处理程序;

改成:
[ e] 检查没有,并且中断前运行在用户态,则执行未处理的软中断,包括键盘的软中断处理程序,如果中断前运行在内核态,则执行原来被中断的内核指令序列。很明显,该案例中就属于后一种情况,而被中断的内核指令序列就是刚刚被中断的死循环软中断,继续进入while(....)中;

回答时偷了下懒!主要让楼主明白核心意思即可

[ 本帖最后由 frank_seng 于 2008-5-11 10:21 编辑 ]



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘

首页 » CU论坛 » Linux » 汇总贴列表 » 内核源码 »

 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - Linux时代 - Archiver - WAP - TOP

Processed in 0.045596 second(s), 5 queries , Gzip enabled