中断又叫异步中断,由硬件触发。而异常又称为同步中断,由软件触发。
中断服务程序(中断处理函数)是一种处理中断响应的函数,它是一种遵循特定原型声明的C函数,它运行在中断上下文中,也称为原子上下文,代码运行在此上下文中是不能被阻塞的。中断服务程序必须运行非常快,它最基本的工作就是告诉硬件已经收到了它发出的中断,但通常还执行大量其他的工作。为此,一般中断服务程序分为两半,一半是中数据恢复处理函数,称为上半部,它只执行那些可以很快执行的代码,如向硬件确认已经收到中断号等,其他的工作要延迟到下半部去执行。
执行在中断上下文中的代码需要注意的一些事项:
中断上下文中的代码不能进入休眠。
不能使用mutex,只能使用自旋锁,且仅当必须时。
中断处理函数不能直接与用户空间进行数据交换。
中断处理程序应该尽快结束。
中断处理程序不需要是可重入的,因为相同的中断处理函数不能同时在多个处理器上运行。
中断处理程序可能被一个优先级更高的中断处理程序所中断。为了避免这种情况,可以要求内核将中断处理程序标记为一个快速中断处理程序(将本地CPU上的所有中断禁用),不过在采取这个动作前要慎重考虑对系统的影响。
http://blog.csdn.net/fuyajun01/article/details/7422249
http://blog.csdn.net/skyflying2012/article/details/7850674
分享到:
相关推荐
Linux内核中断分析,希望对初学者有所帮助!
linux内核中断实例,可能通过模块参数插入指定的中断中
把内核中断的流程说的很清楚,学习Linux的必备资料
linux内核中断处理.doc
内核中断处理内核中断处理内核中断处理 内核中断处理
Linux内核中断机制,值得看看啊。 Linux内核中断机制,值得看看啊。 Linux内核中断机制,值得看看啊。 Linux内核中断机制,值得看看啊。
ARM内核中断技术,研究生小论文嵌入式arm7
笔者将以μC/OS-II实时内核为例,通过对μC/OS-II的改进,向读者描述一种缩短实时操作系统中断关闭时间的方法。
linux中断--内核中断编程.docx
Linux2_4内核中断之探析.PDF
Linux内核中断分析.pdf
关于linux 内核中断相关的源码阅读笔记
linux内核中断[定义].pdf
Linux 2.4内核中断之探析.pdf
1 什么是中断 Linux 内核需要对连接到计算机上的所有硬件设备进行管理,毫无疑问这是它的份内事。 如果要管理这些设备,首先得和它们互相通信才行,一般有两种方案可实现这种功能: l 轮询(polling) 内核定期对...
优化的μCOS-III实时内核中断管理机制.docx
linux内核中的中断与异常,结合深入理解linux内核、linux内核的设计与实现、linux内核源代码情景分析三本书做出来的ppt,看ppt时请结合深入理解linux内核或者linux内核的设计与实现。 自己做的ppt,有错误之处请指出...
---------------------------------------------------Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈
这是对blog文章的一个总结,分析bfin-uclinux-2008r1.5内核的中断处理,适用于ADSP-BF561,第三版。
用于将通过cat /sys/kernel/debug/tracing/trace命令获取的log文件,进行解析,和统计,分类:哪一号中断,在哪一号CPU上运行,总共运行时间多久,最大单次处理时间,最小单次处理时间,平均处理时间,相同中断发生...