中断

中断是指微处理器由于发生了程序之外的事情而做一些没有被告知要做的事情。中断最常发生的原因是处理器从硬件获得信号,但它们也可能来自与程序一起运行的软件。许多事情都可以导致中断,其中包括在键盘上按下按键,内置的定时器响起,数据传输发生,或任何其他需要处理器立即采取行动的事件。中断可以在处理器运行程序的任何时候发生,不管它在程序源代码的什么地方。

这个图表显示了当一个中断被调用时发生的情况Zoom
这个图表显示了当一个中断被调用时发生的情况

中断是如何工作的

硬件或软件对中断的调用(称为中断请求,或IRQ)由处理器中的 "中断处理程序 "或 "中断服务程序"(ISR)来处理。它把当时正在做的事情放到堆栈中,然后遵循某些指令,代表系统完成一项给定的任务,这不一定是它所做程序的一部分。一旦它完成了指令,ISR就会收回它放在堆栈中的东西,继续进行中断发生前的工作。

今天的许多处理器的中断控制器使用中断向量,根据它的来源和其他方式对中断进行分类。该向量通常包含中断发生时必须运行的代码。ISRs通常负责处理或 "服务 "中断,同时保持自身的工作状态。

中断的用途

  • 定期触发任务
  • 为外部设备提供服务,这可能发生在任何时候
  • 消除对同步轮询的需求
  • 触发操作系统(OS)采取行动

问题和答案

问:什么是中断?
答:中断是指微处理器因外部事件而采取的不属于正在执行的程序的一种行动。

问:什么原因导致中断在处理器上最常发生?
答:中断在处理器上最常发生的原因是接收硬件的信号。

问:中断可以由软件引起吗?
答:是的,中断也可以由与正在执行的程序平行运行的软件引起。

问:请列举几个可能引起中断的事件的例子。
答:可能引起中断的事件的例子有:按键盘上的键、定时器响起和数据传输发生。

问:中断是否取决于程序的执行位置?
答:不,中断可以在程序执行过程中的任何时候发生,无论程序在源代码中处于什么位置。

问:对于微处理器来说,中断是一个理想的事件吗?
答:中断通常是微处理器不希望发生的事件,因为它们扰乱了程序的执行,需要立即注意。

问:微处理器如何应对中断?
答:微处理器会暂时中止正在执行的程序,并执行一个中断服务程序(ISR)来处理中断,然后再返回到正在执行的程序。

AlegsaOnline.com - 2020 / 2023 - License CC3