操作系统的中断操作

什么是操作系统的中断?什么时候触发中断? 中断本质上是CPU 和设备之间的一种异步通讯机制。当某些事件发生时,设备或程序通过向 CPU 发出信号,让 CPU 暂停当前任务,转而执行“中断服务程序(ISR, Interrupt Service Routine)”。中断发生后,系统会:暂停当前执行的指令;保存现场(上下文);跳转执行对应的中断处理程序;处理完后恢复上下文,返回原程序继续执行。中断是操作系统实现实时响应、系统调度和进程切换的基础,它允许 CPU 高效应对外部事件而无需浪费时间等待或轮询。 阅读详情

一、中断的类型

1. 硬件中断(外部中断)
  • 触发源:由外部设备(如键盘、硬盘、网卡)通过硬件信号通知CPU。
  • 特点:
    • 异步:发生时间不可预测(如用户按下键盘)。
    • 可屏蔽:可通过设置中断屏蔽位暂时忽略(如处理关键代码时关闭中断)。
  • 示例:
    • I/O完成中断:硬盘读取完成时通知CPU处理数据。
    • 时钟中断:定时器周期性触发,用于任务调度或超时检测。
2. 异常(内部中断)
  • 触发源:CPU执行指令时检测到错误或特殊条件。
  • 特点:
    • 同步:由当前执行的指令直接引发。
    • 不可屏蔽:必须立即处理(如除零错误、内存访问违规)。
  • 分类:
    • 故障(Fault):可修复的错误(如缺页异常,处理后可继续执行)。
    • 陷阱(Trap):主动触发,用于系统调用(如int 0x80触发内核服务)。
    • 终止(Abort):严重错误(如硬件故障),导致进程终止。
3. 软中断(软件中断)
  • 触发源:由程序主动发起(如系统调用)。
  • 示例:
    • 系统调用:用户程序通过syscall指令陷入内核态。
    • 调试断点:调试器通过软中断暂停程序执行。

二、中断处理流程

1. 中断触发
  • 硬件设备或异常条件发送中断信号到CPU的中断控制器(如APIC、PIC)。
  • 中断控制器根据优先级决定是否向CPU传递信号。
2. CPU响应
  • 保存上下文:CPU暂停当前任务,将寄存器状态(如程序计数器、标志寄存器)压入栈。
  • 关闭中断:部分场景需暂时屏蔽其他中断(通过CLI指令)。
3. 执行中断处理程序(ISR)
  • 查中断向量表(IDT):根据中断号(如IRQ编号)找到对应的处理函数。
  • 运行ISR:
    • 硬件中断:读取设备状态,处理数据(如将键盘输入存入缓冲区)。
    • 异常:尝试修复错误(如缺页异常加载内存页)或终止进程。
    • 系统调用:切换至内核态,执行服务例程(如读写文件)。
4. 恢复执行
  • 恢复上下文:从栈中恢复寄存器状态。
  • 开启中断:重新允许响应中断(通过STI指令)。
  • 继续执行:返回原任务或调度新任务(如时钟中断触发进程切换)。

三、关键概念

1. 中断优先级
  • 多个中断同时发生时,高优先级中断优先处理(如时钟中断 > 键盘中断)。
  • 优先级由中断控制器配置,避免低优先级任务阻塞系统。
2. 中断嵌套
  • 允许高优先级中断打断正在处理的低优先级中断。
  • 需谨慎处理栈空间和资源竞争(如避免死锁)。
3. 中断与轮询
  • 中断驱动:事件触发响应,节省CPU资源(适合随机事件)。
  • 轮询(Polling):CPU主动检查设备状态,简单但效率低(适合高频事件)。
4. 中断上下文
  • 与进程上下文的区别:
    • 中断处理程序运行在中断上下文,不能阻塞(如不可调用可能休眠的函数)。
    • 进程上下文可切换调度(如系统调用处理)。

四、中断的实际应用

1. 设备驱动
  • 网卡收到数据包后触发中断,CPU将数据从硬件缓冲区拷贝到内存。
2. 任务调度
  • 时钟中断触发调度器,决定是否切换进程(如时间片耗尽)。
3. 系统调用
  • 用户程序通过软中断(如syscall)进入内核态,执行特权操作。
4. 错误处理
  • 缺页异常触发页面加载,内存访问错误终止进程。

五、中断与线程中断的区别

特性操作系统中断线程中断(Java等)
触发源硬件或CPU异常另一个线程调用interrupt()
处理层级底层硬件/内核应用层代码协作
响应机制强制暂停CPU当前任务目标线程检查标志并决定是否退出
典型应用设备I/O、异常处理、任务调度协作式线程终止、取消任务

六、示例:键盘输入中断处理

  1. 用户按下键盘按键,键盘控制器发送中断信号。
  2. CPU保存当前寄存器状态,跳转到键盘中断处理程序。
  3. 程序从键盘缓冲区读取按键编码,转换为字符。
  4. 将字符存入输入队列,唤醒等待输入的进程。
  5. CPU恢复原任务继续执行。

