中断相关内容大全

news/2024/5/17 11:26:13/文章来源:https://blog.csdn.net/qq_43527718/article/details/130630750
  1. 中断基本概念:程序中断指计算机执行现行程序过程中,出现某种急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序

  2. 中断请求的分类:

    • 内中断(异常、例外、陷入)
      • 自愿中断:指令中断(陷入指令、trap指令)
      • 强迫中断:硬件故障(如缺页)、软件中断(如整除0)
    • 外中断
      • 外设请求(如I/O操作完成发出的中断信号)
      • 人工干预(如用户强行终止一个进程)
  3. 单重中断处理过程:正常取指令、执行指令->指令执行完毕后例行检查是否有中断->(是的话)【中断隐指令】中断响应、程序断点进栈、关中断、向量地址赋给PC->【中断服务程序】保护现场、(各种)中断服务、恢复现场、开中断、中断返回。中断隐指令+中断服务程序=中断处理过程

    • 中断隐指令:是CPU在检测到中断请求时自动完成的一系列动作,即下面三个都是由硬件完成的
      • 关中断:为了保护中断现场期间不被新的程序中断所打断,必须关中断,从而保证被中断的程序在中断服务程序执行完毕后能接着正确执行
      • 保存断点:将原来程序的断点(即PC内容)保存起来,可存入堆栈或指定单元
      • 引出中断服务程序:实质就是取出中断服务程序的入口地址并传送给PC
    • 中断服务程序:其实这个只是一个名字,它的第二步才是执行中断服务程序。可以把这类操作归为由软件完成的(即操作系统完成的)
      • 保存现场:保存通用寄存器等的内容(用于程序恢复后CPU环境的恢复)
      • 中断服务:主体部分,如通过程序控制需打印的字符代码送入打印机的缓冲存储器中
      • 恢复现场:通过出栈指令或取数指令把之前保存的信息送回寄存器中(恢复通用寄存器等)
      • 中断返回:通过中断返回指令回到原程序断点处(恢复PC和PSW)
  4. 多重中断:
    单重中断执行中断服务程序时不响应新的中断请求;而多重中断执行中断服务程序时可响应新的中断请求,优先级别高的中断源有权中断优先级别低的中断源

    单重中断多重中断
    中断隐指令关中断关中断
    保存断点(PC)保存断点(PC)
    送中断向量送中断向量
    中断服务程序保护现场保护现场和屏蔽字
    开中断
    执行中断服务程序执行中断服务程序
    关中断
    恢复现场恢复现场和屏蔽字
    开中断开中断
    中断返回中断返回
    • 中断屏蔽技术:用于多重中断,只有优先级别高的中断源才有权中断优先级别低的中断源。每个中断源都有一个屏蔽触发器,1表示屏蔽该中断源的请求,0表示可以正常申请中断。所有屏蔽触发器组合在一起构成一个屏蔽字寄存器。屏蔽字寄存器的内容称为屏蔽字(每个中断源都有一个自己的屏蔽字),屏蔽字中1越多,优先级越高。每个屏蔽字中至少有一个1(至少要能屏蔽自身的中断)
  5. 引入了中断系统后,如何控制I/O设备的数据读写工作呢(具体步骤):
    请添加图片描述
    CPU运行一个程序,运行过程中需要使用外部设备(如要从外部设备输入一个字符的数据):

    • 首先通过一些I/O指令向I/O设备发出启动输入相关的命令,然后外部设备就可以去准备CPU想要的数据了。
    • 在外部设备准备数据的过程中,CPU可以继续执行之前的程序(没有引入中断系统时,程序查询是CPU启动I/O设备后,需要用轮询的方式不断检查I/O设备有没有完成输入工作;而引入中断系统后,CPU可以继续干以前的事情)
    • 当I/O设备完成工作后,会给CPU发送一个中断请求信号。CPU执行完一个指令k后,在指令周期的末尾会例行检查有无中断请求信号。检测到后对该设备发送一个确认信号
    • 处理中断:
      • 中断隐指令(硬件自动完成):关中断、保存断点PC和PSW、引出中断服务程序(即将PC的值变成中断处理程序的首地址,然后处理器会执行下一条指令,即先取指,取中断处理程序首地址的址)
      • 执行中断处理程序(操作系统完成):保护现场(由于到这里时PC和PSW已经被硬件自动存放在系统栈中了,这里的保护现场是指将处理器中的通用寄存器的值保存在栈中,这是因为中断处理程序可能会修改这些寄存器的值)、(根据不同的中断类型)提供中断服务、恢复现场(即恢复那些通用寄存器的值)、开中断、中断返回(即恢复PC和PSW的值)
    • 处理完中断后,返回k+1指令,CPU继续执行原来的指令,直到外设准备好下一个数据,再次给CPU发出中断请求信号,然后再重复上述过程即可
  6. 一个中断的发生会使得处理器硬件和软件都执行一系列操作,具体图如下:
    请添加图片描述

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

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

