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