计算机操作系统内核的中断和中断处理
扫描二维码
随时随地手机看文章
在计算机中,中断是处理器与异步事件进行信息交换(通信)的唯一手段。
所谓异步事件,就是与当前正在做的事情在逻辑上无关的事件。例如,正当老师上课的过程中突然发生了地震,那么地震这个事件就是一个异步事件。因为地震这个事件与上课这个事件没有逻辑关系,也不是老师意料中的事件。当然,作为一个完善的教学管理系统,对这种突发事件的应对应该有紧急预案。
计算机技术中,由于某种异步事件的发生而迫使程序执行流程发生转移的现象叫做中断。
产生异步事件的原因叫做中断源。凡是中断源在发生异步事件时,都会向处理器发出一个通知信号,由于这个信号具有请处理器中止当前工作的含义,因此该信号叫做中断请求信号。处理器对这个中断请求信号可以响应,也可以不响应。如果响应了该信号,则处理器的执行流程将会在保护了当前程序断点之后发生转移,即会跳转到由中断向量指向的另外一个叫做中断服务程序ISR的程序上去执行。当中断服务程序执行中遇到特权指令RTE或IRET时9将会使执行流程再次发生转移。也就是说,在一个完整的中断过程里,处理器的执行流程 会发生两次转移:一次在处理器响应中断之后;一次是在遇到指令RTE或IRET时。前者是由计算机硬仵完成的;后者则是由指令来完成的。中断处理流程如图所示。
图 中断处理流程
至于第二次转移会转移到何处,则与转移前处理器PC寄存器的值有关。如果在中断服务程序的运行中没有对当初保护的断点进行修改,则流程会转移到被中断程序的断点处继续执行;否则,会跳转到寄存器PC指示的地址开始执行另外一个程序。
从图和上面的叙述中,读者应该建立这样一个概念:处理器的执行流程在整个中断过程中会发生两次跳转,一次是发生在响应中断并保护断点之后,另外一次是发生在中断服务程序运行遇到返回指令RTE或IRET时。尤其需要注意的是第二次跳转,根据在返回指令RTE或IRET之前当初保护的断点是否进行过修改。这次跳转的目的地是截然不同的:如果没有进行修改,则返回原来被中断了的程序;如果进行了修改,则会跳转到另外一个程序中。
以后会看到,操作系统正是利用了处理器中断过程的这两次跳转中的特点,实现了操作系统所需要的系统调用和进程切换这两个功能。
总之,中断可以迫使处理器中止现行工作,转向处理另外一个事仵。在该事件处理完后又可以转回原程序继续运行,或者是再转向处理其他事件。
欢迎转载,信息来源维库电子市场网()
ks99