【发布时间】:2018-02-27 01:12:13
【问题描述】:
我正在阅读 Robert Love 的以下文章
http://www.linuxjournal.com/article/6916
说的是
"...让我们讨论一下工作队列在进程上下文中运行的事实。这与其他所有在中断上下文中运行的下半部分机制形成对比。在中断上下文中运行的代码无法休眠或阻塞, 因为中断上下文没有可以重新调度的后备进程。因此,由于中断处理程序与进程没有关联,调度程序没有任何东西可以进入睡眠状态,更重要的是,调度程序没有任何东西可以唤醒。 ..”
我不明白。 AFAIK,内核中的调度程序是 O(1),这是通过位图实现的。那么是什么阻止调度器将中断上下文置于睡眠状态并采取下一个可调度进程并将控制权传递给它?
【问题讨论】:
-
请注意,linux-rt 补丁集实际上确实使中断处理程序线程化,因此它们可以休眠。这可以改善延迟,但性能会受到很大影响。
-
这个问题值得更多的审阅者,IMO,每个低级程序员在他的职业生涯中都考虑过这个问题。另请参阅此邮件交换hi.baidu.com/rwen2012/item/2040e7cace3c6a0dac092f3c
标签: linux-kernel