简述操作系统的系统中断

news2024/12/29 0:26:12

系统中断

系统中断是指 CPU 对系统发生的某个事件做出的一种反应:CPU 暂停正在执行的程序,保留现场后转去执行相应的处理程序,处理完该事件后再返回断点继续执行被打断的程序。

中断可以避免 CPU 轮询等待某条件成立,减小系统开销。中断是多程序并发执行的前提条件。

当中断发生时,由于操作系统的管理工作需要特权指令,CPU 会立刻进入核心态,使得操作系统获得计算机的控制权。用户态到核心态的转换就是通过中断机制实现的,并且是唯一途径。

内中断(软中断)

**内中断又称为软件中断、同步中断、异常,内中断的信号来源于 CPU 内部、与当前执行的指令有关。**如整数除 0。之所以称为同步,是因为只有在一条指令终止执行后 CPU 才会发出中断。

处理流程:

  1. CPU 终止执行当前程序流,将 CPU 所有寄存器的数值保存到栈中;
  2. CPU 根据中断向量,从中断向量表中查找中断处理程序的入口地址,执行中断处理程序;
  3. CPU 恢复寄存器中的数值,返回原程序流停止位置继续执行。

外中断(硬中断)

**外中断又称为硬件中断、异步中断,外中断的信号来源于 CPU 外部,与当前执行的指令无关。**如磁盘的 IO 中断、时钟中断等。

计算机中每个组成组件都有自己的 IRQ(Interrupt Request,中断请求),都可以在需要的时候通过总线向 CPU 发送硬件中断通知。

处理流程:

  1. 外设 将中断请求发送给中断控制器;
  2. 中断控制器 根据中断优先级,有序地将中断传递给 CPU;
  3. CPU 终止执行当前程序流,将 CPU 所有寄存器的数值保存到栈中;
  4. CPU 根据中断向量,从中断向量表中查找中断处理程序的入口地址,执行中断处理程序;
  5. CPU 恢复寄存器中的数值,返回原程序流停止位置继续执行。

中断描述符表

IDT,中断描述符表,Interrupt Descriptor Table,每个表项为 8 个字节,记录对应中断处理函数的地址以及其他的一些控制位。IDT 存在于内核空间,CPU 中有寄存器 IDTR 用于保存 IDT 32 位的基地址和 16 位的限长值,限长值是以字节为单位的 IDT 表的长度。

因为最多只支持 256 个中断向量,所以 IDT 无需包含多于 256 个描述符。

CPU 在接收到中断时,会根据中断向量在中断描述符表中检索对应的描述符,每个中断对应一个表项。其中 0-31 号中断号位系统为预定义的中断和异常保留的,用户不得使用,硬件中断号从 32 号开始分发。

每当 CPU 接收到一个中断信号,CPU 首先要做的决定是否响应这个中断(具体由中断控制器根据中断优先级决定是否给 CPU 发送中断信号)。如果决定响应,就终止当前运行的进程,根据 IDTR 寄存器获取中断描述符表的基地址,然后根据中断号定位具体的中断描述符。

在这里插入图片描述

门描述符

IDT 中的每一个表项叫做中断描述符、中断向量,或门描述符(gate descriptor),”门“的含义是指当中断发生时,必须先通过这些门,然后才能进入相应的处理程序。

在这里插入图片描述

门描述符可以分为三类:

  • 中断门(Interrupt Gate):中断门包含了一个中断或异常处理程序所在段的选择符和段内偏移量。当控制权通过中断门进入中断处理程序时,处理器清 IF 标志,即关闭中断,以避免中断嵌套。
  • 陷阱门(Trap Gate):与中断门类似,其唯一的区别是,控制权通过陷阱门进入处理程序时维持 IF 标志位不变,即不关闭中断。
  • 任务门(Task Gate):段选择符中存放的是任务状态段 TSS(Task State Segment)的选择子,可以通过这种与硬件配合的方式指定运行任务。

在这里插入图片描述

图中灰色部分表示未使用的保留部分。

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

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

相关文章

2023-02-10 - 5 文本搜索

与其他需要精确匹配的数据不同,文本数据在前期的索引构建和搜索环节都需要进行额外的处理,并且在匹配环节还要进行相关性分数计算。本章将详细介绍文本搜索的相关知识。 本章首先从总体上介绍文本的索引建立过程和搜索过程,然后介绍分析器的…

离子阱量子计算机

1.新闻 2020年6月,科技制造企业霍尼韦尔(Honeywell)发布第一台离子阱量子计算机H0,它拥有64量子体积,它是IBM和谷歌同时期量子计算机的两倍。公司表示之所以能取得这一成就缘于他们2015年在一篇科学论文中展示的量子电…

Docker 容器与容器云读书笔记(一)

最近都没时间看书,闲暇之余看看书,写写笔记,记录一下这难得的时光。 docker容器的出现 2013年初, 一个名字从云计算领域横空出世,并在整个IT行业激起千层浪,这就是Docker。Docker选择容器作为核心和基础&…

与六年测试工程师促膝长谈,他分享的这些让我对软件测试工作有了全新的认知~

不知不觉已经从事软件测试六年了,2016年毕业到进入外包公司外包给微软做软件测试, 到现在加入著名的外企。六年的时间过得真快。长期的测试工作也让我对软件测试有了比较深入的认识。但是我至今还是一个底层的测试人员,我的看法都比较狭隘&am…

知识点滴 - 电源适配器接头的极性

