1. 中断定义(Event)
中断 (Interrupt):指当出现需要时,CPU暂时暂停当前程序的执行,转而执行处理新情况的程序的处理过程。
即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程。
2. 中断分类
现代处理器的中断概念变得越来越广泛,已经不仅仅局限于外部设备中断。
中断存在的意义是CPU控制外部设备的同时,外部设备也可以高效的“控制CPU”
。
发展至今,这种设计思想扩展到了外部硬件控制CPU、软件控制CPU、CPU运行管理
等三个方面。
因此,使用event 事件
来表示则更加贴切实际,但在平时描述中,基本上仍然采用了中断
这个词。
Event
的分类如下图,主要包括中断和异常:
Hardware Interupt
:外部硬件控制CPUSoftware Interrupt
:软件控制CPUException
:CPU运行管理
2.1 根据信号来源
1)硬中断
&emsp当设备有某种事件发生时,它就会产生中断,通过总线把电信号发送给
中断控制器信号
,当设备有某种事件发生时,它就会产生中断,通过总线把电信号发送给中断控制器
。
如果中断的线是激活的,中断控制器就把电信号发送给处理器的某个特定引脚。处理器于是立即停止自己正在做的事,跳到中断处理程序的入口点,进行中断处理。
硬中断是 由与系统相连 外设
(比如网卡、硬盘)自动产生的。主要是用来通知操作系统系统外设状态的变化。比如当网卡收到数据包的时候,就会发出一个中断。我们通常所说的中断指的是硬中断(hardirq)。
2)软中断
为了满足实时系统的要求,中断处理应该是越快越好。linux为了实现这个特点,当中断发生的时候,硬中断处理那些短时间就可以完成的工作,而将那些处理事件比较长的工作,放到中断之后来完成,也就是软中断来完成。