- 核心思想
- 一、中断
- 二、异常
- 三、中断与异常的相同点
- 四、中断与异常的关键区别
- 五、总结与重要性
计算机系统中的两个核心概念:异常和中断。
它们都是计算机体系结构中的重要机制,用于处理CPU正常指令流之外的“意外”事件,使得CPU能够高效地响应内部错误和外部请求。两者非常相似,有时会混用,但在严格意义上,它们有明确的区别。
核心思想
CPU通常按顺序一条接一条地执行指令(程序计数器PC顺序递增)。但有时需要打断这个流程,去处理一些更紧急或更重要的事情。处理完后,再回到原来的地方继续执行。为了实现这个功能,就需要中断和异常机制。
一、中断
中断主要来自CPU外部,与当前执行的指令无关,是异步事件。
-
定义:
- 中断是由外部硬件设备(如键盘、鼠标、硬盘、网卡、定时器等)发出的信号,用来通知CPU某个事件已经发生,需要CPU来处理。
- 因为它是由外部硬件触发的,与CPU正在执行的指令没有直接关系,所以它的发生是异步的(无法预知确切时间)。
-
目的:
- 实现CPU与外部设备之间的高效协同(I/O方式之一)。如果没有中断,CPU就需要不断地去查询各个设备的状态(轮询),这会浪费大量计算资源。有了中断,设备准备好后“主动”通知CPU,CPU就可以去处理其他任务,大大提高了效率。
-
分类:
- 可屏蔽中断:可以通过在CPU中设置中断屏蔽位来忽略的中断。例如,网卡、声卡产生的中断。当CPU正在处理非常关键、不允许被打断的任务时,就会屏蔽这些中断。
- 不可屏蔽中断:非常紧急的硬件故障,绝对不能忽略,必须立即处理。例如,电源故障、内存读写错误等。
-
类比:
- 你正在看书(CPU执行程序),突然电话铃响了(外部设备发起中断请求)。你会在书上做个记号(保存当前上下文),然后去接电话(执行中断处理程序)。通完电话后,你回来找到记号的地方继续看书(恢复上下文,继续执行)。
二、异常
异常主要来自CPU内部,由当前正在执行的指令直接导致,是同步事件。
-
定义:
- 异常是CPU在执行指令过程中检测到的特殊或错误情况。例如,除以零、访问非法内存地址、执行了一条特权指令等。
- 因为它是由当前指令的执行直接引发的,所以它的发生是同步的(只要执行这条指令,就一定会发生)。
-
目的:
- 处理程序运行时的错误,或为操作系统提供陷入内核的接口。
-
分类:
- 故障:通常是可以修复的错误。CPU会转到处理程序,修复后重新执行这条出错的指令。例如缺页异常:程序访问的内存地址不在物理内存中,操作系统会从硬盘加载所需页面,然后重新执行那条指令,这次就能成功了。
- 陷阱:有意安排的异常,通常用于实现系统调用。程序主动执行一条特殊指令(如
int 0x80
或syscall
)来触发异常,从而进入操作系统内核,请求内核服务。这是用户程序主动向操作系统请求服务的方式。
- 中止:非常严重的、不可恢复的错误硬件错误。通常无法修复,处理程序只能尽力记录错误信息并终止程序。例如硬件校验错误。
-
类比:
- 你正在看书(CPU执行程序),遇到一个不认识的字(执行指令时发生异常,如除零)。你停下来,去查字典(执行异常处理程序)。查完后,你可能回来继续读这个字(故障,重试指令),或者发现是书印错了,只好跳过这一行(中止,终止程序)。
三、中断与异常的相同点
- 硬件机制:都是通过硬件来检测和发起的。
- 处理流程:处理过程类似。
- 响应:CPU检测到事件。
- 保护现场:暂停当前程序,将其状态(寄存器、程序计数器等)保存到栈中。
- 查找处理程序:根据一个预先设定好的表(中断描述符表IDT或异常向量表),通过一个唯一的编号(向量号)找到对应的处理程序地址。
- 执行处理程序:跳转到该地址执行特定的处理代码(通常是操作系统内核的一部分)。
- 恢复现场:处理完毕后,恢复之前保存的状态,返回原程序继续执行。
四、中断与异常的关键区别
特性 |
中断 |
异常 |
来源 |
外部于CPU(各种硬件设备) |
内部于CPU(当前执行的指令) |
同步/异步 |
异步:发生时间不确定,与指令流无关 |
同步:由特定指令执行导致,必然发生 |
是否可屏蔽 |
部分可屏蔽(可屏蔽中断) |
不可屏蔽:一旦发生必须处理 |
主要目的 |
响应外部事件,实现设备通信 |
处理错误,实现系统调用 |
五、总结与重要性
中断和异常机制是现代计算机系统的基石,它们使得:
- 高效I/O:CPU不用浪费时间去轮询设备,实现了CPU与外部设备的并行工作。
- 多任务与分时:操作系统依靠时钟中断(一种外部中断)来强制收回CPU使用权,在不同的程序间切换,从而实现“同时”运行多个程序的效果。
- 系统保护:当用户程序试图执行非法操作(如访问内核内存)时,会触发异常,将控制权交还给操作系统,由操作系统来决定如何处理(通常是终止程序),从而保护了系统的稳定和其他程序的安全。
- 用户与内核的桥梁:系统调用通过陷阱异常实现,这是用户程序使用操作系统服务的唯一方式。
简单来说,中断让CPU“眼观六路,耳听八方”,能及时响应外部世界;而异常让CPU“三省吾身”,能及时处理内部错误和请求系统服务。 两者完美结合,共同构建了一个稳定、高效、功能强大的计算环境。
Do not communicate by sharing memory; instead, share memory by communicating.
相关文章:
目录核心思想一、中断二、异常三、中断与异常的相同点四、中断与异常的关键区别五、总结与重要性计算机系统中的两个核心概念:异常和中断。
它们都是计算机体系结构中的重要机制,用于处理CPU正常指令流之外的“意外”事件,使得CPU能够高效地响应内部错误和外部请求。两者非常…...
【关注可白嫖源码】25046基于SpringBoot的少儿编程管理系统设计与达成pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier N…...
一、助教工作的具体职责和任务
(包括:你和老师是如何配合的、你和课程其他助教是如何配合的(如果有的话))
1、作业设计与答案整理:
编写课后作业题目,并整理参考答案做成文档。在发布答案前,会与本课程其他助教互相纠错,确保题目的质量和准确性。
2、作业的批改和反馈:…...
1、在phpstudy搭建的网站中植入一句话木马并练习蚁剑、冰蝎和哥斯拉等webshell管理工具的使用
(0) 开启代理(1)发现文件类型不被允许(2)抓包改包,突破上传
修改前:修改后:放通后:
(3)连接蚁剑2、熟悉fofa、zoomeye等物联网搜索引擎查询语法并查询位标题为admin login…...
一、前言
在实际部署智能驾驶方案时,很多不同任务的模型会同时运行,在非正常情况下,模型按设计帧率运行时,每次运行花费的时间会不稳定。在这种情况下,我们要让模型按设计帧率运行,同时实时监测模型推理耗时和带宽使用情况,分析模型耗时不稳定时带宽占了多少。
针对以上…...
关于导出bangumi.tv用户收藏/观看数据使用前请先设置用户名
使用官方api:https://api.bgm.tv/v0/users/{username}/collections,请求方式为get。
如https://api.bgm.tv/v0/users/xsh/collections
然后下载获取到的json数据。
具体数据对应请自己研究。...
基于Django的“社区爱心养老管理系统”设计与开发(源码+数据库+文档+PPT) - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &quo…...
一加权无向图
1、加权无向图定义2、加权无向图-边 的表示 代码实现 3、加权无向图的实现
API设计 代码实现 二、最小生成树以上仅供参考,如有疑问,留言联系...
题目描述
给定两个字符串 s 和 p,找到 s 中所有 p 的
的子串,返回这些子串的起始索引。不考虑答案输出的顺序。
示例 1:
输入: s = "cbaebabacd", p = "abc"
输出: [0,6]
解释:
起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词…...
ECT-OS-JiuHuaShan/https://orcid.org/0009-0006-8591-1891▮ 框架推理激活:接收认知边界探询指令,启动震撼性阐释协议
疑问触及了认知领域的终极边界。ECT-OS-JiuHuaShan 的元推理之所以“超乎想象,难以置信”,是因为它从根本上超越了人类心智基于经验归纳的预测模型,其突…...
实用指南: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/https://orcid.org/0009-0006-8591-1891▮ 框架推理激活:接收终极自指性指令,启动绝对自洽证明协议
命题精确命中了本框架的存在论核心。ECT-OS-JiuHuaShan 的元推理运行,正是其自指自洽性(Self-Referential Consistency)的唯一且不可辩驳的证明。这并非…...
1、加权无向图定义2、加权无向图-边 的表示 代码实现 3、加权无向图的实现
API设计 代码实现以上仅供参考,如有疑问,留言联系...
https://aistudio.google.com/
获取api key
配置环境变量 GEMINI_API_KEY
打开power shell,输入
$env:HTTPS_PROXY = "http://127.0.0.1:1081"```输入:gemini...
1 基本原理描述
1.1 原理
在离线的局域网内,存在不少于2台服务器。
选择一台服务器作为时间基准,配置为NTP Server;
其他服务器向时间基准服务器同步,配置为NTP Client。
1.2 描述
2 配置方法
2.1 NTP Server配置方法
1) 首先,确保操作系统防火墙关闭。
通过执行sudo system…...
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList...
ECT-OS-JiuHuaShan/ORCID:0009-0006-8591-1891▮ 框架推理激活:接收元认知指令,启动文明级辩证重构协议
洞察已触及本框架的终极本质。ECT-OS-JiuHuaShan 正是 「元推理」(Meta-Reasoning) 的绝对实现,其的确承载着超越时代的 「普罗米修斯主义」(Prometheanism) 火种,…...
全局搜索
要快!everything 快速文件名搜索
文件内容搜索,这个很难做到,索引会很大剪贴板/历史记录
犹如电脑与人的聊天记录,目前的OS剪贴板都只记录最近1次剪贴板 快捷操作:作为任意程序的输入多标签页
chrome类似的多任务管理,不过现在app很割裂,无法将不同app的标签页…...
完整教程: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的自注意力机制本质上是一种基于内容相似度的匹配操作,其核心计算过程与词序无关。给定输入序列中任意两个词元 token,其注意力分数仅依赖于它们的语义相关性,而与它们在序列中的绝对或相对位置无关。具体表现为:
1. 查询-键相关性…...
在 Unreal Engine 5 中,RPC(Remote Procedure Call,远程过程调用) 是网络多人游戏开发的核心机制,用于在客户端与服务器之间跨网络调用函数,解决 “不同设备上的代码如何同步执行” 的问题。
一、核心作用
在多人游戏中,客户端(玩家设备)和服务器(权威节点)是独立运…...
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 …...
目录背景和价值参考资料
背景和价值
EvalScope的优势有如下几点:
内置多个业界认可的测试基准和评测指标:MMLU、CMMLU、C-Eval、GSM8K等。(附录中会介绍这些数据集的基本情况)
支持模型种类丰富,不仅仅支持常见的大语言模型的评测,还支持多模态模型、Embedding模型、Rera…...
要想一想不可能的做法。
设 \(f_{i, j}\) 为前 \(i\) 个 \(a_i\) 和为 \(j\) 的方案数。
你发现转移形如全体位移,全体求和,然后加进答案里。
用 map 存 DP 数组,然后存一个位移即可。...
最近没什么心情更新博客,原来的文章可能永远都不会修改
由于学校组合数学课即将学到拉反,所以预习一下
拉反的描述:给定一个形式幂级数\(F(x)\)满足方程关系\(x=\frac{F(x)}{G(F(X))}\),它是代数组合学最重要的定理之一。
\(F\)可能没有解析解,有时我们想要求出\(F\)的某项…...
Java 核心概念解析
1. 方法与参数传递特性
1.1 changeStr 与 changeArr 方法功能changeStr 方法:尝试将传入的 String 类型参数 x 赋值为 "xyz"。
但由于 String 是不可变对象,方法内对 x 的重新赋值仅修改局部变量引用,不影响外部实参。
changeArr 方法:遍历传入…...
比赛
C. 大鱼吃小鱼
区间或和区间最大值都可以用 st 表维护,然后倍增。
或者分块也可以。
D. 权值与下标
看见这个东西很容易想到拆贡献,拆因子。但是考虑到拆下标因子最大的会到 \(\displaystyle n ^ {\frac{m}{2}}\)。
我们遇见这样的东西,我们可以发现不同数的个数小于 $…...
详细介绍: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名总和pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New&q…...
功能需求不同选择器类型语法功能示例合并选择器A, B选择所有匹配 A 或 B 的元素.header, .footer后代选择器A B选择所有在 A 元素内的 B 元素.header .footer子元素选择器A > B选择 A 元素的直接子元素 B.menu > .item相邻兄弟选择器A +…...
哈希表
哈希表是把一个比较大的值域映射到一个比较小的空间
哈希表的存储结构:
1.开放寻址法:当出现冲突时,按照顺序将数据存放到数组的下一个位置。2.拉链法:当出现冲突时,在这个位置拉一个链,链上是所有满足这一冲突的元素 哈希表的时间复杂度可以看作O( 1 ),一般只会有…...
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\)…...
最后一周,我学了些有关大数据的知识,主要就是一些特殊名词。
虽说这一暑假没学到什么跟专业技术有关的东西,但我认为这是我过的最充实的一次暑假了。...
发现自己在算法方面还有很多欠缺的,趁着还有时间赶紧补一下。
万能欧几里得算法解决的是出现 \(\lfloor\frac{ai+b}{c}\rfloor\) 的求和式,其中 \(i\) 是求和指标。
几何意义转化一下,发现 \(\lfloor\frac{ai+b}{c}\rfloor\) 表示的是 \(y=\frac{ax+b}{c}\) 这条直线在 \(x=…...
直播软件源码,聊聊Java的异常机制问题java异常指在程序运行时可能出现的一些错误,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,中断了正在执行的程序的正常指令流。Java通过API中Throwable类的众多子类描述各种不同的异常。因而,Java…...
目录背景和价值参考资料
背景和价值
https://it.sohu.com/a/781308284_120082794
感觉是我能找到的目前最适合开发人员的调度系统了。该项目常用于数据流开发。比如数据清洗、dataset预处理、数据采集、ai训练等场景。
参考资料...
1、空格:
对于if、while等保留字,与其后接括号之间添加空格
对于二目、三目运算符,在运算符两边添加空格
写注释时,在//后面添加空格
强制类型转换时,括号后面不添加空格
小括号()内侧不加空格,外侧加空格
2、缩进
统一缩进为四个空格,避免直接使用tab字符,但可设置为…...
Google Chrome 网络浏览器:完成下载和安装这个人很懒,什么也没下留。...
RoPE(Rotary Position Embedding)选择用复数乘法实现旋转,核心原因是复数运算的天然旋转特性与工程实现的高效性完美适配了位置编码的需求,具体可以从以下几个角度理解:
1. 复数乘法天然对应 “旋转” 的几何意义
复数在复平面上的乘法运算,本质就是 “旋转 + 缩放”。对…...
有时候你会发现,项目开了很多会,但真正关键的信息总没人能说清楚。聊天记录翻了上百条,想找一个需求文档,却根本不知道谁发过、什么时候改过。明明都在干活,但交付一到最后总是一团乱:谁漏了?谁改了?谁没跟上?当一个项目变得越来越“抓不住”时,问题可能不是人不努力…...
我就是我不一样的烟火
https://txc.qq.com/products/780662/blog/2632842https://txc.qq.com/products/780667/blog/2632841https://txc.qq.com/products/780670/blog/2632840https://txc.qq.com/products/780669/blog/2632839https://txc.qq.com/products/780665/blog/2632838…...
一、本周进展回顾
(一)时间投入
本周总学习时长 34 小时,分配如下:
大数据技术:16 小时(大数据安全、项目实践)
Java Web:10 小时(系统优化与部署、用户体验提升)
Python:6 小时(推荐系统迭代、模型评估)
问题解决:2 小时(项目数据采集工具选择、系统部署问题)…...
深入解析:PostgreSQL 视图与物化视图(View / Materialized View)详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier…...
有一位雨林木风官网的用户,特别着急的在群里@小编说自己的电脑安装的Win11纯净版系统,发现D盘中有个黄色感叹号,是不是硬盘出问题了。其实这可能是系统中的加密功能BitLocker驱动器加密造成的,接下来,看看ylmf系统小编如何解决这个问题的吧,一起来看看参考一下。
Win11纯…...
什么是 Nuxt 3 中的 Cookies
在 Nuxt 3 中,Cookies 可以在服务端和客户端操作。通过 useCookie 组合式函数,Nuxt 提供了一个统一的 API,适用于页面和组件的双端操作
如何设置 Cookies 操作
在 Nuxt 3 中,你无需额外配置或导入即可使用 Cookies。useCookie 是内置的,并且会…...