【问题标题】:who will pass the control to ISR while cpu is executing BH当 cpu 执行 BH 时谁将控制权传递给 ISR
【发布时间】:2016-07-08 10:31:55
【问题描述】:

假设单核处理器发生中断

作为一般做法,调度程序被禁用,cpu 正在为 ISR 服务

ISR 禁用当前 IRQ 并为延迟工作安排下半部分(此处为 tasklet)。

在服务 ISR 之后(启用 IRQ),现在处理器得到了更改以服务于预定的下半部分。

同时中断再次发生,然后当前运行的 BH 被抢占,CPU 执行新的 ISR。

在这种情况下,谁负责将控制从 BH 切换到 ISR

我的问题是假设调度程序被禁用并且系统是单核处理器。

【问题讨论】:

  • In this case who is responsible for switching the control from BH to ISR - 中断强制处理器像往常一样执行 ISR。
  • @user3344003 'BH' 是'下半部分'。它是服务中断数据的代码,以较低的优先级运行。它通常被称为延迟过程调用。
  • 感谢您的回复,能否详细解释一下。我问它是否我的调度程序被禁用,那么谁负责将控制权传递给 ISR。 @Tsyvarev
  • @konduri praveen,进程调度程序不会将控制权传递给 ISR。它始终是一种硬件机制。调度程序本身从定时器中断中踢出。
  • 谢谢,在我使用过的系统上,它们是延迟过程调用或内核模式异步过程调用。不是 BH。

标签: linux-kernel operating-system scheduler interrupt-handling


【解决方案1】:

将控制权传递给中断处理程序不是由进程调度程序完成的。这是一种硬件机制。在 x86 中,中断处理例程由内核通常在开始时设置的 IDT 指定。

如果您真的对该机制感兴趣,可以进一步阅读thisthis 或您的处理器架构的开发人员手册。

【讨论】:

    猜你喜欢
    • 2016-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    相关资源
    最近更新 更多