什么是中断,处理器如何处理普通中断和多个中断?
中断是来自连接到计算机的设备或来自计算机内的程序的信号,它要求操作系统停止并弄清楚下一步要做什么。
每当中断发生时,都会导致CPU停止执行当前程序。然后是中断处理程序或中断服务程序的控制。
ISR处理中断的步骤如下-
Step1-当中断发生时,假设处理器正在执行第i条指令,程序计数器将指向下一条指令(i+1)。
第2步-当中断发生时,程序值存储在进程堆栈中,程序计数器加载中断服务程序的地址。
步骤3-一旦中断服务例程完成,进程堆栈上的地址被弹出并放回程序计数器中。
第4步-现在,它执行第(i+1)行的简历。
多个中断
多重中断是在处理器处理前一个中断时可能发生的中断事件。
例如-从通信线路接收数据和打印结果的程序有可能在处理打印机中断时发生通信中断。
处理中断的方法
处理器可以通过两种方式处理中断
禁用中断-处理器将在处理一个中断时忽略进一步的中断。中断保持挂起状态,并在第一个中断处理完毕后进行检查。在这个过程中,中断是按顺序处理的
定义优先级-在这种方法中,低优先级中断可以被更高优先级的中断中断。在这里,高优先级中断将被处理,然后处理器返回到它之前工作的前一个中断。
中断类型
有两种类型的中断-
硬件中断-外部设备产生的中断信号。
软件中断-内部设备产生的中断信号。
我们知道指令周期由取指、解码、执行和读/写功能组成。
在每个指令周期之后,处理器将检查要处理的中断。如果系统中不存在中断,它将进入由指令寄存器给出的下一个指令周期。
如果存在中断,那么它将触发中断处理程序,处理程序将停止正在处理的当前指令并将其配置保存在寄存器中,并从中断表给定的位置加载中断的程序计数器。
处理完中断后,处理器中断处理程序将从保存的寄存器中加载指令及其配置,进程将在剩下的地方开始处理。这也称为上下文切换。