RTOS中的中断延迟的正确定义是什么?

时间:2015-10-08 01:43:17

标签: interrupt latency rtos

我在RTOS中读到了两个不同的“中断延迟”定义。

  1. “在计算中,中断延迟是从产生中断到服务中断源的过程所经过的时间” (来源:https://en.wikipedia.org/wiki/Interrupt_latency

  2. “能够保证外部中断与中断处理程序启动之间的最大延迟。” (来源:What makes a kernel/OS real-time?

  3. 现在,我的问题是'中断延迟'的正确定义是什么?

    例如:

    外部中断发生时间戳: 00 hr:00 min:20秒
    执行跳入ISR时的时间戳: 00 hr:00 min:25秒
    维修后执行退出ISR时的时间戳: 00 hr:00 min:43秒

    现在中断延迟时间是多少?是5秒吗?还是23秒?

1 个答案:

答案 0 :(得分:1)

我认为第一个定义是正确的,但是你误解了中断在实践中是如何工作的以及它是什么意思和服务"。

控制流程是三级HW中断 - >中断服务程序 - >处理。 ISR通常非常短,只是清除中断源并将进程标记为准备好运行。

例如,您有一个调用read来访问磁盘上数据的进程。此过程将阻塞,直到磁盘执行IO。一旦IO发生,硬件就会引发一个中断,通知进入ISR的CPU,清除中断,然后设置被阻止的进程,以便进行调度。

为什么需要测量中断延迟?因为这是所需的实际处理工作。如果中断需要在指定时间内响应(即它是一个实时系统),那么我们需要知道从中断开始直到我们开始处理该响应的时间。这意味着我们需要知道中断的延迟,直到我们的实时流程进行调度。