操作系统——中断 中断的处理过程 CPU暂停正在执行的程序,关中断——保留CPU环境——执行该I/O设备的【中断处理程序】——返回断点,继续执行原来的程序 中断(外中断) 【CPU】对【I/O设备】发来的【中断信号】的一种响应 陷入trap(内中断) 【CPU内部事件】所引起的中断,如运算过程中发生上溢或下溢、非法指令、地址越界、电源故障 中断向量表 【I/O设备】发来中断请求信号 【中断控制器】确定该请求的中断号,根据中断号查找中断向量表 【中断向量表】中取得该设备的中断处理程序的入口地址,最终执行【中断处理程序】 屏蔽( 阅读详情

相关推荐

【操作系统】软中断vs硬中断

(如键盘、网卡、磁盘)触发,通知 CPU 有紧急事件需要处理。(如系统调用、异常处理),用于请求内核服务或处理异常。是 CPU 响应外部事件的重要机制,分为。理解二者的区别,有助于优化。

司六米希的博客 1268

操作系统之——中断

操作系统之——中断

LxinY213的博客 2490

如何适配自定义激光雷达数据到LIO-SAM:解决ring和time参数缺失问题

本文详细解析了如何将非标准激光雷达(如速腾、Livox)适配到LIO-SAM框架中,重点解决ring和time参数缺失问题。提供了从源码修改到通用适配中间件的多层级解决方案,并包含实机测试与性能调优指南,帮助开发者高效完成雷达数据适配。

weixin_42551227的博客 421

操作系统之中断

操作系统中断的实现过程

weixin_45370502的博客 1648

Seurat3.0小提琴图腰围的参数

小提琴图没有有些群没有出现小提琴只有点点,是由于0值比例太多, 一个关键的参数scale = "width"导致了这种局面,应加上上述参数 ggplot(p$data,aes(ident,CD4)) + geom_violin(scale = "width", adjust =1, trim = TRUE) + geom_jitter()+ theme_bw() adjust参数可以调整腰的粗细,eg: ggplot(p$data,aes(ident,CD4)) + geom_violin(scale

Demomwu的博客 1661

Dirsearch的下载、安装和使用(全)

Dirsearch工具的下载、安装和使用,超详细超全面

weixin_68416970的博客 1万+

操作系统:什么是中断?

中断是指CPU在执行当前程序时系统出现了某种状况,使得CPU必须停止当前程序,而去执行另一段程序来处理的出现的紧急事务,处理结束后CPU再返回到原先暂停的程序继续执行,这个过程就称为中断。

_Cx330的博客 1万+

别再被无限debugger卡住了!Chrome DevTools实战绕过技巧(含Hook与文件替换)

本文详细介绍了如何通过Chrome DevTools绕过无限debugger封锁的实战技巧,包括Hook技术与文件替换方法。针对常见的定时器轰炸、循环陷阱和动态注入等反调试手段,提供了高效的解决方案,帮助开发者快速突破调试障碍,提升爬虫和逆向工程效率。

weixin_30326515的博客 242

操作系统中断

中断 中断时提高处理器效率的一种手段,如任务A需要用到打印机,打印的时间相对于cpu来说会很长,如果在打印期间死等打印机太浪费资源,所以出现了中断,cpu会先放弃该任务的执行,然后转去执行其他任务,当打印机打印好后就会发出中断信号给cpu,cpu就暂停当前任务的执行,继续运行任务A。 中断的分类: 程序中断 由指令执行的结果产生,如算数溢出、除数为0、试图执行非法指令 时钟中断 由处理器内部的计时器产生,运行操作系统以一定的规律执行周期性的任务 I/O中断 由I/O控制器产生

清风 4913

计算电磁学(三)有限差分方法

有限差分方法(FDM)是一种数值处理方法,通过将偏微分方程变换为一组代数方程,通过求解代数方程组来得到原边值问题的近似值。由于有限差分法非常简单,所以也特别的稳定高效。其中时域有限差分方法(FDTD)是电磁分析中的常用方法。在计算电磁学中,常用有限差分方法(finite difference equations)来替代微分方程。一个有限差分法通常包括三个步骤将求解域划分网格用有限差分方程逼近给定的微分方程求解在给定边界条件和初始状态下的方程常用的网格模型方阵斜方阵三角阵圆形阵。

CCC_B的博客 1640

nuScenes数据集详细介绍

nuScenes网上介绍资料较多,但是大部分仅仅是对官网的翻译,缺乏各个文件的内在联系介绍。例如,nuScenes激光雷达的数据格式,点云包含哪几种属性。再比如,sample文件夹和sweeps文件夹下的文件关系,以及是如何在相关json文件中体现的。本文将详细介绍nuScenes数据集的各个部分。

叶子的博客 1万+

【操作系统】操作系统运行环境——中断与异常

【操作系统】操作系统运行环境——中断与异常 详细介绍中断与异常的相关内容……

蒙奇D索大的博客 2060

【知识分享】车载以太网PCB布局设计指南

本文将深入探讨在设计车载以太网设备的印刷电路板(PCB)时需要着重考虑的若干关键主题。这些主题广泛涵盖了数据布线设计,以确保其符合信号完整性(SI)和电磁兼容性(EMC)标准;外部元器件的合理摆放;以及采取有效的抗电磁干扰(EMI)布局策略等方面。通过全面且细致地处理这些关键环节,能够显著提升车载以太网设备的性能与可靠性。

一只豌豆象的博客 1352

操作系统中的中断是什么?

1 中断机制的产生 早期计算机各个程序只能串行执行、系统资源利用低。为了解决上述问题,人们就发明了操作系统,引入了中断机制,实现了多道程序的并发执行,提高了系统资源的利用率。中断是多程序并发执行的前提条件。 (1) 以两个进程并发运行为例,进程1在用户态运行了一段时间后,CPU会接收到计时部件(操作系统内核的时钟管理部件)发出的中断信号,表示进程1已经用完了一个时间片,CPU会切换到核心态,把CPU的使用权限交还给操作系统,操作系统内核就会对刚才的中断进行处理,操作系统知道进程1的时间片用完,就需要切换进程

weixin_43869318的博客 4348

深度学习实战87-高中数学自适应测试系统研究与应用研发,前后台页面设计

大家好,我是微学AI ,今天给大家介绍一下深度学习实战87-高中数学自适应测试系统研究与应用研发,前后台页面设计。高中数学自适应测试系统旨在通过精准评估学生能力,用最少的题目发现其薄弱环节,并提供定制化的学习计划,帮助学生快速提升成绩。同时,系统结合了AI大模型实现自动判卷、生成报告,减轻教师负担,并支持个性化作业布置,使教学更加高效。学生可以清晰了解自身学习状态,教师也能获得精准的学生画像,实现差异化教学。

微学AI的博客 444

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

操作系统的运行-中断

硬件中断,时钟中断,软中断,内核态和用户态

m0_68142120的博客 1503

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

操作系统基础之中断

中断是CPU处理硬件事件和软件请求的方式,分为硬件中断和软件中断。硬件中断由设备触发,具有实时性强、处理速度快的特点,常用于时钟和外部事件处理。软件中断则是由程序主动发起,用于系统调用和异常处理,灵活性高但响应速度较慢。中断机制提高了CPU效率,实现了实时处理和故障处理,增强了计算机系统的可靠性。

xie0421的博客 1322

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

操作系统之缺页中断

操作系统之缺页中断 详解缺页中断-----缺页中断处理(内核、用户)_柯南的博客-优快云博客_缺页中断 缺页是什么 进程毕竟是虚拟地址,真实映射的地址又可能就是在外存中 那又不能直接用外存,当真实指到那个地址的时候,就产生缺页中断 我也不懂 以上是我胡说的 我胡说对了 详解缺页中断-----缺页中断处理(内核、用户)_柯南的博客-优快云博客_缺页中断 前面说过页表中可能存放的不止是物理地址,还有一些控制位,比如列举的读写bit位 现在再列举一个,缺页bit位,如果物理地址是内存的物理地址的话,那么该bi

phosphenesvision的博客 8418

操作系统-中断

写在前面 什么是中断 什么是陷入 参考 操作系统对中断的处理过程 浅谈操作系统中断和异常 Linux之时钟中断详解 操作系统18———IO系统之中断机构和设备驱动程序 中断 中断是指CPU对I/O设备发来的中断信号的一种响应。CPU暂停正在执行的程序,保留CPU环境后,自动地去执行该I/O设备的中断处理程序。执行完后,再回到断点,继续执行原来的程序。I/O设备可以是字...

zhc_24的博客 2737

操作系统 | 中断和异常处理

(Interrupt)和(Exception)是指明系统、处理器或当前执行程序(或任务)的某处出现一个事件,该事件需要处理器进行处理。INT nPentium 4、Intel Xeon、P6系列和Pentium处理器的机器检查架构也允许在检测到内部硬件错误和总线错误时生成机器检查异常。异常又分为三类:陷阱(Trap)、故障(Fault)和中止(Abort)。

m0_62249876的博客 5640

操作系统随记 —— 中断与异常

中断(Interrupt)也称为外中断,是指来自 CPU 执行指令以外的事件的发生,比如设备发出的 I/O 结束中断,表示设备输入/输出处理已经完成,希望处理机能够向别的设备发出下一个输入/输出请求,同时让完成输入/输出后的程序继续执行。异常(Exception)也称为内中断、例外或者陷入(trap),指源自 CPU 执行指令内部的事件,如程序的非法操作码、地址越界、算数溢出等等。

繁依Fanyi的博客 4297
上一篇: TCP 粘包拆包
下一篇: 进程同步和线程的同步
java烤冷面
博客等级 码龄4年 177粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值