news 2026/6/5 20:40:35

中断处理过程与中断优先级

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
中断处理过程与中断优先级

适合读者:软考中级备考同学
阅读时间:3.5分钟
内容:中断处理流程、中断优先级、中断嵌套、中断屏蔽字、例题


1. 中断处理的基本概念

中断是指CPU在执行程序时,由于内部或外部事件(如外设请求、指令异常等)打断当前程序,转去执行一段特定的处理程序(中断服务程序),完成后再返回原程序继续执行的过程。

软考中常考查中断处理的完整流程、中断优先级判断以及中断嵌套的规则。


2. 中断处理过程(标准流程)

一次完整的中断处理包括以下几个步骤:

2.1 中断请求

外设或内部事件向CPU发出中断请求信号(IRQ)。

2.2 中断响应

CPU在每条指令执行结束后检测中断请求。若存在中断请求且中断允许(IF=1),则进入响应阶段。

2.3 保护现场

CPU自动将**程序计数器(PC)程序状态字(PSW)**压入堆栈(保存断点和状态)。有些CPU还需保护其他寄存器的值(由软件完成)。

2.4 识别中断源

CPU需要确定是哪个设备发来的中断。常用方法:

  • 向量中断:设备通过中断向量表提供中断服务程序入口地址。
  • 查询中断:CPU依次查询各设备的中断状态寄存器,确定最高优先级的请求。

2.5 执行中断服务程序(ISR)

CPU跳转到对应的中断服务程序,完成数据处理(如从键盘读取字符)。

2.6 恢复现场

中断服务程序返回前,从堆栈中恢复之前保存的寄存器值、PC和PSW。

2.7 中断返回

执行中断返回指令(如IRET),CPU回到被中断的程序继续执行。


3. 中断优先级

当多个中断源同时发出请求时,CPU需要决定先处理哪个。中断优先级就是中断源的紧急程度或重要程度。

3.1 优先级设置原则

  • 硬件故障 > 软件中断 > 外设请求
  • 高速设备(如磁盘) > 低速设备(如键盘)
  • 实时性要求高的设备优先

3.2 优先级实现方式

  • 硬件优先级编码器:通过中断控制器(如8259A)自动选择最高优先级请求。
  • 软件查询:CPU依次查询各设备状态,先查询到的优先级高(灵活但慢)。

4. 中断嵌套

当一个中断服务程序正在执行时,如果有更高优先级的中断请求到来,CPU可以暂停当前ISR,转而处理更高优先级的中断,这就是中断嵌套

4.1 嵌套规则

  • 高优先级中断可以打断低优先级中断。
  • 同级中断不能互相打断(取决于系统设计,通常不允许)。
  • 低优先级中断不能打断高优先级中断。

4.2 中断嵌套流程

主程序 → 低优先级ISR → (高优先级中断到达) → 保存低优先级ISR现场 → 执行高优先级ISR → 恢复低优先级ISR现场 → 继续低优先级ISR → 返回主程序

4.3 中断屏蔽字(Mask)

中断屏蔽字是一个二进制位串,每位对应一个中断源。当某位为1时,对应的中断源被屏蔽(CPU不响应它的请求)。通过设置中断屏蔽字,可以动态改变中断优先级关系。

示例:中断屏蔽字为1011表示第2位(从0开始)对应的中断被屏蔽。


5. 中断处理与中断优先级:典型考题

题目1:以下关于中断处理过程的顺序,正确的是( )。
A. 中断请求 → 保护现场 → 识别中断源 → 执行ISR → 恢复现场 → 中断返回
B. 中断请求 → 识别中断源 → 保护现场 → 执行ISR → 恢复现场 → 中断返回
C. 中断请求 → 保护现场 → 执行ISR → 识别中断源 → 恢复现场 → 中断返回
D. 中断请求 → 执行ISR → 保护现场 → 恢复现场 → 中断返回

答案:A(先保护现场才能安全执行ISR,识别中断源通常在保护现场之后)


题目2:若系统正在执行一个低优先级的中断服务程序,此时有一个高优先级中断到来,则CPU会( )。
A. 忽略高优先级中断
B. 立即响应高优先级中断,但需等低优先级ISR完成后才执行
C. 立即暂停低优先级ISR,响应高优先级中断(中断嵌套)
D. 重启系统

