一、中断的概念
2025年09月21日
一、中断的概念
在CPU与外设交换信息的时候,如果采用查询等待的方式,则CPU会浪费很多时间去等待外设的响应。在等待的过程中CPU不能做其他的工作,若外设的响应速度很慢,CPU将一直等待。为了解决快速的CPU和慢速的外设之间交换信息的矛盾,引入了中断。
CPU正在执行主程序时,外部若发生了某一事件(如一个电平的变化,一个脉冲沿的发生或定时器计数溢出等),请求CPU快速处理,计算机暂时中止当前的工作程序,转入处理所发生事件,中断服务处理完后,再回到原来被中止的地方,继续执行原来程序,该过程称为中断,如图5-1所示。其中,被中断事件中止的地方称为断点;计算机对中断请求进行响应的过程称为中断响应;执行中断服务程序的过程称为中断服务;实现这种功能的部件称为中断系统;产生中断的请求源称为中断源。
图5-1 中断过程示意图
为帮助读者理解中断操作,这里作个比喻。假设某公司的总经理正在写报告,如果电话铃突然响了,她写完正在写的字或句子,然后去接电话,听完电话以后,她又回到被打断的地方继续写。在这个比喻中,正在写报告的总经理就是CPU,电话即是中断源,电话铃响就是有中断请求,正在写的字或句子就是CPU正在处理的指令或当前的某一条程序,通电话的过程为中断处理程序。
如果电话没有铃声(不设中断请求),总经理就会被置于可笑的境地:总经理写了报告中的几个字以后,拿起电话听听是否有人呼叫(查询外设请求),如果没有,放下电话继续写报告;写完固定内容或固定时间接着再一次检查这个电话。很明显,这种方法浪费了一个重要的资源——总经理的时间。
这个比喻说明了中断功能的重要性。没有中断技术,CPU可能会浪费大量时间在原地踏步(查询)的操作上,或者很难保证及时对外部事件作出响应。