[OS]11.9.2023 中断

news2024/11/26 11:57:45

中断向量表

CPU的设计者必须在中断信息和其处理程序的入口地址之间建立某种联系,使得CPU根据中断信息可以找到要执行的处理程序。

中断信息中包含有标识中断源的类型码。根据CPU的设计,中断类型码的作用就是用来定位中断处理程序。

比如CPU 根据中断类型码 4,就可以找到4号中断处理程序的入口地址4x4=16,即0010H单元开始的4个内存单元。

可随之而来的问题是,若要定位中断处理程序,需要知道它的段地址和偏移地址,而如何根据 8位的中断类型码得到中断处理程序的段地址和偏移地址呢?

利用中断向量表。

CPU用 8 位的中断类型码通过中断向量表找到相应的中断处理程序的入口地址

找到这个入口地址后的最终目的是用它设置CS和IP,使CPU执行中断处理程序。这个工作是由CPU的硬件自动完成的。CPU 硬件完成这个工作的过程被称为中断过程。

中断向量:指示中断服务程序的入口地址(中断处理程序指针)

中断向量表就是中断向量的列表。

中断向量表在内存中保存,其中存放着 256个中断源所对应的中断处理程序的入口地址。

所以中断向量表对于CPU来说只是一个起始地址,此地址开始每向上8个字节为一个中断向量。

我们的CPU上有一个idtr寄存器,它专门用于保存中断向量表地址,当产生一个中断时,CPU会自动从idtr寄存器保存的中断向量表地址处获取相应的中断向量,然后判断权限并跳转至中断处理函数。

由于CPU随时都可能检测到中断信息,也就是说,CPU 随时都可能执行中断处理程序,所以中断处理程序必须一直存储在内存某段空间之中。

中断向量表由操作系统初始化。

中断屏蔽字

中断屏蔽

1,中断屏蔽的意思是,在中断1的服务程序执行过程中,不允许被其他中断打扰;

2,按理,对于不同中断源,它有中断响应优先级,但这个是硬件决定的,无法修改;而如果要修改各个中断的优先级(即是否可以被打扰),可以通过中断屏蔽寄存器(人工设置该寄存器的值)来实现;这是提出中断屏蔽技术的原因所在;

3,中断屏蔽的具体原理是: 每个中断源都有一个中断屏蔽字(如16个bit); 当该中断被响应或执行该中断的服务请求时,对应中断源的屏蔽字设置到中断屏蔽寄存器;在中断响应时,cpu会根据屏蔽寄存器的值来判断是否响应该中断;

屏蔽技术介绍

1 中断屏蔽技术

  • 通过设置中断屏蔽字来改变中断服务优先级,从而提高系统设计和响应的灵活性;
  • 中断屏蔽字是通过中断屏蔽触发器来设置的;INTR 是中断请求寄存器;MASK 是中断屏蔽触发器(MASK=0,非门输出1时表示未屏蔽);

2 如何提出中断请求?

触发器D在完成后,提出中断请求。

能够提出中断的条件是,这个中断源没有被屏蔽掉

3 右图第2种方式实现中断屏蔽
在这里插入图片描述

中断屏蔽字的长度等于中断源的个数,屏蔽字的每个bit对应到每个mask的取值上;
若maski等于1,则表示第i个中断源的中断请求不会被响应(或被屏蔽);当然也无法提出中断请求;
中断屏蔽触发器的作用是 屏蔽某个中断源发出中断请求,也不能参加中断请求优先级的排队。

中断屏蔽字

在这里插入图片描述

屏蔽触发器对应的值是屏蔽字;
如,16个中断源,每个中断源都对应一个屏蔽字;
每个屏蔽字表示当中断源的中断服务程序在执行过程中,是否允许其他中断源提出中断请求
进入到排队器进行排队(即是否允许其他中断源提出中断请求);对应的bit位为1表示屏蔽,0表示不屏蔽;

如:1号中断源的中断服务程序在执行过程中,无论是1号还是2.。。。16号中断源提出的中断请求都不会进入中断排队器中排队(即1号中断源屏蔽其他中断源的中断请求);
但2号中断服务程序的执行过程中,允许1号中断源提出中断请求并被1号打断;
————————————————
版权声明:本文为CSDN博主「PacosonSWJTU」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/PacosonSWJTU/article/details/123595867

隐指令