答案:C


题目3(概念判断):中断屏蔽字只能屏蔽外部中断,不能屏蔽内部异常。( )
答案:错误。中断屏蔽字通常针对可屏蔽中断,内部异常(如除零)一般不可屏蔽。


题目4(综合):某系统有4个中断源,优先级从高到低为1>2>3>4。当前CPU正在执行中断源3的ISR,此时中断源2和中断源4同时产生中断请求。请问CPU会如何处理?

  • 中断源2优先级高于当前ISR(3),因此会打断3,执行2的ISR。
  • 中断源4优先级低于当前ISR(3),但当前ISR已被2打断,所以4会等待,直到2和3都完成后才可能响应(如果期间没有更高优先级中断)。
  • 最终执行顺序:先完成2 → 返回3继续 → 完成后响应4(如果4还挂起)。

答案:立即响应中断源2,执行完2后返回中断源3,完成3后再响应中断源4。


6. 中断优先级与屏蔽字示例

假设4个中断源(0最低,3最高),初始屏蔽字如下:

中断源屏蔽字(位3~0)说明
31110屏蔽比自己低的中断2、1、0
21101屏蔽自己及更低的1、0?实际常用屏蔽字只屏蔽同级及更低
11011屏蔽1及0
00111不屏蔽任何(或屏蔽自己)

实际考试中只需理解:屏蔽字的某位为1表示屏蔽对应的中断源。


7. 记忆口诀

中断流程:请求响应保现场,识别源执行ISR,恢复现场再返回。
优先级:高可打断低,同级不嵌套。
屏蔽字:哪位置一哪屏蔽,动态调整优先级。


8. 给备考同学的一句话

中断处理与优先级是计算机系统的重要组成部分。考试重点:

  • 中断处理流程的顺序(尤其是保护现场与识别源的位置)。
  • 中断嵌套的条件:高优先级可打断低优先级。
  • 中断屏蔽字的作用:屏蔽某些中断源,改变相对优先级。

遇到综合题,先画出中断优先级顺序,再按规则模拟处理过程,即可得出答案。


🔔本专栏日更2篇,点击头像 → 专栏《软考中级高频考点》订阅

#软考中级 #软件设计师 #中断处理 #中断优先级 #中断嵌套 #计算机系统知识

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 20:32:29

GD32F303软件I2C驱动AT24C02避坑指南:从原理图勘误到稳定读写

GD32F303软件I2C驱动AT24C02实战:从硬件勘误到稳定通信的完整解决方案在嵌入式开发中,I2C总线因其简洁的两线制设计(SCL时钟线和SDA数据线)而广受欢迎,但正是这种硬件上的简单性,往往掩盖了软件实现中的诸多…

作者头像 李华
网站建设 2026/6/5 20:27:07

OpenAI模型攻克数学界80年难题,数学家紧急签署宣言防范真理私有化

【导语:上月,OpenAI内部模型自主解决了困扰数学界80年的Erdős单位距离问题,这是AI首次自主攻克领域核心开放难题。这一突破引发了数学家的担忧,约60名顶级数学家、计算机科学家紧急集结,签下《莱顿人工智能与数学宣言…

作者头像 李华
网站建设 2026/6/5 20:26:10

Hi6000C可与H6912直接对标,管脚完全兼容

一、紧急背景:H6912缺货,交期成谜进入2026年,全球晶圆产能持续紧张。据行业分析,8英寸晶圆产能结构性萎缩,而电源管理IC、功率分立器件仍高度依赖这一成熟制程,叠加需求端AI产业虹吸效应、工业自动化和新能…

作者头像 李华
网站建设 2026/6/5 20:25:07

STM32最小系统硬件设计实战:从电源到调试接口的完整指南

1. 项目概述:从零开始搭建一个可靠的STM32最小系统对于每一位嵌入式开发者来说,无论是刚入门的新手还是经验丰富的工程师,亲手搭建一个稳定可靠的STM32最小系统,都是深入理解MCU底层运行机制、掌握硬件设计基本功的必经之路。所谓…

作者头像 李华