2.2 操作系统 中断与异常

一、中断发生的过程和处理流程

硬件触发中断——中断请求处理——中断处理程序调用——中断处理——恢复执行

硬件触发中断:分 内部中断(如除零错误)和 外部中断。

中断请求处理:CPU 根据优先级判断是否响应中断,如果优先级高,CPU会暂停当前任务执行。

中断程序调用:根据中断号从中断向量表找到中断处理程序的入口。

中断处理:执行中断处理程序。

恢复执行:中断处理完毕后,CPU会恢复到被中断的程序执行状态。

二、中断为什么要尽快执行完毕

首先,中断一般是发生了一些关键事件,需要得到快速响应;其次,被中断的程序处于暂停状态,并且关闭了进程调度,会影响系统的响应性能和实时性;最后,中断处理程序如果执行时间过长,可能会导致设备状态超时或失效。

三、中断与异常有何区别?

中断是指外部硬件产生一个电信号从 CPU 的中断引脚进入,打断 CPU 的执行。

异常是指软件运行过程中发生了一些必须作出处理的事件,CPU 自动产生一个陷入来打断 CPU 的执行

四、硬中断与软中断是什么?有什么区别?

1、硬中断

硬件产生,比如:键盘、网卡、磁盘、时钟。每个设备都有自己的 IRQ,硬中断可以直接中断 CPU(通常只会中断一颗 CPU)。

时钟中断,内核会将当前进程挂起,让其他进程运行。其目的是为了让调度器可以调度多个任务。

2、软中断

仅由当前正在运行的进程产生的,由软件触发的中断机制,由软件主动发起。

区别:

软中断由软件产生,硬中断由硬件产生;

软中断的中断号由指令直接给出,硬中断的中断号由中断控制器提供;

硬中断可屏蔽,软中断不可屏蔽

硬中断处理程序,称为上半部,软中断处理硬中断未完成的工作,称为下半部。

五、中断为什么区

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

C++/嵌入式开发 秋招面经 文章被收录于专栏

一名985硕,在25年秋招中斩获多个C++/嵌入式开发Offer。本专栏将分享我的面经,涵盖C/C++、操作系统、计算机网络、ARM体系与架构、Linux应用/驱动开发、Qt、通信协议及开发工具链等核心内容。

全部评论
欢迎订阅专栏《C++/嵌入式开发 秋招面经》 :https://www.nowcoder.com/creation/manager/columnDetail/MKaoll
点赞 回复 分享
发布于 03-30 17:06 河北

相关推荐

🔥 字节跳动 - 抖音金融/支付核心系统 - 后端开发实习生【薪资福利】• 日薪 500• 房补:1500 元/月• 免费三餐 + 下午茶【团队介绍】依托抖音集团的科技能力和产品,我们为抖音电商、生活服务、直播等场景提供金融服务,为抖音用户提供更好的支付、消费金融、保险等金融服务。科技创新,普惠大众。【工作内容】(都是核心项目!)• 参与并负责支付核心系统的开发及维护• 参与并负责公司级别的春节、双十一等重要活动,解决高并发场景高可用问题• 参与并负责支付系统的稳定性建设,报警,监控,容灾,降级等• 参与设计并实现具备可扩展性和可维护性的系统方案• 充分理解支付业务,抽象领域模型,推进平台型系统建设【职位要求】(达到 70% 就可以投!)• 2027 届本科及以上学历在读,计算机、软件工程等相关专业优先• 有扎实的数据结构和算法功底,能熟练实现递归等常见算法/数据结构• 熟悉 C/C++/Java/Python/Golang 中的至少一门语言,对面向对象有基础了解• 了解数据库、操作系统、计算机网络等核心课程的知识【投递方式】官方投递:https://job.toutiao.com/s/MNUMbpqqlrs****************(备注"牛客")后端开发、高并发、分布式系统、支付系统、MySQL、Redis、Kafka🎯 2027 届同学抓紧!名额有限!
点赞 评论 收藏
分享
评论
5
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务