使用各种电子设备,肯定要使用到电源适配器(adapter)。在电源适配器的标签上面一般会有几项是需要注意的。第一,是adapter的“INPUT/输入”,在中国通用的一般是AC100-240V~50-60Hz,这说明这个adapter可以在100V-240V的交流电压下面…

自动驾驶过冬,需要点燃“降本增效”的炉火

进入2023年,人们还在等待这个冬天的第一场雪,同时也在感叹暖冬已经成为了新的常态。但对自动驾驶产业而言,这个冬天似乎并没有那么暖。回顾2022年,全球自动驾驶行业裁员、倒闭、部门裁撤的消息不绝于耳。资本市场也逐渐放弃了自20…

流浪气球?ChatGPT这样回答,我惊了

近日,流浪地球电影反响热烈,“流浪气球”事件讨论热火,连人工智能ChatGPT都发表了 “自己”的看法,到底是怎么一回事呢?起因是我国一只民用气球,因技术和天气原因不小心飘到了米国上空,对方当时…

vue组合式API及生命周期钩子函数

一、组合式API 什么是组合式API? vue3中支持vue2的选项式、支持新的编程模式–函数式编程(没有this指针)做了一个兼容,可以在一个组件中使用函数式编程和OOP编程(选项式) setup()函数 可以使用setup属性…

二叉树的遍历 (2023-02-11)

二叉树的遍历 二叉树的遍历分为:先序遍历、中序遍历、后序遍历和层次遍历。 1.先序遍历(根左右) (1)访问根节点 (2)左子树按根左右遍历 (3)右子树按根左右遍历 2.中序…

【Flume】高级组件之Channel Selectors及项目实践

文章目录1. 组件简介2. 项目实践2.1 Replicating Channel Selector实践2.1.1 需求2.1.2 配置2.1.3 运行2.2 Multiplexing Channel Selector实践2.2.1 需求2.2.2 配置2.2.3 运行1. 组件简介 通俗来讲,Channel Selectors组件控制Source采集到的数据分别流向哪些Channe…

Idea超好用的管理工具ToolBox(附带idea工具)

文章目录为什么要用ToolBox总结idea管理安装、更新、卸载寻找ide配置、根路径idea使用准备工作配置为什么要用ToolBox 快速轻松地更新,轻松管理您的 JetBrains 工具 安装自动更新同时更新插件和 IDE回滚和降级通过下载补丁或一组补丁而不是整个包,节省维护 IDE 的…

snakeyaml数字字符串显示单引号的问题

如题所示&#xff0c;一般yaml结构中&#xff0c;字符串直接显示没有单引号的字符串&#xff0c;如果字符串由数字组成&#xff0c;为了区别真正的数字&#xff0c;这个字符串会使用单引号包围起来。 数据结构如下&#xff1a; Map<String,Object> map new LinkedHashM…

COCO物体检测评测方法简介

本文从ap计算到map计算&#xff0c;最后到coco[0.5:0.95:0.05] map的计算&#xff0c;一步一步拆解物体检测指标map的计算方式。 一、ap计算方法 一个数据集有多个类别&#xff0c;对于该数据库有5个gt&#xff0c;算法检测出来10个bbox&#xff0c;对于人这个类别来说检测有…

类和对象实操之【日期类】

✨个人主页&#xff1a; Yohifo &#x1f389;所属专栏&#xff1a; C修行之路 &#x1f38a;每篇一句&#xff1a; 图片来源 The pessimist complains about the wind; the optimist expects it to change; the realist adjusts the sails. 悲观主义者抱怨风;乐观主义者期望它…

两数相加-力扣2-java高效方案

一、题目描述给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外&#xff0c;这两个数都不…

论文阅读 | Rethinking Coarse-to-Fine Approach in Single Image Deblurring

前言&#xff1a;ICCV2021图像单帧运动去糊论文 论文地址&#xff1a;【here】 代码地址&#xff1a;【here】 Rethinking Coarse-to-Fine Approach in Single Image Deblurring 引言 图像去糊来自与物体或相机的运动。现有的deblur领域的深度学习方法大多都是coarse-to-fin…

RiProV2主题美化增加支付页底部提示语ritheme主题美化

美化背景 默认的RiProV2主题在支付提示页,是没有这一行提示的 希望增加根据用户类别,未登录用户购买时提示:当前为游客模式购买。或者其他提示,提示用户未登录购买不保存购买记录等。 索引关键字:ritheme主题美化之增加支付页底部提示语,RiProV2主题美化增加支付页底部提…

git必会的知识点

注&#xff1a;本文参考https://www.liaoxuefeng.com/wiki/896043488029600 原文非常值得一读&#xff0c;作者学识渊博&#xff0c;补充了很多有意思的知识。我仅仅是拾人牙慧。 git是最先进的分布式版本控制系统。 版本控制系统——自动记录系统中文件的改动情况&#xff0…

多核异构核间通信-mailbox/RPMsg 介绍及实验

1. 多核异构核间通信 由于MP157是一款多核异构的芯片&#xff0c;其中既包含的高性能的A7核及实时性强的M4内核&#xff0c;那么这两种处理器在工作时&#xff0c;怎么互相协调配合呢&#xff1f; 这就涉及到了核间通信的概念了。 IPCC (inter-processor communication contr…

Maven_第四章 使用Maven:IDEA环境

目录第一节 创建父工程第二节 配置Maven信息第三节 创建Java模块工程第四节 创建Web模块工程1、创建模块2、修改打包方式3、Web 设定4、借助IDEA生成web.xml5、设置 Web 资源的根目录6、测试6.1 创建文件6.2 配置tomcat第五节 其他操作1、在IDEA中执行Maven命令①直接执行②手动…