免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4201 | 回复: 2

[中断] 关于软中断的一个小问题 [复制链接]

论坛徽章:
6
2015年迎新春徽章
日期:2015-03-04 10:16:53操作系统版块每日发帖之星
日期:2015-08-04 06:20:002015亚冠之鹿岛鹿角
日期:2015-08-05 16:51:182015亚冠之全北现代
日期:2015-08-07 17:14:392015亚冠之武里南联
日期:2015-08-11 15:33:03数据库技术版块每日发帖之星
日期:2016-02-02 06:20:00
发表于 2018-05-04 17:39 |显示全部楼层
本帖最后由 lxy572535121 于 2018-05-04 17:42 编辑

我在书上看到关于软中断的描述:

“在下列地方,待处理的软中断会被检查和执行:

1. 从一个硬件中断代码处返回时

2. 在ksoftirqd内核线程中

3. 在那些显示检查和执行待处理的软中断的代码中,如网络子系统中”


书上说硬件中断是立即执行,软中断是推后执行,但是上面的第一点说

1.从一个硬件中断代码返回时 软中断会被执行

我的理解是这样:硬中断处理程序放在一个函数,软中断处理程序放在另一个函数,

当硬中断处理函数返回后接着调用软中断的处理函数,这和软中断推后执行有什么关系?

这不是软中断紧跟在硬中断后面执行么?这和软中断推后执行有什么关系?这样的意义是什么?


文字有点略长,希望那位好心人能帮我解惑

  • 在此先谢过



论坛徽章:
0
发表于 2018-05-06 10:19 |显示全部楼层
本帖最后由 zhangku0 于 2018-05-06 10:20 编辑

下半部中的软中断确实可以紧接着执行 我自己这样理解 软中断的执行优先级小于中断 所以在软中断执行过程中 解除硬件中断比较紧急的状态(表现为 中断可以抢占软中断 同类中断不能嵌套执行)  不知这样理解对不对

论坛徽章:
9
辰龙
日期:2014-08-18 20:38:42未羊
日期:2014-09-04 08:50:45丑牛
日期:2014-09-06 00:12:55寅虎
日期:2014-12-22 20:50:56摩羯座
日期:2015-01-14 22:28:15巳蛇
日期:2015-01-23 20:39:272015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之青岛
日期:2016-03-13 23:37:1915-16赛季CBA联赛之深圳
日期:2016-03-29 18:52:38
发表于 2018-05-12 08:17 来自手机 |显示全部楼层
中断返回后执行,不是说你的中断处理程序返回,而是说有硬中断都处理完后。而且他是在开中断环境执行的。因此这么做就把优先级降到所有硬中断处理程序的后面。首先保障软中断不影响硬中断。单优先级还是比任务优先级高。在中断返回的执行点上,会有判断点,如果软中断太多,就直接放软中断线程执行,降到和普通任务一个级别。从这可以看出来内核的策略。首先必须不影响硬中断,再者,在不过与影响任务的执行前,优先任务执行,但如果影响大了,就和任务平级执行。话说新的内核已经取消中断返回的运行点了,变为一直在任务环境执行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP