Linux内核中断管理全解析
1. 中断管理基础
1.1 中断的概念
Linux内核除了处理进程和用户请求外,还负责管理和与硬件进行通信,这主要通过中断来实现。中断是外部硬件设备发送给处理器的信号,请求立即处理。在中断对CPU可见之前,需要由中断控制器启用,中断控制器的主要任务是将中断路由到各个CPU。
1.2 中断的状态
中断有五种状态,具体如下:
| 状态 | 描述 |
| — | — |
| 活动(Active) | 已被处理单元(PE)确认并正在处理的中断。在处理过程中,同一中断的再次断言不会作为中断呈现给处理单元,直到初始中断不再活动。 |
| 待处理(Pending) | 在硬件中被识别为已断言或由软件生成,等待目标PE处理的中断。大多数硬件设备在其“中断待处理”位被清除之前不会生成其他中断。禁用的中断不会处于待处理状态,因为它永远不会被断言,会被中断控制器立即丢弃。 |
| 活动且待处理(Active and pending) | 一次中断断言处于活动状态,后续断言处于待处理状态的中断。 |
| 非活动(Inactive) | 既不活动也不待处理的中断。停用会清除中断的活动状态,从而允许待处理的中断再次被处理。 |
| 禁用/停用(Disabled/Deactivated) | CPU不知道且中断控制器也看不到的中断,永远不会被断言,禁用的中断会丢失。 |
1.3 中断的启用与禁用
处理器复位后会禁用所有中断,直到初始化代码再次启用它们。中断通过设置/清除处理器状态/控制寄存器中的位来启用/禁用。当断言中断时,处理器会检查中断
超级会员免费看
订阅专栏 解锁全文
1807

被折叠的 条评论
为什么被折叠?



