相关疑难解决方法(0)

为什么在中断上下文中执行的内核代码/线程无法休眠?

我正在阅读Robert Love的以下文章

http://www.linuxjournal.com/article/6916

说的是

"...让我们讨论工作队列在进程上下文中运行的事实.这与其他下半部机制形成对比,后者都在中断上下文中运行.在中断上下文中运行的代码无法休眠或阻塞,因为中断上下文没有重新安排的后台进程.因此,由于中断处理程序与进程没有关联,调度程序没有任何东西可以进入休眠状态,更重要的是,调度程序无需唤醒..."

我不明白.AFAIK,内核中的调度程序是O(1),它是通过位图实现的.那么什么阻止了scehduler将中断上下文置于睡眠状态并采取下一个可调度进程并将其传递给控件?

linux-kernel

48
推荐指数
3
解决办法
3万
查看次数

标签 统计

linux-kernel ×1