『面试问答』:中断和异常的区别是什么?

面试官 : 请说一下,中断和异常的区别是什么?

中断是指 CPU 对系统发生某事件时的一种响应,即CPU 暂停正在执行的程序,在保留现场后,自动地转去执行该事件的中断处理程序,执行完后,再返回到原程序的断点处继续执行。

中断分为外中断和内中断。

外中断,就是我们指的中断,是指由于外部设备事件所引起的中断,如常见的磁盘中断、打印机中断等;中断由外因引起,与现行指令无关,是正在运行的程序所不期望的,中断的引入是为了支持CPU和设备之间的并行操作。

内中断,就是异常,是指由于 CPU 内部事件所引起的中断,比如程序的非法指令或者地址越界。异常是由CPU本身原因引起,表示CPU执行指令时本身出现的问题。

中断会使 CPU 由用户态变为内核态,使操作系统重新夺回对 CPU 的控制权,中断是让操作系统内核夺回 CPU 使用权的唯一途径。如果没有中断机制,那么一旦应用程序上 CPU 运行,CPU 就会一直运行这个应用程序。

不同的中断信号,需要不同的中断处理程序来处理。当 CPU 检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置。

#晒一晒我的offer##软件开发薪资爆料##我的实习求职记录##23届找工作求助阵地#
软件开发面试问答 文章被收录于专栏

分享软件开发岗位面试题及答案

全部评论

相关推荐

10-03 17:08
已编辑
西安电子科技大学 Java
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

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