什么是 Interrupt?
Interrupt(中断) 是计算机系统中一种重要的机制,用于处理异步事件。
当某个硬件设备或软件需要 CPU 立即关注时,会发送一个中断信号,CPU 暂停当前任务,
转而执行对应的中断服务程序(ISR),处理完毕后再返回原任务。
中断的类型
- 硬件中断(Hardware Interrupt):由外部设备(如键盘、鼠标、磁盘)触发。
- 软件中断(Software Interrupt):由程序指令(如系统调用)主动发起。
- 异常(Exception):由 CPU 在执行指令时检测到错误(如除零、缺页)而产生。
中断的工作流程
- CPU 正常执行主程序。
- 外部设备发出中断请求(IRQ)。
- CPU 完成当前指令后,检查中断是否被允许。
- 若允许,则保存当前上下文(寄存器状态等)。
- 跳转至对应的中断服务程序(ISR)执行。
- ISR 执行完毕,恢复上下文,返回主程序继续执行。
中断在操作系统中的作用
中断是现代操作系统实现多任务、设备驱动、实时响应的核心机制。
例如:
- 键盘输入通过中断通知 CPU 有新字符。
- 定时器中断用于实现时间片轮转调度。
- 磁盘 I/O 完成后通过中断告知系统数据已就绪。
小知识:中断向量表
中断向量表(Interrupt Vector Table)是一个存储 ISR 入口地址的数组。
每种中断类型对应一个唯一的编号(向量号),CPU 根据该编号快速定位处理程序。