免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: zhongyuan_sh

[中断] 中断上半部分是否能被打断 [复制链接]

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
发表于 2012-10-30 07:38 |显示全部楼层
回复 6# stephen_du
linux下同种中断不会嵌套,不同的中断可能会嵌套。可以参考http://blog.chinaunix.net/uid-20662820-id-3023342.html

   

论坛徽章:
0
发表于 2012-10-30 09:26 |显示全部楼层
瀚海书香 发表于 2012-10-30 07:36
回复 1# zhongyuan_sh
之前分析过中断这块,可以看看http://blog.chinaunix.net/uid-20662820-id-3023342 ...


非常感谢!!!!!!!!!!
又长知识了!!!!!!!!!

论坛徽章:
0
发表于 2012-10-30 10:50 |显示全部楼层
瀚海书香 发表于 2012-10-30 07:38
回复 6# stephen_du
linux下同种中断不会嵌套,不同的中断可能会嵌套。可以参考http://blog.chinaunix.ne ...


拜读了大牛的blog
还存在一个疑问:

“2.不同的硬中断是否可以嵌套?相同的硬中断是否可以嵌套,以及是否按优先级嵌套?硬中断最多可能嵌套几级?
        Linux下硬中断是可以嵌套的,但是没有优先级的概念,也就是说任何一个新的中断都可以打断正在执行的中断,但是同种中断不会打断同种中断的执行。
        但是并不是所有的中断都是可以被打断的,这需要看注册的中断函数是否设置了IRQF_DISABLED,如果设置了IRQF_DISABLED,那么硬中断处理的时候是不允许被打断的,否则是允许被打断的。Peter Zijlstra在2009.3的一个讨论中关于IRQF_DISABLED的使用问题(详见http://lwn.net/Articles/321663/)。”

中断被打断后,也就说这个中断处理函数没有处理完,那么这个中断相当于丢失了吗? 新的中断处理结束后,还会执行被打断的中断处理函数吗?

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
发表于 2012-10-30 10:59 |显示全部楼层
回复 13# zhongyuan_sh
中断被打断后,也就说这个中断处理函数没有处理完,那么这个中断相当于丢失了吗? 新的中断处理结束后,还会执行被打断的中断处理函数吗?

流程是这样的:

A中断-->禁止中断-->A中断关键操作-->开启中断-->A中断非关键操作-->B中断打断执行--->B中断执行完成-->继续执行A中断未执行完的部分

   

论坛徽章:
0
发表于 2012-10-30 11:16 |显示全部楼层
瀚海书香 发表于 2012-10-30 10:59
回复 13# zhongyuan_sh

流程是这样的:


A中断-->禁止中断-->A中断关键操作-->开启中断-->A中断非关键操作-->B中断打断执行--->B中断执行完成-->继续执行A中断未执行完的部分

非常感谢您的回复,由于本人比较菜,所以还是有些疑问:

何谓“中断关键操作”& "中断非关键操作"
您的意思,不是指“中断上半部分” 和 “中断下班部分” 吧


论坛徽章:
0
发表于 2012-10-30 11:55 |显示全部楼层
回复 14# 瀚海书香


A中断-->禁止中断-->A中断关键操作-->开启中断-->A中断非关键操作-->B中断打断执行--->B中断执行完成-->继续执行A中断未执行完的部分

非常感谢您的回复,由于本人比较菜,所以还是有些疑问:

何谓“中断关键操作”& "中断非关键操作"
您的意思,不是指“中断上半部分” 和 “中断下班部分” 吧

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
发表于 2012-10-30 12:00 |显示全部楼层
回复 15# zhongyuan_sh
所谓关键操作,就是你认为关键的,不能被打断的操作。
这里都是指在中断上半部的情况。

   

论坛徽章:
0
发表于 2012-10-30 12:42 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2012-10-30 13:05 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2012-10-30 17:33 |显示全部楼层
回复 11# 瀚海书香


    现在的内核已经不允许中断嵌套了吧。我看深入理解的时候从代码看是可以嵌套的,有一个flag表示是否可以嵌套,如果允许在handle里面就开中断。但是比较新的内核38以后代码都变了,没有这个标志了,所以一直是关中断的。

   当然从硬件上来说,嵌套仍然是可以的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP