什么是中断
Linux 内核需要对连接到计算机上的所有硬件设备进行管理,毫无疑问这是它的份内事。如果要管理这些设备,首先得和它们互相通信才行,一般有两种方案可实现这种功能:
轮询(polling) 让内核定期对设备的状态进行查询,然后做出相应的处理;
中断(interrupt) 让硬件在需要的时候向内核发出信号(变内核主动为硬件主动)。
第一种方案会让内核做不少的无用功,因为轮询总会周期性的重复执行,大量地耗用 CPU 时间,因此效率及其低下,所以一般都是采用第二种方案 。
从物理学的角度看,中断是一种电信号,由硬件设备产生,并直接送入中断控制器(如 8259A)的输入引脚上,然后再由中断控制器向处理器发送相应的信号。处理器一经检测到该信号,便中断自己当前正在处理的工作,转而去处理中断。此后,处理器会通知 OS 已经产生中断。这样,OS 就可以对这个中断进行适当的处理。不同的设备对应的中断不同,而每个中断都通过一个唯一的数字标识,这些值通常被称为中断请求线。
中断分类
中断可分为同步(synchronous)中断和异步(asynchronous)中断:
1. 同步中断是当指令执行时由 CPU 控制单元产生,之所以称为同步,是因为只有在一条指令执行完毕后 CPU 才会发出中断,而不是发生在代码指令执行期间,比如系统调用。
2. 异步中断是指由其他硬件设备依照 CPU 时钟信号随机产生,即意味着中断能够在指令之间发生,例如键盘中断。
根据 Intel 官方资料,同步中断称为异常(exception),异步中断被称为中断(interrupt)。
中断可分为可屏蔽中断(Maskable interrupt)和非屏蔽中断(Nomaskable interrupt)。异常可分为故障(fault)、陷阱(trap)、终止(abort)三类。
从广义上讲,中断可分为四类:中断、故障、陷阱、终止。这些类别之间的异同点请参看 表 1。
| 类别 | 原因 | 异步/同步 | 返回行为 |
|---|---|---|---|
| 中断 | 来自I/O设备的信号 | 异步 | 总是返回到下一条指令 |
| 陷阱 | 有意的异常 | 同步 | 总是返回到下一条指令 |
| 故障 | 潜在可恢复的错误 | 同步 | 返回到当前指令 |
| 终止 | 不可恢复的错误 | 同步 | 不会返回 |
X86 体系结构的每个中断都被赋予一个唯一的编号或者向量(8 位无符号整数)。非屏蔽中断和异常向量是固定的,而可屏蔽中断向量可以通过对中断控制器的编程来改变。
三相电机接线信息图
时间:2026-07-23
准 Z 源逆变器的设计
时间:2026-07-23
关于阻容吸收器的简单介绍
时间:2026-07-23
S7-1200和CP343-1的Profinet通信方法
时间:2026-07-23
PDP(等离子显示),PDP是什么意思
时间:2026-07-23
光纤收发器的连接方式和作用
时间:2026-07-22
什么是电磁波?电磁波常见问题
时间:2026-07-22
如何区分有源晶振和无源晶振
时间:2026-07-22
什么是“涡流”以及为什么它们对电机很重要...
时间:2026-07-22
802.11g和802.11n的选择分析
时间:2026-07-21
什么是追踪缓存/转接卡?
时间:2026-03-06
坐标基准
时间:2026-03-07
GPS接收机的分类
时间:2026-03-07
GPS的WAAS跟踪性能
时间:2026-03-07
什么是GPS旅行提示器/屏幕尺寸
时间:2026-03-07
GPS设备的动态性能
时间:2026-03-07
GPS的接口有哪些类型?
时间:2026-03-07
GPS设备的AV接口
时间:2026-03-07
GPS设备的差分模式
时间:2026-03-07
GPS设备的定位时间
时间:2026-03-07