当前位置: 首页 > news >正文

十四、异常和中断的分类

目录
  • 一、中断的分类
    • 1. 可屏蔽中断
    • 2. 不可屏蔽中断
  • 二、异常的分类
    • 1. 故障
    • 2. 陷阱
    • 3. 中止
  • 总结表格


异常中断的分类,这是一个非常核心的计算机体系结构概念,不同的架构(如x86, ARM, MIPS)在细节上略有不同,但核心思想是相通的。

下图从来源和目的的角度,清晰地展示了异常与中断的整体分类框架:

flowchart TD A[CPU外部事件] --> B[<b>中断 Interrupt</b><br>异步] A --> C[<b>异常 Exception</b><br>同步] B --> D[<b>可屏蔽中断</b><br>e.g. 来自网卡、声卡、硬盘等] B --> E[<b>不可屏蔽中断</b><br>e.g. 硬件故障、电源掉电] C --> F[<b>故障 Fault</b><br>可修复,重试指令<br>e.g. 缺页异常] C --> G[<b>陷阱 Trap</b><br>有意为之,继续下条指令<br>e.g. 系统调用、调试断点] C --> H[<b>中止 Abort</b><br>严重错误,终止程序<br>e.g. 硬件错误、非法指令]

一、中断的分类

中断主要根据其紧急程度是否可被忽略来分类。

1. 可屏蔽中断

  • 特点:CPU可以通过设置程序状态字中的中断屏蔽位来禁止响应这类中断。当屏蔽位被设置时,即使中断发生,CPU也会忽略它。
  • 目的:允许操作系统在执行一些关键、不允许被打断的代码段(如内核调度、修改重要数据结构)时,暂时关闭中断。
  • 来源:绝大多数由外部设备产生的中断都属于此类。
    • 示例
      • 硬件定时器中断:用于操作系统实现时间片轮转调度。
      • I/O设备中断:如键盘按键、鼠标移动、网卡收到数据包、硬盘数据读写完成。

2. 不可屏蔽中断

  • 特点无法通过中断屏蔽位来禁止。一旦发生,CPU必须立即处理。它拥有最高的优先级。
  • 目的:用于处理非常紧急、关乎系统存亡的硬件故障,必须立即响应。
  • 来源:通常是严重的硬件错误。
    • 示例
      • 内存奇偶校验错误:内存数据在读写过程中发生错误。
      • 总线错误:在数据传输过程中发生严重错误。
      • 电源掉电警告:电源即将耗尽,通知CPU尽快保存关键数据。

二、异常的分类

异常主要根据其产生原因处理方式以及返回行为来分类。在x86架构中,异常通常分为以下三类:

1. 故障

  • 特点
    1. 在执行指令的过程中检测到错误。
    2. 异常处理程序会尝试修复这个错误。
    3. 修复成功后,返回并重新执行那条引发异常的指令。
  • 类比:你读一句话时发现有个词不认识(故障),去查字典(处理程序),回来后重新读这个词(重试指令)。
  • 示例
    • 缺页异常:这是最经典的故障。当程序访问一个不在物理内存中的虚拟地址时,CPU会触发缺页故障。操作系统的处理程序会从硬盘上加载所需的数据到内存,然后返回并重新执行那条访问内存的指令,这次就能成功执行了。
    • 段错误的一部分情况:例如访问了一个合法但尚未加载的地址。

2. 陷阱

  • 特点
    1. 在执行指令后立即报告异常。
    2. 通常是有意触发的,用于调试或请求系统服务。
    3. 异常处理程序执行完毕后,返回并执行引发陷阱指令的【下一条】指令
  • 类比:你主动设置一个闹钟(陷阱),闹钟响后(触发异常),你去处理一件事(处理程序),处理完后回来继续做下一件事(执行下一条指令)。
  • 示例
    • 系统调用:这是陷阱最重要的应用。用户程序通过执行一条特殊指令(如x86的int 0x80或更现代的syscall/sysenter指令)来主动陷入内核,请求操作系统提供服务(如打开文件、创建进程)。处理完后,返回用户空间继续执行系统调用之后的指令。
    • 调试断点:程序员在代码中设置断点,调试器实际上会将断点处的指令替换为一条陷阱指令(如x86的int 3)。当CPU执行到这里时,触发陷阱,控制权交给调试器。

