Chinaunix
标题: 关于软中断的一个小问题 [打印本页]
作者: lxy572535121 时间: 2018-05-04 17:39
标题: 关于软中断的一个小问题
本帖最后由 lxy572535121 于 2018-05-04 17:42 编辑
我在书上看到关于软中断的描述:
“在下列地方,待处理的软中断会被检查和执行:
1. 从一个硬件中断代码处返回时
2. 在ksoftirqd内核线程中
3. 在那些显示检查和执行待处理的软中断的代码中,如网络子系统中”
书上说硬件中断是立即执行,软中断是推后执行,但是上面的第一点说
1.从一个硬件中断代码返回时 软中断会被执行
我的理解是这样:硬中断处理程序放在一个函数,软中断处理程序放在另一个函数,
当硬中断处理函数返回后接着调用软中断的处理函数,这和软中断推后执行有什么关系?
这不是软中断紧跟在硬中断后面执行么?这和软中断推后执行有什么关系?这样的意义是什么?
文字有点略长,希望那位好心人能帮我解惑
- 在此先谢过

作者: zhangku0 时间: 2018-05-06 10:19
本帖最后由 zhangku0 于 2018-05-06 10:20 编辑
下半部中的软中断确实可以紧接着执行 我自己这样理解 软中断的执行优先级小于中断 所以在软中断执行过程中 解除硬件中断比较紧急的状态(表现为 中断可以抢占软中断 同类中断不能嵌套执行) 不知这样理解对不对
作者: Tinnal 时间: 2018-05-12 08:17
中断返回后执行,不是说你的中断处理程序返回,而是说有硬中断都处理完后。而且他是在开中断环境执行的。因此这么做就把优先级降到所有硬中断处理程序的后面。首先保障软中断不影响硬中断。单优先级还是比任务优先级高。在中断返回的执行点上,会有判断点,如果软中断太多,就直接放软中断线程执行,降到和普通任务一个级别。从这可以看出来内核的策略。首先必须不影响硬中断,再者,在不过与影响任务的执行前,优先任务执行,但如果影响大了,就和任务平级执行。话说新的内核已经取消中断返回的运行点了,变为一直在任务环境执行。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) |
Powered by Discuz! X3.2 |