尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

十七、异常和中断响应过程的时序图

十七、异常和中断响应过程的时序图
📅 发布时间:2026/6/19 9:42:21

目录
  • 时序图步骤详解:
    • 阶段 1: 事件发生与检测
    • 阶段 2: 硬件自动响应(纯硬件操作)
    • 阶段 3: 软件处理(操作系统内核)
    • 阶段 4: 硬件返回(纯硬件操作)


这是一个描述异常和中断响应过程的时序图。它清晰地展示了硬件(CPU)和软件(操作系统)之间如何协同完成整个响应和处理流程。

sequenceDiagramparticipant H as CPU Hardwareparticipant OS as OS Software (Kernel)participant P as User ProcessNote over H, P: 1. 事件发生与检测H->>H: 每个指令周期末检查中断引脚<br>或执行单元检测异常alt 中断发生H->>H: 从设备获取中断向量号else 异常发生H->>H: 根据错误类型生成异常向量号endNote over H, P: 2. 硬件自动响应(瞬间完成)H->>H: 保存现场: EFLAGS, CS, EIP, ErrorCode(可选)H->>H: 关中断(若为异常)H->>H: 切换至内核态(Ring 0)<br>切换内核栈H->>H: 查IDT表,获取处理程序地址H->>OS: 跳转至中断/异常处理程序Note over OS, P: 3. 软件处理(操作系统)OS->>OS: 保存所有通用寄存器OS->>OS: 开中断(若为中断)alt 处理中断OS->>OS: 读取设备数据,发送应答等else 处理异常alt 故障 (Fault)OS->>OS: 修复错误(如加载缺失页)else 陷阱 (Trap)OS->>OS: 提供服务(如系统调用)else 中止 (Abort)OS->>OS: 终止程序/系统endendOS->>OS: 可能进行进程调度决策OS->>OS: 恢复所有通用寄存器OS->>H: 执行IRET指令Note over H, P: 4. 硬件返回H->>H: 从内核栈弹出EIP, CS, EFLAGSH->>H: 切换回用户态(原特权级)<br>切换回用户栈H->>H: 开中断(若之前关闭)H->>P: 跳回原EIP地址继续执行<br>(用户进程无感知)

时序图步骤详解:

阶段 1: 事件发生与检测

  • CPU硬件在每个指令执行周期的末尾,都会自动检查中断请求引脚。如果外部设备(如键盘、硬盘)发来中断信号,CPU会从中断控制器读取一个中断向量号。
  • 同时,CPU的执行单元在运行指令时,会实时检测是否有异常(如除零、非法地址访问)。一旦发现,立即产生一个异常向量号。

阶段 2: 硬件自动响应(纯硬件操作)

这是最关键且完全由硬件自动完成的瞬间步骤,保证了响应的及时性:

  1. 保存最小现场:CPU将当前进程的EFLAGS(状态寄存器)、CS(代码段寄存器)、EIP(下一条指令地址)自动压入内核栈。对于某些异常,还会压入错误码。
  2. 关中断:如果是异常,CPU可能会自动清除EFLAGS中的IF位,关闭中断,以避免在处理一个严重错误时被新的中断打断。
  3. 切换模式:CPU从用户态切换到内核态,并将栈指针从用户栈切换到当前进程的内核栈。
  4. 查找处理程序:CPU使用向量号作为索引,查询中断描述符表,找到对应的中断/异常处理程序的入口地址。
  5. 跳转:CPU跳转到操作系统内核的相应处理程序开始执行。

阶段 3: 软件处理(操作系统内核)

现在开始执行操作系统的代码:
6. 保存完整现场:操作系统代码首先手动将所有的通用寄存器(EAX, EBX, ECX...)的值压入内核栈。这是为了确保在处理过程中不会破坏用户进程的状态。
7. 开中断:如果是处理中断,操作系统此时可能会重新打开中断,允许更高优先级的中断嵌套。
8. 执行具体处理:
* 处理中断:例如,读取键盘缓存区的数据、向硬盘控制器发送下一个读写命令等。
* 处理异常:
* 故障:尝试修复问题(如为缺页异常分配物理页),修复成功后,返回重试原指令。
* 陷阱:执行系统调用服务,完成后返回执行下一条指令。
* 中止:终止出错的进程。
9. 调度决策:在处理过程中(尤其是时钟中断),操作系统可能会判断是否需要执行进程调度。
10. 恢复现场:处理完毕后,操作系统代码手动将之前保存的通用寄存器值从栈中弹出,恢复到CPU中。
11. 返回指令:操作系统执行IRET指令。这条指令是告诉CPU:“软件处理完毕,你可以恢复硬件现场了”。

阶段 4: 硬件返回(纯硬件操作)

  1. 恢复最小现场:CPU执行IRET指令,自动从内核栈中弹出之前保存的EIP、CS、EFLAGS的值。
  2. 切换回用户态:根据恢复的CS寄存器,CPU特权级从内核态切换回原来的用户态,栈指针也切换回用户栈。
  3. 恢复执行:CPU根据恢复的EIP地址,继续执行被中断的用户进程。整个过程中,用户进程对此毫无感知,就像什么都没发生过一样。
Do not communicate by sharing memory; instead, share memory by communicating.

相关新闻

  • 直播平台搭建,浏览器中的事件循环与Node中的事件循环 - 云豹科技
  • Redisson 分布式锁的实现原理 - 教程
  • ros2--service/服务--接口 - 教程

最新新闻

  • 2026南阳黄金回收白银回收铂金回收门店实测|本地正规实体老店无套路门店推荐 - 中安检金银铂钻回收
  • 2026厦门黄金回收白银回收铂金回收门店实测|本地正规实体老店无套路门店推荐 - 中安检金银铂钻回收
  • 2026荆州黄金回收白银回收铂金回收门店实测|本地正规实体老店无套路门店推荐 - 中安检金银铂钻回收
  • AAFF论坛精粹|光影与新生:赵非、卞灼跨越代际的影像哲思
  • lsyat门禁闸机获取历史记录—幽冥大陆(一百38)-东方仙盟
  • Kafka07-集成-尚硅谷

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号