计算机中CPU需要与外围设备硬件进行通信,而二者之间的速度差距使得让CPU等待外围设备处理完成这绝不是个好办法。。
所以,在外围设备处理数据期间,CPU去执行其他任务。。
但是,当外围设备处理完数据后,CPU怎么知道呢?一种办法是CPU周期性的轮询,这太浪费CPU时间。。
所以,引入了中断机制,硬件在需要的时候想内核(确定是内核,不是CPU,这种机制应该是软件层面的。。。,错了,其实还是CPU接受硬件中断信号,但怎么处理则由内核来定义)发送信号(linux signal?)...
每个中断设备都有其对应的中断号IRQ n,使得内核能够区别对待。。
有软件引发的异常(最常见的是操作系统调用异常trap,陷入内核),其它如错误指令(除0),缺页等都会使处理器产生异常,以通知内核去处理。。所以实际上内核中对中断和异常的处理很类似。。。
异常与中断的差别,处理软件方式,还有就是它是与处理器时钟同步的。。。
中断处理程序(interrupt handler)或中断服务例程(ISR),,,
一个设备的中断处理程序是其设备驱动程序(内核对硬件进行管理的程序)的一部分。。
在实现中,中断处理程序就是具有特定类型声明(方便内核以标准的方式进行处理)的C函数。。。
中断处理程序被内核调用来相应中断,并运行在中断上下文(原子上下文,中断代码执行不可阻塞)。。。
OVER!!!明天看看所谓的上半部与下半部。。。