中断相关内容大全

news2024/11/25 7:17:26
  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.coloradmin.cn/o/519830.html

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

相关文章

【刷题之路】LeetCode24——详解两两交换链表中的结点的细节

一、题目描述 原题链接:https://leetcode.cn/problems/swap-nodes-in-pairs/comments/ 题目描述:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即&am…

linux下将结果保存为图片,因为服务器是命令行界面,无法弹出窗口

解决方法来自GitHub:https://github.com/open-mmlab/mmdetection/issues/1405 The code below can show and save image with result. import mmcv import cv2 from mmcv.runner import load_checkpoint from mmdet.models import build_detector from mmdet.apis i…

C语言结构体位域

目录 一、C语言位域是什么? 二、位域详解 定义格式: 1. 数据类型排序改变,位域长度不变 2. 数据类型排序不变,位域长度改变 3.根据以上代码的验证可以得出以下计算位域结构体数据的方法: 三.位域的结构体数据如何进行print…

感恩有你:毕业论文致谢部分写作指南

现在正值毕业论文写作最后收尾阶段,估计很多同学开始各处收集如何写致谢这个部分。之前写过一篇文章中引用一位导师的“抱怨”,文章题目为“211导师深夜含泪发文:在你长达5万字的毕业论文中,我最欣赏致谢部分”,所以为…

Java面试题spring

Spring 1、不同版本的 Spring Framework 有哪些主要功能? 2、什么是 Spring Framework? Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度。它是轻量级、松散耦合的。 它具有分层体系结构,允许用户选择组件&#xff0c…

国考省考行测:资料分析题,年均增长量

国考省考行测:资料分析题,年均增长量 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能,附带行测和申论,而常规国考省考最重要的还是申论和行测,所以大家认真准备吧,我讲一起屡屡申…

Docker基础篇

1、为什么Docker比VM快 2、帮助启动类命令 启动类命令 启动docker: systemctl start docker停止Docker: systemctl stop docker重启Docker: systemctl restart docker查看状态: systemctl status docker设置开机自启&#x…

stable diffusion webui 教程:安装与入门

stable diffusion webui 安装与入门 一、源码仓库二、模型库地址三、在 Windows 上自动安装步骤安装Python安装git下载源代码编辑 webui-user.bat 四、如何打开五、依据文字生成图片六、API在哪里?七、用python调用API接口示例八、如何制作生成精美的图片1、下载模型…

Qt--多窗口编程

目录 1. QMessageBox 消息对话框(掌握) 示例代码: dialog.h dialog.cpp dialog.ui 运行结果: 2. 窗口类继承关系 dialog.cpp 3. QMainWindow 主窗口类 3.1 QMenuBar 菜单栏 3.2 QToolBar 工具栏 3.3 QWidget 中心组件 3.4 QStatu…

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

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

九盾安防智能叉车管理系统告诉你叉车电池安全使用的十要点

叉车电池是叉车的动力源,对于保证叉车安全运行具有非常重要的作用。但是,叉车电池在使用过程中也会存在一些安全问题,如果使用不当可能会引起严重后果。下文就九盾安防智能叉车管理系统介绍叉车电池安全使用的十要点。 一、保证通风良好。在使…

课程《JavaWeb基础框架程序设计》考试题下篇——数据库与表单操作用题(人事管理平台的添加员工档案信息的操作题)

文章目录 📋前言🎯第三题(40分)🎯报错以及解决方法📝最后 📋前言 这篇文章是大学课程《JavaWeb基础框架程序设计》考试题目的内容,包括了原题和答案。题目只包括了三道编程题&#…

2直接连接的网络与VLAN划分-2.3【实验】【计算机网络】

2直接连接的网络与VLAN划分-2.2-2.3【实验】【计算机网络】 前言推荐2直接连接的网络与VLAN划分2.1共享式以太网和交换式以太网2.2交换机MAC地址表建立与帧转发2.3 STP工作过程实验目的实验内容及实验环境实验原理物理环路引发的问题1:广播风暴物理环路引发的问题2:MAC地址表翻…

ChatGPT之公文写作

公务文章主要适用于政府部门、机关、事业单位以及其他公共组织的文件、公告、通知等文稿。 根据《党政机关公文处理工作条例》,公文种类主要有15种。按照行文流向,可以分为上行文、平行文、下行文。 1、上行文:请示、报告、意见。 2、平行…

Qt 文件IO

目录 1. QFileDialog 文件选择对话框 示例代码 dialog.h dialog.cpp dialog.ui 运行效果: 2. QFileInfo 文件信息类 dialog.cpp 3. QFile 文件读写类 UI与耗时操作 QThread 线程类 1 复现阻塞 dialog.h dialog.cpp 2.新建并启动子线程 mythread.h mythread.cpp dial…

Py之tf2onnx:tf2onnx库的简介、安装、使用方法之详细攻略

Py之tf2onnx:tf2onnx库的简介、安装、使用方法之详细攻略 目录 tf2onnx库的简介 tf2onnx库的安装 tf2onnx库的使用方法 1、基础用法 tf2onnx库的简介 tf2onnx是一个将TensorFlow(tf-1.x或tf-2.x)、keras、tensorflow.js和tflite模型转换…

【python安装】linux环境安装python

linux环境安装python 小白都能看懂的python安装前置步骤下载python安装python 小白都能看懂的python安装 前置步骤 使用 python -V 或者 python -version 查看是否安装python如果Linux有python3需要更新指定版本的话,先把自带的删除,输入 rpm -qa|grep…

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

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

算法修炼之练气篇——练气六层

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

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

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