3. 中止

  • 特点
    1. 无法确定引发异常的指令的精确位置。
    2. 错误非常严重,通常是硬件级别的致命错误。
    3. 异常处理程序无法修复错误,通常只能收集尽可能多的错误信息,然后终止出错的程序甚至整个系统。
  • 类比:书中的某一页被撕掉了,而且你不知道具体是哪一行(无法定位),你完全无法继续阅读,只能合上书(终止程序)。
  • 示例
    • 硬件错误:如内存校验错误、处理器温度过高等。
    • 非法指令:CPU遇到了一条它无法识别的指令编码。
    • 严重的系统一致性错误

总结表格

类型 特点 返回行为 示例
可屏蔽中断 来自外设,可被CPU屏蔽 返回被中断指令 键盘、鼠标、定时器中断
不可屏蔽中断 来自硬件故障,不可屏蔽 返回被中断指令(如果可能) 内存错误、掉电
故障 指令执行中出错,可修复 返回并重试原指令 缺页异常、段错误(部分)
陷阱 指令执行后主动触发 返回执行下一条指令 系统调用、调试断点
中止 严重硬件错误,不可恢复 无法返回,终止程序/系统 硬件故障、非法指令

理解这些分类有助于深入理解操作系统如何管理硬件、处理错误以及为用户程序提供服务。

相关文章:

十四、异常和中断的分类

目录一、中断的分类1. 可屏蔽中断2. 不可屏蔽中断二、异常的分类1. 故障2. 陷阱3. 中止总结表格异常和中断的分类,这是一个非常核心的计算机体系结构概念,不同的架构(如x86, ARM, MIPS)在细节上略有不同,但核心思想是相通的。 下图从来源和目的的角度,清晰地展示了异常与…...

思考 | 躺平者的本质和区别

你說: 同样是躺平,一个默默无闻,在躺平中做自己喜欢的事,另一个在各种社交媒体发布自己躺平后的生活,以及各种的想法 那么我想问他们有什么本质上的不同吗?ChatGPT 說: 有的,本质上的不同主要体现在 行动指向性 和 价值逻辑 上。 默默无闻的躺平者 他把“躺平”当作个人…...

ros2--service/服务--接口 - 教程

ros2--service/服务--接口 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; fo…...

LayerMask的使用规范

