2022-2-11 计算机组成原理 —— 异常和中断
一、来自硬件层面的异常
硬件的异常可能由多个原因产生。
- 算术溢出,计算发生溢出
- 通过键盘和鼠标给网络发送信息
- 读取文件的请求也是一个异常
异常是软件和硬件组合到一起的处理过程。异常的发生和捕捉由硬件发生,异常的处理由软件来完成。
异常代码(中断向量)—— 异常发生的时候,CPU 检测到了特殊的信号。
特殊信号的分配:
- I/O 发出的信号的异常代码,是由操作系统来分配的
- 加法溢出这样的异常代码,是由硬件来分配的
异常表(中断向量表)
存放的是不同的异常代码对应的异常的程序处理地址。
检测异常,拿到异常,根据异常的代码进行处理
二、异常的分类
- 中断:CPU 外部的设备向 CPU 发送中断的信息。
- 陷阱:程序员主动设置的断点,程序执行到这个陷阱就会中断执行,转而去执行异常处理程序。最常见的陷阱是系统调用(用户态到内核态的切换),打开文件和创建新的进程。
- 故障:故障不是在编写程序的时候刻意设置的。而是在程序运行的时候发生的,也同样需要对应的程序去处理。
(故障 和 中断、陷阱的区别是:处理完故障后,仍然回来处理当前的指令,而中断和陷阱回来处理下一条指令) - 中止:当程序遇到故障无法重新运行,程序自然终止。
- 同步 —— 在程序内部发生的异常:陷阱、故障、终止
- 异步 —— 在程序外部发生的异常:中断
处理流程:保存现场,查询异常代码,异常处理程序调用
三、异常的处理:上下文切换
1、将目前正在执行的指令去压栈。同时将 CPU 内当前运行程序使用的寄存器里的值都压入栈中。
2、陷阱涉及到内核态与用户态的切换,将数据压入到内核栈中,而不是程序栈里。
3、故障这种异常,执行的是当前的指令,而不是下一条指令,因为当前的指令并没有正确执行完成。
2022-2-11 计算机组成原理 —— 异常和中断相关推荐
- 【建议收藏】计算机组成原理---DMA、中断控制、I/O之间的联系与区别
[建议收藏] 计算机组成原理-DMA.中断控制.I/O之间的联系与区别 本篇文章主要是记录我对于计算机组成原理中所遇到的一些疑问和疑惑的记录-----主要用于考研的记录 本章一共有几个知识点比较懵: ...
- 2022年考研计算机组成原理_7 输入输出系统
https://gitee.com/fakerlove/computer-organization 文章目录 7. 输入输出系统 7.1 基本概念 7.1.1 I/O系统演变过程 7.1.2 I/O系 ...
- 2022年考研计算机组成原理_4 指令系统
https://gitee.com/fakerlove/computer-organization 文章目录 4. 指令系统 4.1 指令系统的基本概念 4.1.1 指令的基本格式 1) 四地址指令 ...
- 2022年考研计算机组成原理_6 总线
https://gitee.com/fakerlove/computer-organization 文章目录 6. 总线 6.1 概述 6.1.1 概念 6.1.2 分类 按功能层次分类 按数据线的多 ...
- 2022年考研计算机组成原理_5 中央处理器
https://gitee.com/fakerlove/computer-organization 文章目录 5. 中央处理器 5.1 CPU 的结构 5.1.1 CPU 功能 5.1.2 CPU的结 ...
- 2022年考研计算机组成原理_2 数据表示和运算
https://gitee.com/fakerlove/computer-organization 文章目录 2. 数据表示和运算 2.1 数据与编码 2.1.1 进制转换 2.1.2 校验码 2.2 ...
- 11 计算机组成原理第七章 输入/输出系统 I/O系统基本概念 外部设备
文章目录 1 I/O系统基本概念 1.1 I/O系统演变过程 1.2 I/O系统基本组成 1.3 I/O方式简介 1.4 I/O系统基本概念小结 2 外部设备1-输入设备 输出设备 2.1 外部设备 ...
- 2022年考研计算机组成原理_1 概述
https://gitee.com/fakerlove/computer-organization 文章目录 1. 概述 1.1 发展历程 1.2 计算机系统层次结构 1.2.1 五大部件 1) 存储 ...
- 考前自学系列·计算机组成原理·查询方式/中断方式/DMA方式的适用范围及判断
适用范围 查询方式:适合于工作不太繁忙的系统: 中断方式:适合于CPU任务比较忙的情况下,尤其适合实时控制和紧急事件的处理: DMA方式:适合于需要高速而又频繁地与存储器进行批量的数据交换的I/O设备 ...
最新文章
- Linux之时钟中断
- Product Helper
- Win10安装后必做的优化,解决磁盘100%占用
- (luogu4180) [Beijing2010组队]次小生成树Tree
- android studio 抽屉,java - Android导航抽屉(由Android Studio默认提供) - 堆栈内存溢出...
- asp按时间自动递增编号_约束力最强的手铐——美国ASP钢性手铐
- 基于SpringMVC+EasyPoi,采用Excel模板方式实现Excel在线预览和导出(2021版)
- java从服务器下载xls文件到客户端
- 不花钱的pdf编辑器_真香!免费pdf处理工具,等你来拿。工作又轻松了一步
- AcWing 5. 多重背包问题 II(二进制优化)
- Xcode Developer Tools
- Go语言学习路线图 初阶+中阶+高阶
- 思迈特软件Smartbi:公安大数据的3个发展阶段
- 民生银行java面试_民生银行面试题目 是什么?
- 【案例】足球运动员分析
- txt文件英语单词词频统计
- 【智能制造】动力电池行业智能制造发展趋势分析
- win7计算机开始里没有设置,win7系统开始菜单没有设置的解决方法?
- python 操作windows DNS
- 入门kpi的后台工具类
热门文章
- ebayapi php is文档,ebayapi开发.doc
- linux uniq
- linux内核 tiny4412,[tiny4412][kernel]tiny4412 Linux4.4内核移植
- [java篇]包和继承,组合
- 如何下载安装python3.6.7_win764位下python3.6.5应该怎么安装
- 数学建模 层次分析法 python计算权重
- LK32T102学习1-概述
- TopCoder开发大赛优胜者:仅为兴趣或展示自我参加竞赛
- BC 字节串转 ASN1Integer
- Hybrid接口的工作原理及其配置