中断隐指令指CPU响应中断之后,经过一系列“隐指令”,转去执行中断服务程序的一种操作。

  1. 保存断点

    方便执行完中断服务程序后,回到原中断点。

  2. 关中断

    为了保护中断现场(即CPU主要寄存器的内容)期间不被新的中断所打断,必须要关中断,从而保证被中断的程序在中断服务程序执行完毕之后能接着正确地执行下去。

    并不是所有的都在中断隐指令中由硬件自动地关中断,也有些的这一操作是由软件(中断服务程序)来实现的。中断服务程序一般用来保存通用寄存器和状态寄存器的内容。

  3. 引出中断服务程序

    实质就是取出中断服务程序的入口地址送程序计数器(PC)。

    针对向量中断和非向量中断,因此中断服务程序的方法是不相同的。

    向量中断就是不同的中断有不同的入口地址,非向量中断就只有一个入口地址,进去了再判断中断标志来识别具体是哪个中断。向量中断实时性好,非向量中断简单

缺页中断

指的是当软件试图访问已映射在虚拟地址空间中,但是并未被加载在物理内存中的一个分页时,由cpu的内存管理单元所发出的中断。

缺页中断就是要访问的页不在主存,需要操作系统将其调入主存后再进行访问。在这个时候,被内存映射的文件实际上成了一个分页交换文件。

开中断、关中断、中断屏蔽

把CPU内部得处理机状态字PSW得中断允许位清除从而不允许CPU响应中断叫做关中断.

设置CPU内部得处理机状态字PSW得中断允许位从而允许CPU响应中断叫做开中断。

中断屏蔽就是指在中断请求产生之后,系统用软件方式有选择地封锁部分中断而允许其余部分得中断仍能得到响应。

中断过程

  1. 检测信号
  2. 隐指令:保存断点、关中断、内核态、通过中断向量找到程序地址
  3. 运行中断服务程序:保存屏蔽字和通用寄存器值;执行中断服务
  4. 返回原地址

CPU检测到中断信号,调用中断隐指令,由硬件(CPU)保存被中断程序的断点(PC和PSW),将CPU改为内核态并关中断,找到中断信号对应的中断向量,这个中断向量会指明中断服务程序入口地址。找到地址后执行中断服务程序,保存中断屏蔽字(是否允许被打扰),保存各通用寄存器的值,然后提供与中断信号对应的中断服务。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在PostgreSQL中创建和管理数据库

PostgreSQL是一个强大、开源的关系型数据库管理系统,它提供了丰富的功能和灵活的配置选项,使得它成为许多开发者和组织的首选数据库之一,接下来我会介绍如何在PostgreSQL中创建和管理数据库。 一、安装和配置PostgreSQL 第一步,…

ViewPager2 使用

一、什么是ViewPager? 布局管理器允许左右翻转带数据的页面,你想要显示的视图可以通过实现PagerAdapter来显示。这个类其实是在早期设计和开发的,它的API在后面的更新之中可能会被改变,当它们在新版本之中编译的时候可能还会改变…

为什么有的孩子玩着玩着就成了学霸?

毫不夸张地说,几乎所有的父母都想养出聪明宝宝,孩子上学之后能成为学霸就更省心了。 可“聪明”毕竟不能量化,不是说让孩子上几天课就能提升的。很多家长都在促进孩子大脑发育上使足了劲,可到头来却发现是在做“无用功”。 事实…

SUSE 12双网卡绑定

原创作者:运维工程师 谢晋 SUSE 12双网卡绑定 客户环境及需求网卡绑定 客户环境及需求 客户一台物理机安装了SUSE 12的操作系统,需要将ETH5和ETH7双网卡聚合为一块虚拟网卡,以保证一块网卡故障不会影响系统正常运行。 网卡绑定 输入命令c…

C#查看启用或关闭的Windows功能

通过命令查看启用或关闭的Windows功能,以管理员身份打开powershell,输入命令get-windowsoptionalfeature -online 得出结果如下: 如果使用C#查看,需要先安装System.Management 代码如下: private void isInstall() …

Unity | Shader(着色器)和material(材质)的关系

一、前言 在上一篇文章中 【精选】Unity | Shader基础知识(什么是shader)_unity shader_菌菌巧乐兹的博客-CSDN博客 我们讲了什么是shader,今天我们讲一下shder和material的关系 二、在unity中shader的本质 unity中,shader就…

【紫光同创国产FPGA教程】——PDS安装教程

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处 一:软件简介 PangoDesign Suite是紫光同创基于多年FPGA开发软件技术攻关与工程实践经验而研发的一款拥有国产自主知识产权的大规模FPGA开…

