ch8_4中断系统

news/2024/11/29 12:50:35/

为什么需要中断?
输入,输出。
计算机程序调试;发生异常事件;
都需要由中断系统进行处理.

引发中断的各种因素包括:人为设置中断,程序性事故, 硬件故障,I/O设备,外部事件等等。

1.1

1.2

1.3

2. 中断判优逻辑

中断系统任意瞬间只能响应一个中断源的请求。

2.1

2.2

2.3

3.  中断服务程序的入口地址

3.1

3.2

3.3

4.  中断响应

4.1

4.2

4.3 中断隐指令

所谓中断隐指令,指的是计算机指令集中并没有设计该指令,实际的实现过程是由硬件实现的,
在执行某些指令时,这些隐指令由硬件自动实现。

如果需要响应某个中断请求, CPU如何响应中断请求?

  • 响应中断,要去执行中断服务程序;
  • 为将来的中断返回做准备
    (1)保护程序断点
    (2)保护程序运行的软硬件状态;

单重中断:执行中断, 服务程序时不允许再发生中断.

多重中断:保护程序,软硬件状态的过程中,不允许发生中断;

  1. 保护程序断点
    断点存于 特定地址( 0 号地址) 内, 断点 进栈;

  2. 寻找服务程序入口地址

向量地址 —> PC (硬件向量法)

中断识别程序, 入口地址 M—> PC (软件查询法)

  1. 硬件 关中断
    在这里插入图片描述

INT 中断标记;
EINT 允许中断;
R – S 触发器;

5. 保护现场和恢复现场

5.1 保护现场

断点: 中断隐指令 完成;

寄存器 内容: 中断服务程序 完成;

5.2 恢复现场

中断服务程序 完成;
在这里插入图片描述

6. 多重中断

6.1 多重中断的概念

如果在执行中断服务程序的过程中,出现了更重要
的,需要及时处理的新事件,怎么办呢?

在这里插入图片描述

程序断点 k+1 , l+1 , m+1;

6.2 实现多重中断的条件

要允许CPU在执行某个中断服务程序时,响应新的中断请求

是不是任何一个新的中断请求,均能中断正在进行的中断服务?

在这里插入图片描述

  1. 提前 设置 开中断 指令;

  2. 优先级别高的中断源, 有权中断优先级别低 的中断源;

6.3 屏蔽技术

6.3.1 屏蔽触发器的作用

在这里插入图片描述

MASK = 0(未屏蔽), MASKi = 1 (屏蔽)

INTR 能被置 “1”, INTPi = 0 (不能被排队选中)

6.3.2 屏蔽字

16个中断源 1, 2, 3 , … 16 按 降序 排列

在这里插入图片描述

6.3.3 屏蔽技术可改变处理优先等级

响应优先级 不可改变

处理优先级 可改变(通过重新设置屏蔽字)

在这里插入图片描述

响应优先级 A→B→C→D 降序排列

处理优先级 A→D→C→B 降序排列
在这里插入图片描述

在这里插入图片描述

6.3.4 屏蔽技术的其他作用

可以 人为地屏蔽 某个中断源的请求;

6.3.5 新屏蔽字的设置

在这里插入图片描述

6.4 多重中断的断点保护

6.4.1 断点进栈

6.4.2 断点存入“ 0 ” 地址

6.4.3 断点保护

程序断点存入 “ 0 ” 地址的断点保护


http://www.ppmy.cn/news/516484.html

相关文章

社交进入下一个十年 私信通弄潮加密通讯

即时通讯领域的发展从某种程度上,反映了整个科技行业的发展。在即时通讯领域即将迎来的下一个十年,定制、加密、安全成为了这个时代的标志。 日前,深圳算云智能科技有限公司就研发推出了一款基于安全通讯的产品——算云私信通,与其…

让你丢掉充电宝,金立M2017携7000毫安时电池来袭

在智能机时代,由于手机性能的越来越出色,相应的功耗也越来越高,所以每天都要给手机充电已经是很平常的事情了,如果出门没带充电宝的话根本没有安全感,看着还剩10%的电量标志就会有百爪挠心的感觉。当然如果想摆脱又大又…

<C++> C++11 Lambda表达式

C11 Lambda表达式 1.C98中的一个例子 在C98中&#xff0c;如果想要对一个数据集合中的元素进行排序&#xff0c;可以使用std::sort方法。 #include <algorithm> #include <functional> int main() {int array[] {4, 1, 8, 5, 3, 7, 0, 9, 2, 6};// 默认按照小于…

Linux系统编程:进程的管理和创建

目录 一. 什么是进程 二. Linux对进程的管理方法 2.1 PCB描述进程 2.2 进程的组织 2.3 进程的查看 三. 子进程的创建 3.1 子进程创建函数fork的使用 3.2 子进程创建的原理 四. 总结 一. 什么是进程 进程&#xff08;process&#xff09;是指计算机中已经存在并运行的…

各版本Metal支持的iOS版本与MacOS版本

引用自&#xff1a;Metal-Shading-Language-Specification.pdf(第14页) Compiler Options Controlling the Language Version The following option controls the version of the unified graphics and computing language accepted by the compiler: -std Determine the la…

Linux发行版本及其区别

目前市面上Linux发行版本分为&#xff1a; Linux Mintubuntudebian GUNmageiafedoraopenSUSEArch LinuxCentOSPCLinuxOSSlackware Linux 详情可参考&#xff1a;Linux发行版&#xff1a;CentOS、Ubuntu、RedHat、Android、Tizen、MeeGo Linux 发行版&#xff08;移动&#x…

ARM的几种版本号

不知道大家是否纠结过自己所见过的各种ARM有关的版本号&#xff1f; 我是纠结过很久&#xff0c;感觉很多而且混乱&#xff0c;希望有个权威而又准确的人来告诉我各版本号区别于联系。 其实等你了解之后&#xff0c;你就是标准。 或是接收新事物需要一个过程&#xff0c;因此&…

java错误:不支持发行版本5

问题描述&#xff1a; 在idea中创建一个Maven项目&#xff0c;运行项目时报&#xff1a;java: 错误: 不支持发行版本 5&#xff01; 打开Project Structure &#xff0c;查询Modules的项目jdk版本&#xff0c;发现项目中所有的模块的都变成了5了。 打开File -> Settings -&…