关于中断
-
中断其实是一种异步的事件处理机制,可以提高系统的并发处理能力。
-
为了减少对正常进程运行调度的影响,中断处理程序就需要尽可能快地运行
-
Linux 将中断处理过程分成了两个阶段,也就是上半部和下半部
- 上半部用来快速处理中断,它在中断禁止模式下运行,主要处理跟硬件紧密相关的或时间敏感的工作。
- 半部用来延迟处理上半部未完成的工作,通常以内核线程的方式运行。
-
上半部直接处理硬件请求,也就是我们常说的硬中断,特点是快速执行;
-
而下半部则是由内核触发,也就是我们常说的软中断,特点是延迟执行。
查看软中断和内核线程
- /proc/softirqs 提供了软中断的运行情况
- /proc/interrupts 提供了硬中断的运行情况。
总结
Linux 中的中断处理程序分为上半部和下半部:
- 上半部对应硬件中断,用来快速处理中断。
- 下半部对应软中断,用来异步处理上半部未完成的工作。
Linux 中的软中断包括网络收发、定时、调度、RCU 锁等各种类型,可以通过查看 /proc/softirqs 来观察软中断的运行情况。
内核选项命令参数等汇总
-
/proc/softirqs
提供了软中断的运行情况
-
/proc/interrupts
提供了硬中断的运行情况