linux有调度tasklet的队列。当cpu从中断或系统调用返回时,它会检查调度的tasklet,并执行它们。如果要处理的 tasklet 太多怎么办?它们是如何调度的?
问问题
1352 次
1 回答
2
光辉,
这是一个非常好的问题。
tl;dl 对这个问题的回答是:
first-come-first-serve within the softirq-tasklet thread.
(这是意料之中的,因为 Tasklet 构建在 softirq 之上,但具有更简单的界面和宽松的锁定规则。)
文章“我稍后再做:Softirqs、Tasklets、Bottom Halves、任务队列、工作队列和定时器”讨论了如何在中断处理程序中做太多的工作,以免丢失新的中断和其他设备缺乏继续进行的机会(这是需要注意的主要问题)。
我强烈建议阅读文章“ Tasklets ”,它深入介绍了它的调度算法和关于 tasklet 的内部结构。
在更一般的层面上,“ The Linux Process Scheduler ”一文很好地描述了在 linux 中实现的调度策略。
请让我知道,如果你有任何问题!
于 2014-09-27T22:55:23.390 回答