什么是CPU异常和中断?

什么是CPU异常和中断?

当你的电脑正在运行一个程序,突然你按下了键盘上的某个键,或者进行的加法运算结果溢出了,这时,CPU需要暂停正在做的事情,先去处理这个突然出现的事件。这些情况就是本文要谈的主题:CPU的异常和中断。

异常和中断就好像你正在做一件事情,但突然有人叫住你,让你去做另一件事情。你不得不停下手头的工作,处理那个突然出现的事情。在这个过程中,你可能需要记住你正在做的事情到哪一步了,以便待会儿可以接着做。这就是CPU异常和中断的基本概念。

什么是“加法运算溢出”?假设我们的计算机只能处理两位数的加法,如果我们让它计算99+2,结果超过了它能处理的范围,这就是所谓的加法运算溢出。

CPU异常和中断是如何发生和捕捉的?

异常和中断的发生和捕捉过程就像我们的身体对外界环境的反应。比如,当你的手碰到热水时,你的皮肤会立即向大脑发送一个痛感信号,大脑接收到这个信号后,会立即做出反应,让你的手迅速离开热水。

同样,键盘的按键信号会通过计算机总线传递到CPU,加法运算溢出这类事件发生在CPU内部,CPU的硬件层面会捕捉到这些异常信号,然后触发相关处理流程。

在这个过程中,CPU会先保存当前程序运行的现场到程序栈(就像你在处理紧急事件前,先记住你正在做的家务到哪一步了),然后根据操作系统的异常表(中断向量表)查找对应的处理程序,并运行它。这其中会涉及到上下文切换。

上下文切换

上下文切换就好像你正在做一件事情,但是需要暂时去做另一件事情,你需要记住你正在做的事情到哪一步了,以便待会儿可以接着做。在CPU异常触发时,操作系统会将当前程序的所有寄存器保存到程序栈中,这就是所谓的上下文切换。待异常处理程序执行完毕,CPU可以再进行上下文切换,继续执行之前的程序的下一条指令。

寄存器就好比一个小本子,程序可以在上面写下它需要记住的信息。程序栈就好比一个书架,当一个程序需要暂停时,它就把自己的小本子放到书架上,等到它需要继续运行时,再从书架上取下自己的小本子。

CPU异常的分类

CPU异常大致可以分为四类:中断、陷阱、故障和中止。

  1. 中断,就好像你正在看书,突然有人叫你去吃饭,你就需要停下来去吃饭。比如IO设备(鼠标、键盘、触摸屏等)发送了一个信号到CPU,CPU接收到这个信号后,就会触发中断类型的异常。
  2. 陷阱,或称为软中断,就好像你自己决定停下来去做别的事情。这是程序自己刻意触发的,比如系统调用,一个程序需要打开一个文件,但是它自己没有权限,它会发起一个系统调用,请求操作系统帮助它打开这个文件。
  3. 故障,就好像你在做一件事情时,出了一点小问题,你需要先去解决这个问题,然后再回来继续做这件事情。这是因为CPU在运算过程中发生了异常,比如内存缺页错误。这就像你在翻书时,突然发现有一页被撕掉了,你需要先找到这一页,然后再继续阅读。
  4. 中止,就好像你在做一件事情时,出了一个大问题,你无法解决,只能放弃这件事情。这是因为CPU遇到了无法恢复的故障,例如发现内存中的数据存在错误且无法修正、在处理某个CPU异常的时候又出现了一个新的CPU异常。这就像你在翻书时,发现整本书都被撕掉了,你无法继续阅读,只能放弃。

CPU异常和中断是计算机运行的重要环节,理解它们的原理和处理方式,有助于我们更好地理解计算机的工作原理。通过本文,希望你能对CPU异常和中断有更深入的理解。

关注微/信/公/众\号:萤火架构,提升技术不迷路!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/412619.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

苹果笔记本 macbook 在 office word 中使用 mathtype 的方法

前言 想在 MacBook 中使用 mathtype,去搜索,去 Apple Store 下载也发现没有 解决方法 打开 office Word 的「插入」中的「获取加载项」、「我的加载项」。 在应用商店中下载,需要登录自己的微软账号。 加载成功后就可以使用了。 注意 和…

