2025-11-08 06:20:19
咱们来说说Linux内核咋搞中断那事儿。当硬件设备要和CPU说话时,会先往中断控制器扔个请求。内核那块儿收到信号后,得先暂停当前进程的工作,然后翻中断表找对应处理程序。处理完再切换回来,就像接力赛交接棒一样。关键点在于优先级判断,高优先级中断能抢断低优先级的,这点在Linux 5.15的源码里有注释说明。
为啥得这么设计呢?硬件中断源多的话,直接让CPU干不过来。比如USB设备插拔可能有几十种中断类型,全让CPU逐个处理就堵车了。内核那块儿专门建了个中断描述符表,每个条目存着处理函数和优先级。咱们看数据的话,Linux 5.15的文档说平均每个上下文切换要1.2微秒,中断处理平均0.8微秒。要是直接不中断当前进程,像发邮件那样排队处理,系统响应早就超时了。硬件那边早就干完活等得不耐烦了,这时候中断机制就像个交通协管员,确保重要事情优先处理。像键盘输入这种实时性要求高的操作,中断优先级比后台日志写还要高两档呢。
本题链接: