免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: biger410
打印 上一主题 下一主题

中断处理程序为什么不能挂起 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-10-27 21:59 |只看该作者
转一篇IBM网站上的文章。
http://www.ibm.com/developerwork ... ernelint/index.html
看来以后LINUX是可能支持中断线程化的,中断处理程序就可以挂起了。

论坛徽章:
0
12 [报告]
发表于 2008-10-28 10:11 |只看该作者
中断不能挂起,因为挂起后就回不来了

论坛徽章:
0
13 [报告]
发表于 2008-10-28 10:22 |只看该作者

回复 #1 biger410 的帖子

你们把所有中断关闭(包括定时器)看一下你们的进程还能调度吗?“中断挂起”简直是莫名其妙。除非你关闭中断。

论坛徽章:
0
14 [报告]
发表于 2008-10-28 10:51 |只看该作者
中断怎么没有被挂起?

时钟中断后导致了进程调度就是将该始终中断挂起了.

论坛徽章:
0
15 [报告]
发表于 2008-10-28 11:02 |只看该作者
时钟中断引起的进程切换也是在中断结束时进行的,不算中断挂起吧.
我对中断处理函数不能挂起的理解是:在中断处理过程中,对应IRQ line处于被屏蔽状态之中,若中断处理被挂起,将导致该IRQ line一直得不到响应

论坛徽章:
0
16 [报告]
发表于 2008-10-28 11:29 |只看该作者
不管细节.
中断了一个程序在A指令, 中断返回后应该返回A+1执行.
如果没有返回到A+1而去其它地方了, 就是中断没有真正返回.

LINUX中只有时钟中断的进程调度有此情况.

原帖由 specter117 于 2008-10-28 11:02 发表
时钟中断引起的进程切换也是在中断结束时进行的,不算中断挂起吧.
我对中断处理函数不能挂起的理解是:在中断处理过程中,对应IRQ line处于被屏蔽状态之中,若中断处理被挂起,将导致该IRQ line一直得不到响应

论坛徽章:
0
17 [报告]
发表于 2008-10-28 15:50 |只看该作者
挂起一个进程或内核线程,需要保存现场,还要有机制来保证在适当的时候能够从某一点重新唤醒被挂起的进程或是内核线程。现在的linux内核并没有对中断实现这样的机制。中断线程化,就是给中断处理例程一个内核线程的上下文,在内核线程中运行中断处理例程。并且赋予每个中断一个线程的优先级,这样更高优先级的实时任务可以更快的获得响应。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP