中断是什么意思

描述

中断是什么?

中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的中断服务程序(Interrupt Service Routine,ISR)。这个事件可以是由硬件设备触发(如硬盘读写错误、打印机没有纸等),也可以是由软件触发(如用户按下Ctrl+C)。

当发生中断时,CPU会暂停当前正在执行的程序,并跳转到相应的中断处理程序(Interrupt Service Routine,ISR)去处理这个事件。中断处理程序通常会保存当前任务的上下文信息(如CPU寄存器的状态、内存中的数据等),然后执行相应的中断处理操作(如读取数据、发送响应等)。在中断处理完毕后,CPU会恢复之前保存的上下文信息,并回到被中断的任务继续执行。

中断是一种异步的事件处理机制,可以提高系统的并发处理能力。在现代计算机系统中,中断被广泛应用于处理各种硬件设备事件和软件异常情况。

我们知道中断的发生与处理是一个需要软硬件交互的操作。

计算机

•关中断:进入不可响应中断请求的中断,由硬件自动完成

•保存断点:把当前的程序计数器PC中的内容保存起来,用于中断处理结束后能继续执行主程序

•识别中断源:有多个中断源同时请求时,只能响应最高优先级的,因此需进一步判断中断源

•保存现场和屏蔽字:进入中断服务程序后,要先保存现场

•设置新的屏蔽字:用于改变中断优先级和控制中断的产生

•开中断:执行中断程序时,打开中断可实现更高优先级的中断响应,实现中断嵌套

•执行中断服务程序:执行中断服务程序中的内容

•再次关中断:使得恢复现场和屏蔽字时不会被中断打断

•恢复现场和屏蔽字:使现场和屏蔽字恢复到中断之前的状态

•再次开中断:中断执行完,现场恢复完后,可以打开中断

•中断返回:返回原程序继续执行

处理过程,会经历两次的开/关中断,也可用下图描述

计算机

在之前我们在做嵌入式的时候,大多是关注了软件层面,如何注册中断,如何设计中断的参数,如何编写中断服务函数,如何将中断服务绑定到中断号。做linux中断的话,这些都是定义好的,你可以去调用接口,当然也支持自定义添加新的中断。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分