在我们所用的电脑中,所有的硬件都需要执行中断请求的动作,简单说它的作用就是用来停止其相关硬件的工作状态。我们可以举一个日常生活中的例子来说明,假如你正在给朋友写信,电话铃响了,这时你放下手中的笔去接电话,通话完毕再继续写信。这个例子就表现了中断及其处理的过程:电话铃声使你暂时中止当前的工作,而去处理更为急需处理的事情——接电话,当把急需处理的事情处理完毕之后,再回过头来继续原来的事情。在这个例子中,电话铃声就可以称为“中断请求”,而你暂停写信去接电话就叫作“中断响应”,那么接电话的过程就是“中断处理”。由此我们可以看出,在计算机执行程序的过程中,由于出现某个特殊情况(或称为“事件”),使得系统暂时中止现行程序,而转去执行处理这一特殊事件的程序,处理完毕之后再回到原来程序的中断点继续向下执行,而这个过程就被称为中断。
中断的作用
我们可以再举一个例子来说明中断的作用。假设有一个朋友来拜访你,但是由于不知何时到达,你只能在门口等待,于是什么事情也干不了;但如果在门口装一个门铃,你就不必在门口等待而可以在家里去做其他的工作,朋友来了按门铃通知你,这时你才中断手中的工作去开门,这就避免了不必要的等待。而计算机也一样,例如打印文稿的 *** 作。因为cpu传送数据的速度高,而打印机速度较慢,如果不采用中断技术,cpu将经常处于等待状态,这会使得电脑的工作效率极低。而采用了中断方式后,cpu就可以在打印的同时进行其他的工作,而只在打印机缓冲区内的当前内容打印完毕,而发出中断请求之后才予以响应,这时才暂时中断当前的工作转去执行停止打印的 *** 作,之后再返回执行原来的程序。这样就大大地提高了计算机系统的效率。
中断相当于随机地在正在运行的程序中插入了另一段程序,即中断处理程序,中断处理完成后再返回源程序继续执行。这就要求在执行中断有3部曲:1、 收到中断请求时首先要保护现场,即将当前的主要寄存器的值压入堆栈,包括程序地址计数器、数据地址计数器、累加器等;2、根据中断号找到中断向量,得到中断处理程序的地址,执行中断处理程序;3、恢复现场,即将中断时压入堆栈的寄存器值出栈,返回到原程序继续执行。中断必须在当前指令执行完毕后才会响应。
中断可以嵌套,中断分优先级,只有优先级高的中断才可以中断优先级低的中断。
在执行实时性要求高的任务时,可以屏蔽某些中断。
中断请求可以由某一引脚的信号产生,也可以由软件指令产生(软中断)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)