操作系统-中断
1.为什么有中断以及什么事中断
早起的计算机各个程序只能串行运行,系统的资源利用率比较低。为了解决上述问题,就引入了中断的概念,实现了多个程序并行执行,提高了资源的利用率。
线程的挂起和唤醒、进程之间的调度、IO完成、代码异常都是和中断有关。
操作系统的中是指程序执行过程中,遇到紧急的事件时暂时中止CPU上现行的程序运行,转去执行相应的事件处理程序,待处理完成后再返回原来程序或者调度其他程序执行的过程。
2.中断的本质
发生中断意味着需要操作系统介入,开展管理工作(进程切换、分配IO设备),需要特权指令,因此需要从用户态转换为核心态,中断就是使CPU从用户态转换为核心态,使操作体统获得计算机的控制权。因此有了中断,才能实现多个程序并发执行。用户态切换到核心态只能通过中断机制来实现并且是唯一途径。
3.中断的分类
内中断:包括系统调用和异常情况。信号来源于CPU内部,于当前执行的指令有关(如整除0)。
外中断:信号来源于CPU外部,于当前执行的指令无关,比如用户结束一个进程、IO设备完成操作后发生的中断信号。
4.中断的处理过程
执行完威哥指令后,CPU都要检查当前是否有外部中断信号。
如果检测到外部中断信号,则需要保护被中断执行的进程CPU环境(程序状态字、程序计算器、各种通用寄存器)。
根据中断信号类型转入相应的中断处理程序。
恢复进程CPU环境并退出中断,返回原来进程继续往下执行。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具