Linux学习记录——사십삼 高级IO(4)--- Epoll型服务器(1)

文章目录 1、理解Epoll和对应接口2、简单实现 1、理解Epoll和对应接口 poll依然需要OS去遍历所有fd。一个进程去多个特定的文件中等待,只要有一个就绪,就使用select/poll系统调用,让操作系统把所有文件遍历一遍,哪些就绪就加上哪…

关键信息基础设施安全相关材料汇总

文章目录 前言一、法律(1)《中华人民共和国国家安全法》(2)《中华人民共和国网络安全法》(3) 《中华人民共和国密码法》(4)《中华人民共和国数据安全法》(5) 《中华人民共和国个人信息保护法》二、行政法规(6)《中华人民共和国保守国家秘密法实施条例》(7) 《关键信息基础设施安…

圈小猫游戏HTML源码

源码介绍 圈小猫游戏html源码,HTMLCSSJS,记事本可以打开修改内容,电脑本地双击index.html即可运行,也可以上传到服务器上面运行,喜欢的同学可以拿去使用 下载地址 蓝奏云:https://wfr.lanzout.com/iFkVc1lb5akj CS…

IP定位助力网络安全防线

随着互联网技术的飞速发展,网络安全问题日益凸显。在网络安全领域,IP地址定位技术正发挥着越来越重要的作用,成为维护网络安全的一道有力防线。 一、追踪黑客攻击者,维护公共安全 在网络安全领域,黑客攻击是一个严重的…

unocss+iconify技术在vue项目中使用20000+的图标

安装依赖 npm i unocss iconify/json配置依赖 vue.config.js文件 uno.config.js文件 main.js文件 使用 <i class"i-fa:user"></i> <i class"i-fa:key"></i>class名是 i- 开头&#xff0c;跟库名:图标名&#xff0c;那都有什么库…

LRU Cache

文章目录 1. 什么是LRU Cache2. LRU Cache的实现3. LRU Cache的OJ题目分析AC代码 1. 什么是LRU Cache LRU是Least Recently Used的缩写&#xff0c;意思是最近最少使用&#xff0c;它是一种Cache替换算法。 什么是Cache&#xff1f; 狭义的Cache指的是位于CPU和主存间的快速RAM…

Mybatis之关联

一、一对多关联 eg&#xff1a;一个用户对应多个订单 建表语句 CREATE TABLE t_customer (customer_id INT NOT NULL AUTO_INCREMENT, customer_name CHAR(100), PRIMARY KEY (customer_id) ); CREATE TABLE t_order ( order_id INT NOT NULL AUTO_INCREMENT, order_name C…

burp靶场--ssrf

burp靶场–ssrf 1.什么是ssrf 服务器端请求伪造是一种 Web 安全漏洞&#xff0c;允许攻击者导致服务器端应用程序向非预期位置发出请求。 在典型的 SSRF 攻击中&#xff0c;攻击者可能会导致服务器连接到组织基础设施内的仅供内部使用的服务。在其他情况下&#xff0c;他们可…

LeetCode 104. 二叉树的最大深度

104. 二叉树的最大深度 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3示例 2&#xff1a; 输入&#xff1…

SpringBoot中整合MybatisPlus快速实现Mysql增删改查和条件构造器

场景 Mybatis-Plus(简称MP)是一个Mybatis的增强工具&#xff0c;只是在Mybatis的基础上做了增强却不做改变&#xff0c;MyBatis-Plus支持所有Mybatis原生的特性&#xff0c; 所以引入Mybatis-Plus不会对现有的Mybatis构架产生任何影响。MyBatis 增强工具包&#xff0c;简化 C…

短视频代运营抖音项目规划管理计划模板

【干货资料持续更新&#xff0c;以防走丢】 短视频代运营抖音项目规划管理计划模板 部分资料预览 资料部分是网络整理&#xff0c;仅供学习参考。 短视频代运营模板&#xff08;完整资料包含以下内容&#xff09; 目录 具体的表格设计和内容可能因不同的情况和需求而有所变…