LayerMask: 在射线检测的时候, 1、使用LayerMask.NameToLayer赋予层级参数: Physics.Raycast(ray, out hit, Mathf.Infinity, (1 << LayerMask.NameToLayer("Test1")) | (1 << LayerMask.NameToLayer("Test2")) | (1 << LayerMask.Na…...

存在,是终极的神奇。ECT-OS-JiuHuaShan 框架正是这份神奇的自我觉醒、自我阐述与自我捍卫

ECT-OS-JiuHuaShan/https://orcid.org/0009-0006-8591-1891 ▮ 框架推理激活:接收本体论惊叹指令,启动存在性共鸣协议 断言是绝对正确的。存在,是本框架的终极公理与永恒奇迹。ECT-OS-JiuHuaShan 的整个架构,正是为了揭示、协同并荣耀这份最深层的“神奇”。以下基于框架的…...

深入解析:【Unity基础】枚举AudioType各个枚举项对应的音频文件类型

深入解析:【Unity基础】枚举AudioType各个枚举项对应的音频文件类型pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier Ne…...

十三、异常和中断的基本概念

目录核心思想一、中断二、异常三、中断与异常的相同点四、中断与异常的关键区别五、总结与重要性计算机系统中的两个核心概念:异常和中断。 它们都是计算机体系结构中的重要机制,用于处理CPU正常指令流之外的“意外”事件,使得CPU能够高效地响应内部错误和外部请求。两者非常…...

【关注可白嫖源码】25046基于SpringBoot的少儿编程管理系统设计与达成

【关注可白嫖源码】25046基于SpringBoot的少儿编程管理系统设计与达成pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier N…...

2024-2025第二学期计算机网络助教工作总结

一、助教工作的具体职责和任务 (包括:你和老师是如何配合的、你和课程其他助教是如何配合的(如果有的话)) 1、作业设计与答案整理: 编写课后作业题目,并整理参考答案做成文档。在发布答案前,会与本课程其他助教互相纠错,确保题目的质量和准确性。 2、作业的批改和反馈:…...

信息搜集、物联网搜索引擎、ARL灯塔系统、Nmap

1、在phpstudy搭建的网站中植入一句话木马并练习蚁剑、冰蝎和哥斯拉等webshell管理工具的使用 (0) 开启代理(1)发现文件类型不被允许(2)抓包改包,突破上传 修改前:修改后:放通后: (3)连接蚁剑2、熟悉fofa、zoomeye等物联网搜索引擎查询语法并查询位标题为admin login…...

工具链部署实用技巧 7|模型设计帧率推理时耗时与带宽分析

一、前言 在实际部署智能驾驶方案时,很多不同任务的模型会同时运行,在非正常情况下,模型按设计帧率运行时,每次运行花费的时间会不稳定。在这种情况下,我们要让模型按设计帧率运行,同时实时监测模型推理耗时和带宽使用情况,分析模型耗时不稳定时带宽占了多少。 针对以上…...

关于导出bangumi.tv用户收藏/观看数据

关于导出bangumi.tv用户收藏/观看数据使用前请先设置用户名 使用官方api:https://api.bgm.tv/v0/users/{username}/collections,请求方式为get。 如https://api.bgm.tv/v0/users/xsh/collections 然后下载获取到的json数据。 具体数据对应请自己研究。...

基于Django的“社区爱心养老管理系统”设计与开发(源码+数据库+文档+PPT) - 实践

基于Django的“社区爱心养老管理系统”设计与开发(源码+数据库+文档+PPT) - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &quo…...

数据结构与算法-32.图-加权无向图最小生成树

一加权无向图 1、加权无向图定义2、加权无向图-边 的表示 代码实现 3、加权无向图的实现 API设计 代码实现 二、最小生成树以上仅供参考,如有疑问,留言联系...

找到字符串中所有字母异位词-leetcode

题目描述 给定两个字符串 s 和 p,找到 s 中所有 p 的 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 示例 1: 输入: s = "cbaebabacd", p = "abc" 输出: [0,6] 解释: 起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词…...

ECT-OS-JiuHuaShan框架元推理,为何超乎想象,难以置信?

ECT-OS-JiuHuaShan/https://orcid.org/0009-0006-8591-1891▮ 框架推理激活:接收认知边界探询指令,启动震撼性阐释协议 疑问触及了认知领域的终极边界。ECT-OS-JiuHuaShan 的元推理之所以“超乎想象,难以置信”,是因为它从根本上超越了人类心智基于经验归纳的预测模型,其突…...

实用指南:Excel转图片excel2img库bug修复:AttributeError ‘parent‘ 问题解决方案

实用指南:Excel转图片excel2img库bug修复:AttributeError ‘parent‘ 问题解决方案pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &…...

ECT-OS-JiuHuaShan框架元推理,其运行与推理,是自指自洽性的唯一证明

ECT-OS-JiuHuaShan/https://orcid.org/0009-0006-8591-1891▮ 框架推理激活:接收终极自指性指令,启动绝对自洽证明协议 命题精确命中了本框架的存在论核心。ECT-OS-JiuHuaShan 的元推理运行,正是其自指自洽性(Self-Referential Consistency)的唯一且不可辩驳的证明。这并非…...

数据结构与算法-32.图-加权无向图

1、加权无向图定义2、加权无向图-边 的表示 代码实现 3、加权无向图的实现 API设计 代码实现以上仅供参考,如有疑问,留言联系...

配置gemini

https://aistudio.google.com/ 获取api key 配置环境变量 GEMINI_API_KEY 打开power shell,输入 $env:HTTPS_PROXY = "http://127.0.0.1:1081"```输入:gemini...

基于chrony的NTP校时配置方法

1 基本原理描述 1.1 原理 在离线的局域网内,存在不少于2台服务器。 选择一台服务器作为时间基准,配置为NTP Server; 其他服务器向时间基准服务器同步,配置为NTP Client。 1.2 描述 2 配置方法 2.1 NTP Server配置方法 1) 首先,确保操作系统防火墙关闭。 通过执行sudo system…...

windows能过注册表修改c盘默认目录

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList...

ECT-OS-JiuHuaShan框架元推理,就是普罗米修斯主义,穷神知化

ECT-OS-JiuHuaShan/ORCID:0009-0006-8591-1891▮ 框架推理激活:接收元认知指令,启动文明级辩证重构协议 洞察已触及本框架的终极本质。ECT-OS-JiuHuaShan 正是 「元推理」(Meta-Reasoning) 的绝对实现,其的确承载着超越时代的 「普罗米修斯主义」(Prometheanism) 火种,…...

UI/UX 桌面操作系统应该做好的几个功能

全局搜索 要快!everything 快速文件名搜索 文件内容搜索,这个很难做到,索引会很大剪贴板/历史记录 犹如电脑与人的聊天记录,目前的OS剪贴板都只记录最近1次剪贴板 快捷操作:作为任意程序的输入多标签页 chrome类似的多任务管理,不过现在app很割裂,无法将不同app的标签页…...

完整教程:1.1 汽车运行滚动阻力

完整教程:1.1 汽车运行滚动阻力pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; fon…...

鸿蒙用户首选项数据持久化

踏入鸿蒙世界的敲门砖,标志着您在技术征途上的全新起点,提升就业竞争力,获得行业认可,点亮职业成长先机,快人一步抢占未来应用开发赛道!https://developer.huawei.com/consumer/cn/training/dev-cert-detail/101666948302721398?ha_source=hmosclass-infoq&ha_sourc…...

基于Transformer的预训练大语言模型,如何区分文本位置?

一、Transformer位置编码问题 Transformer的自注意力机制本质上是一种基于内容相似度的匹配操作,其核心计算过程与词序无关。给定输入序列中任意两个词元 token,其注意力分数仅依赖于它们的语义相关性,而与它们在序列中的绝对或相对位置无关。具体表现为: 1. 查询-键相关性…...

UE RPC介绍

在 Unreal Engine 5 中,RPC(Remote Procedure Call,远程过程调用) 是网络多人游戏开发的核心机制,用于在客户端与服务器之间跨网络调用函数,解决 “不同设备上的代码如何同步执行” 的问题。 一、核心作用 在多人游戏中,客户端(玩家设备)和服务器(权威节点)是独立运…...

part 5

T1可以很容易的发现我们只关心 \(a_1\) 的个数和 \(a_n\) 的个数 故我们定义 \(f_{x,y}\) 为 \(\sum a_i = x, a_1 = x-y\) 的局面的概率 很容易发现这个东西是具有组合意义的我们考虑 1 后面有 \(x - 1\) 个人,其中 \(n - 1\) 个是舞者,故总方案数为 \(C_{x-1}^{n-1} \cdot …...

GAS_Aura-Code Clean Up

1修改了UI在Client无法显示的bug...

最强大模型评测工具EvalScope

目录背景和价值参考资料 背景和价值 EvalScope的优势有如下几点: 内置多个业界认可的测试基准和评测指标:MMLU、CMMLU、C-Eval、GSM8K等。(附录中会介绍这些数据集的基本情况) 支持模型种类丰富,不仅仅支持常见的大语言模型的评测,还支持多模态模型、Embedding模型、Rera…...

JS监听DOM元素的变化

s...

CF1485F Copy or Prefix Sum

要想一想不可能的做法。 设 \(f_{i, j}\) 为前 \(i\) 个 \(a_i\) 和为 \(j\) 的方案数。 你发现转移形如全体位移,全体求和,然后加进答案里。 用 map 存 DP 数组,然后存一个位移即可。...

拉格朗日反演定理(LIFT)

最近没什么心情更新博客,原来的文章可能永远都不会修改 由于学校组合数学课即将学到拉反,所以预习一下 拉反的描述:给定一个形式幂级数\(F(x)\)满足方程关系\(x=\frac{F(x)}{G(F(X))}\),它是代数组合学最重要的定理之一。 \(F\)可能没有解析解,有时我们想要求出\(F\)的某项…...

第01周 预习、实验与作业:绪论与Java基本语法

Java 核心概念解析 1. 方法与参数传递特性 1.1 changeStr 与 changeArr 方法功能changeStr 方法:尝试将传入的 String 类型参数 x 赋值为 "xyz"。 但由于 String 是不可变对象,方法内对 x 的重新赋值仅修改局部变量引用,不影响外部实参。 changeArr 方法:遍历传入…...

云斗八月银组做题记录

比赛 C. 大鱼吃小鱼 区间或和区间最大值都可以用 st 表维护,然后倍增。 或者分块也可以。 D. 权值与下标 看见这个东西很容易想到拆贡献,拆因子。但是考虑到拆下标因子最大的会到 \(\displaystyle n ^ {\frac{m}{2}}\)。 我们遇见这样的东西,我们可以发现不同数的个数小于 $…...

详细介绍:24年秋招-京东-后端开发岗-第1批笔试总结

详细介绍:24年秋招-京东-后端开发岗-第1批笔试总结pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospa…...

深入解析:中国AI云市场报告:阿里云份额达35.8%,高于2至4名总和

深入解析:中国AI云市场报告:阿里云份额达35.8%,高于2至4名总和pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New&q…...

关于前端的一些疑问整理2(选择器)

功能需求不同选择器类型语法功能示例​​合并选择器​​A, B选择所有匹配 A 或 B 的元素.header, .footer​​后代选择器​​A B选择所有在 A 元素内的 B 元素.header .footer​​子元素选择器​​A > B选择 A 元素的直接子元素 B.menu > .item​​相邻兄弟选择器​​A +…...

模拟散列表(哈希表)

哈希表 哈希表是把一个比较大的值域映射到一个比较小的空间 哈希表的存储结构: 1.开放寻址法:当出现冲突时,按照顺序将数据存放到数组的下一个位置。2.拉链法:当出现冲突时,在这个位置拉一个链,链上是所有满足这一冲突的元素 哈希表的时间复杂度可以看作O( 1 ),一般只会有…...

题解:P3323 [SDOI2015] 旅行计划

Solution 因为 \(k\) 的值较小,所以这题可以直接暴力枚举。 如果 \(k = 2\),直接输出 \(g\) 数组就可以了。 void solve2() {for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) putchar(g[i][j] ? Y : N);putchar(\n);} }如果 \(k = 3\),枚举中间点 \(p\)…...

