什么是中断,处理器如何处理普通中断和多个中断?


中断是来自连接到计算机的设备或计算机内程序的信号,它要求操作系统停止并确定下一步该做什么。

每当发生中断时,它都会导致 CPU 停止执行当前程序。然后控制权转移到中断处理程序或中断服务例程。

ISR 处理中断的步骤如下:

  • 步骤 1 - 当发生中断时,假设处理器正在执行第 i 条指令,程序计数器将指向下一条指令(第 i+1 条)。

  • 步骤 2 - 当发生中断时,程序值存储在进程栈中,程序计数器加载中断服务例程的地址。

  • 步骤 3 - 中断服务例程完成后,进程栈中的地址被弹出并放回程序计数器。

  • 步骤 4 - 现在,它执行第 (i+1) 行的后续操作。

多重中断

多重中断是在处理器处理先前中断时可能发生的另一个中断事件。

例如 - 程序从通信线路接收数据并打印结果,在打印机中断正在处理时,通信中断可能会发生。

处理中断的方法

处理器可以处理中断的两种方式

  • 禁用中断 - 处理器在处理一个中断时会忽略后续的中断。中断保持挂起状态,并在第一个中断处理完成后进行检查。在此过程中,中断按顺序处理。

  • 定义优先级 - 在此方法中,低优先级中断可以被高优先级中断打断。在此,将先处理高优先级中断,然后处理器返回到之前正在处理的中断。

中断类型

中断有两种类型:

  • 硬件中断 - 由外部设备生成的中断信号。

  • 软件中断 - 由内部设备生成的中断信号。

我们知道指令周期包括取指令、解码、执行和读/写功能。

在每个指令周期之后,处理器都会检查是否有需要处理的中断。如果系统中没有中断,它将进入下一个指令周期,该周期由指令寄存器给出。

如果有中断存在,则它将触发中断处理程序,处理程序将停止正在处理的当前指令,并将它的配置保存到寄存器中,并从中断表中给定的位置加载中断的程序计数器。

处理中断后,处理器中断处理程序将从保存的寄存器中加载指令及其配置,进程将从中断处继续执行。这也被称为上下文切换。

更新时间: 2021年11月26日

12K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告