中断是一种可以使CPU和硬件设备进行通信的技术。例如,当我们在敲击键盘时,键盘控制器(控制键盘的硬件设备)会发送一个中断,通知操作系统有键按下。从本质上说,中断是一种特殊的信号,由硬件设备向CPU发送。当CPU接收到中断信号后,就会马上通知操作系统此信号的到来,然后由操作系统负责处理这些新到来的数据。
中断请求:不同的设备对应的中断不同,每一个中断都通过一个唯一的数字标识。这些数字表示的中断值被称为中断请求(IRQ, Interrupt Request)线,也可称为IRL(Interrupt Request Lines)。
中断处理程序:在响应一个特定中断时,内核会执行一个函数,这个函数叫做中断处理程序(interrupt handler),也可称为中断服务例程(interrupt service routing, ISR)。
Linux中断处理的核心:顶半部(Top Half)和底半部(Bottom Half)
(1)处理中断可以分为如下两部分:
a:接收和响应中断请求。—— 会在很短的时间被处理完成。
b:处理中断的业务逻辑。——“延迟执行”由底半部分来完成中断处理的大部分工作,通常不是非常紧急的,而且相对比较耗时,并且不在硬件中断服务程序中执行。
(2)顶半部:即“耗时少”底半部:即“延迟执行”