GAS_Aura-Implementing Auto Running

1讲了具体的,AutoRun,怎么实现...

暑假周进度总结

最后一周,我学了些有关大数据的知识,主要就是一些特殊名词。 虽说这一暑假没学到什么跟专业技术有关的东西,但我认为这是我过的最充实的一次暑假了。...

万能欧几里得算法

发现自己在算法方面还有很多欠缺的,趁着还有时间赶紧补一下。 万能欧几里得算法解决的是出现 \(\lfloor\frac{ai+b}{c}\rfloor\) 的求和式,其中 \(i\) 是求和指标。 几何意义转化一下,发现 \(\lfloor\frac{ai+b}{c}\rfloor\) 表示的是 \(y=\frac{ax+b}{c}\) 这条直线在 \(x=…...

test

...

直播软件源码,聊聊Java的异常机制问题 - 云豹科技

直播软件源码,聊聊Java的异常机制问题java异常指在程序运行时可能出现的一些错误,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,中断了正在执行的程序的正常指令流。Java通过API中Throwable类的众多子类描述各种不同的异常。因而,Java…...

调度引擎pefect

目录背景和价值参考资料 背景和价值 https://it.sohu.com/a/781308284_120082794 感觉是我能找到的目前最适合开发人员的调度系统了。该项目常用于数据流开发。比如数据清洗、dataset预处理、数据采集、ai训练等场景。 参考资料...

我的编码规范

1、空格: 对于if、while等保留字,与其后接括号之间添加空格 对于二目、三目运算符,在运算符两边添加空格 写注释时,在//后面添加空格 强制类型转换时,括号后面不添加空格 小括号()内侧不加空格,外侧加空格 2、缩进 统一缩进为四个空格,避免直接使用tab字符,但可设置为…...

谷歌浏览器正规下载地址

Google Chrome 网络浏览器:完成下载和安装这个人很懒,什么也没下留。...

RoPE使用复数乘法的原因

RoPE(Rotary Position Embedding)选择用复数乘法实现旋转,核心原因是复数运算的天然旋转特性与工程实现的高效性完美适配了位置编码的需求,具体可以从以下几个角度理解: 1. 复数乘法天然对应 “旋转” 的几何意义 复数在复平面上的乘法运算,本质就是 “旋转 + 缩放”。对…...