相关文章

算法修炼之练气篇——练气十七层

博主:命运之光 专栏:算法修炼之练气篇 前言:每天练习五道题,炼气篇大概会练习200道题左右,题目有C语言网上的题,也有洛谷上面的题,题目简单适合新手入门。(代码都是命运之光自己写的…

【最新可用】chatGPT镜像网站国内使用,免费稳定!

新建了一个网站 https://ai.weoknow.com/ 每天给大家更新可用的国内可用chatGPT 2023.5.8新增一个 ChatGPT 国内免翻版 【网站名称】:Chat GPT Ai 【使用环境】:移动端/电脑网页端 ChatGPT是一款功能强大的免费在线聊天机器人,具有人工智能…

JavaScript通过js的方式来计算平行四边形的面积的代码

以下为通过js的方式来计算平行四边形的程序代码和运行截图 目录 前言 一、通过js的方式来计算平行四边形(html部分) 1.1 运行流程及思想 1.2 代码段 二、通过js的方式来计算平行四边形(js部分) 2.1 运行流程及思想 2.2 代码…

C#中如何使用ObjectPool来提高StringBuilder的性能

在C#中我们知道使用StringBuilder能提高大量字符串拼接的效率,其实StringBuilder的效率也可以提升,那就是使用ObjectPool。以下介绍怎么使用ObjectPool提高StringBuilder的性能。一、简介 C# ObjectPool类是一个内置的类库,用于实现对象…

AFG1062任意波形/函数发生器 产品资料

AFG1000 任意波形/函数发生器,提供 25MHz 或 60MHz 带宽,2 个输出通道,在整个带宽内 1mVpp 到 10Vpp 输出振幅,泰克 AFG1000 任意波形/函数发生器可以生成各种实验室测试所需波形。 *重要的是,它在泰克任意函数发生器系…

基于知识图谱的个性化学习资源推荐系统的设计与实现(论文+源码)_kaic

摘 要 最近几年来,伴随着教育信息化、个性化教育和K12之类的新观念提出,一如既往的教育方法向信息化智能化的转变,学生群体都对这种不受时间和地点约束的学习方式有浓厚的兴趣。而现在市面上存在的推荐系统给学生推荐资料时不符合学生个人对知识获取的…

小曾同学【五周年创作纪念日】——努力向前冲的菜鸟

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️, 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊 座右铭:不想当开发的测试,不是一个好…

自主可控不走捷径,中国长城做难且正确的事

2020-2022年是中国信创产业的重要推广期,在国家战略的支持下,自主可控领域诸多相关企业均获得绝佳发展良机。 但信创产业“完成替代”不是终点,“实现领先”方是目标。如今势已启、路尚远,前景广阔的市场并不意味着自主可控相关企…

Hadoop之block切片

切片是一个逻辑概念 在不改变现在数据存储的情况下,可以控制参与计算的节点数目 通过切片大小可以达到控制计算节点数量的目的 有多少个切片就会执行多少个Map任务 hdfs上数据存储的一个单元,同一个文件中块的大小都是相同的 因为数据存储到HDFS上不可变&#xff0…

Lucene(1):Lucene介绍

Lucene官网: http://lucene.apache.org/ 1 搜索技术理论基础 1.1 lucene优势 原来的方式实现搜索功能,我们的搜索流程如下图: 上图就是原始搜索引擎技术,如果用户比较少而且数据库的数据量比较小,那么这种方式实现搜…

2路 QSFP,40G 光纤的数据实时采集(5GByte/s 带宽)板卡设计原理图 -PCIE732

板卡概述 PCIE732 是一款基于 PCIE 总线架构的高性能数据传输卡,板卡具有 1 个 PCIex8 主机接口、2 个 QSFP40G 光纤接口,可以实现 2 路 QSFP 40G 光纤的数据实时采集、传输。板卡采用 Xilinx 的高性 能 Kintex UltraScale 系列 FPGA 作为实时处理器…

小程序开发中的插件、组件、控件到底有什么区别?

小程序插件代码由一些自定义组件和 JS 代码文件构成,插件开发者在发布插件时,这些代码被上传到后台保存起来。当小程序使用插件时,使用者需填写插件的 AppID 和版本号,就可从后台获取相应的插件代码。小程序代码编译时&#xff0c…

2023什么蓝牙耳机好?经销商盘点新手必入蓝牙耳机品牌

蓝牙耳机是除手机外我们使用频率最高的数码产品,我做蓝牙耳机经销商五年来,对各个品牌都有深入了解。近期看到很多新手们咨询什么蓝牙耳机好,我给大家盘点一下新手必看的五大蓝牙耳机品牌。 1.JEET Air 2蓝牙耳机 推荐理由:专为舒…

知识点回顾(一)

1.final,finally ,finalize final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final&…

外强中干——双向带头循环链表

前言:众所周知,链表有八种结构,由单向或双向,有头或无头,循环或不循环构成。在本篇,将介绍8种链表结构中最复杂的——双向带头循环链表。听着名字或许挺唬人的,但实际上双向带头循环链表实现起来…

H3C防火墙单机旁路部署(网关在防火墙)

防火墙旁路部署在核心交换机上,内网有三个网段vlan 10:172.16.10.1/24、vlan 20:172.16.20.1/24、vlan30:172.16.30.1。要求内网网关在防火墙设备上,由防火墙作为DHCP服务器给终端下发地址,同时由防火墙来控…

网站域名历史记录批量查询-老域名建站历史快照数据查询

域名建站历史查询软件 域名建站历史查询软件是一种用于查询一个域名被使用的网站的历史记录的工具。它可以提供许多有用的信息,包括该网站的创建和修改日期、使用的网站建设平台、使用的CMS系统、网站的历史页面内容和页面结构等。 域名建站历史查询软件的作用是帮…

【MATLAB第30期】基于MATLAB的adaboost多分类预测集成学习模型(四种模型GDA高斯判别分析、Knn、NB朴素贝叶斯、SVM)

【MATLAB第30期】基于MATLAB的adaboost多分类预测集成学习模型(四种模型GDA高斯判别分析、Knn、NB朴素贝叶斯、SVM) 一、简介 弱分类器 %1.GDA高斯判别分析 %2.Knn (NumNeighbors 5) K邻近 %3.Naive Bayes 朴素贝叶斯 %4.SVM 支持向量机 强分类器 1.a…

视频理解AI模型分类与汇总

人工智能领域视频模型大体也经历了从传统手工特征,到卷积神经网络、双流网络(2014年-2017年)、3D卷积网络、transformer的发展脉络。为了时序信息,有的模型也结合用LSTM。 视频的技术大多借鉴图像处理技术,只是视频比…

Lucene(2):Lucene全文检索的流程

1 索引和搜索流程图 (1)绿色表示索引过程,对要搜索的原始内容进行索引构建一个索引库,索引过程包括: 确定原始内容即要搜索的内容 获得文档创建文档分析文档索引文档 (2)红色表示搜索过程&…