2

linux有调度tasklet的队列。当cpu从中断或系统调用返回时,它会检查调度的tasklet,并执行它们。如果要处理的 tasklet 太多怎么办?它们是如何调度的?

4

1 回答 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 回答