对于低速设备,如果每次都是CPU去问询的话太低效了。这时候就可以用中断来实现硬件和CPU间的通信:不是CPU一直去问询硬件,而是硬件你需要我的时候来告诉CPU,这是一种从被动到主动的过程。
一个“中断”仅仅是一个信号,当硬件需要获得处理器对它的关注时,就可以发送这个信号。内核维护了一个中断信号线的注册表,该注册表类似于I/O端口的注册表。
中断分同步中断和异步中断
同步中断
就是常说的异常,CPU执行命令时遇到不能定义的指令(如除以0)时,就中断当前的指令去处理这些异常。
理解的简单的话同步中断是软件引起的,而异步中断是硬件引起的。
异步中断
硬件引起的中断,os给每一种设备都设定了对应的唯一中断值(IRQ, 中断请求线),硬件插入启动驱动程序时,就会去注册该硬件的中断处理程序,当该硬件发出中断时,os则调用相应的中断处理程序。