正文:

  1. 异常和中断不同,异常产生必须与处理器时钟同步,也称为同步中断。
  2. 中断处理程序要负责通知硬件设备中断已被接收。
  3. kernel把中断分为上半部和下半部。
  4. irqf_disabled标志,意味着内核在处理中断处理程序本身期间要禁止所有其他中断。
  5. irqf_sample_random标志,表明这个设备产生的中断对内核熵池(负责提供从各种随机事件导出的真正的随机数)有贡献。
  6. irqf_timer标志,为系统定时器的中断处理准备的。
  7. irqf_shared标志,表明可以在多个中断处理程序间共享中断线。
  8. Linux的中断处理程序是无需重入的。当一个给定的中断处理程序正在执行时,相应的中断线在所有的处理器上都会被屏蔽掉,以防止在同一中断线上接收另一个新的中断。
  9. 内核代码一般都需要获取某种锁,防止来自其他处理器对共享数据的并发访问。获取锁的同时也伴随着禁止本地中断,不过禁止中断则是防止来自其他中断处理程序的并发访问。
  10. 在发出中断的处理器上,它将禁止和激活中断的传递。
  11. in_interrupt()宏表示内核是否处于任意中断处理中(包括处于下班部处理程序中);in_irq()宏只表示内核是否处于中断处理程序中(不包含下半部处理)。