软件测评中心▏软件功能测试和非功能测试的区别和联系简析

在软件开发的过程中,功能测试和非功能测试是两个重要的环节。功能测试是指对软件的各项功能进行验证和确认,关注软件是否按照需求规格说明书进行了实现,是否满足了用户的功能需求。而非功能测试是指对软件的性能、可靠性、安全性等方面进行测…

Zabbix之部署代理服务器

一、部署代理服务器 分布式监控的作用 分担server的几种式压力解决多机房之间的网络延时问题 1、搭建proxy主机 1.1 关闭防火墙,修改主机名 systemctl disbale --now firewalld setenforce 0 hostnamectl set-hostname zbx-proxy su1.2 设置zabbix下载源 rpm …

Unity中Shader光照探针的支持

文章目录 前言一、光照探针用在哪怎么用1、光照探针的应用场景2、我们按照以上条件,在Unity中搭建一个相同的环境3、创建光照探针 二、在我们自己的Shader中,实现支持光照探针1、使用常用的 cginc2、在 v2f 中,准备如下变量3、在顶点着色器中…

2023年【安全员-B证】新版试题及安全员-B证免费试题

题库来源:安全生产模拟考试一点通公众号小程序 安全员-B证新版试题参考答案及安全员-B证考试试题解析是安全生产模拟考试一点通题库老师及安全员-B证操作证已考过的学员汇总,相对有效帮助安全员-B证免费试题学员顺利通过考试。 1、【多选题】下列哪些属…

云表:“智、数”结合,低代码赋能制造业,入局者赢

在数智时代,智能制造正崭露头角,它借助先进的信息技术和数据分析工具,将制造业与人工智能紧密结合,推动生产过程的智能化和自动化。通过大数据、云计算、物联网等前沿技术,智能制造实现了生产线的高效、灵活、可定制的…

文件加密软件怎么用(附2种解密破解工具)

有时候出差或者有些商务场合,需要对一些敏感文件做一下简单的加密,这样在分享内容的时候,可以起到初步的保护作用。 当然了,如果文件非常重要,涉及到一些商业机密,这个时候你需要使用专业的加密工具&#x…

陳烨(本烨)老师受聘為香港國學發展研究院客座教授

香港國學發展研究院有幸宣布,中華傳統文化學者陳烨女士已正式受聘為學院的客座教授。陳烨女士是一位備受尊敬的學者,在中華傳統道學文化領域擁有廣泛的知識和卓越的學術成就。   陳烨女士是中華傳統道學文化領域的知名專家。她不僅在教學方面積累了豐富…

挑战100天 AI In LeetCode Day07(热题+面试经典150题)

挑战100天 AI In LeetCode Day07(热题面试经典150题) 一、LeetCode介绍二、LeetCode 热题 HOT 100-92.1 题目2.2 题解 三、面试经典 150 题-93.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站,提供各种算法和数据结构的题目&am…

2023禁用谷歌浏览器自动更新最好的解决方式

🧁介绍 对于一些用户来说,Chrome 浏览器的自动更新功能可能会带来一些不便或者不必要的麻烦。 本文将介绍如何使用批处理脚本来停止和禁用 Chrome 的自动更新功能,确保不再进行后台网络操作。文章将详细说明代码的编写和执行步骤。 &#…

FastReport 2023.1.3 基于源码原版本升级 Delphi 12 c++ builder 12

复制 RAD Studio 10.4 为RAD Studio 12 dpk 文本打开 28 改成 29 Build -> install就可以了

福州等保测评机构有几家?正规吗?在哪里?

最近看到不少福州小伙伴在问,福州等保测评机构有几家?正规吗?在哪里?这里小编就给大家来详细解答一下,仅供参考哦! 福州等保测评机构有几家?正规吗?在哪里? 【回答】&…

windows系统自动更新中断电导致系统无法开启

windows系统自动更新中断电导致系统无法开启 现象原因解决进入bios拆机更新系统重新安装内存条 现象 前一天晚上电脑出现合上之后风扇继续转的现象,拔掉电源后,第二天开不了机。现象为按压电源键,电源键和充电指示灯亮一次后熄灭&#xff0c…

docker 构建并运行 python项目

此处不重述docker安装及基本命令,可参考另一篇文章centos7 安装 docker_centos7 docker network rm-CSDN博客文章浏览阅读111次。1、 1.1 docker 官网 Empowering App Development for Developers | DockerLearn how Docker helps developers bring their ideas to …