linux有预定tasklet的队列。当cpu从中断或系统调用返回时,它会检查已调度的tasklet并执行它们。如果要处理的tasklet太多怎么办?如何安排?。
答案 0 :(得分:2)
特加斯,
这是一个非常好的问题。
回答这个问题的答案是:
first-come-first-serve within the softirq-tasklet thread.
(这是预期的,因为Tasklets建立在softirq之上,但具有更简单的界面和宽松的锁定规则。)
文章“I’ll Do It Later: Softirqs, Tasklets, Bottom Halves, Task Queues, Work Queues and Timers”谈到你不应该在中断处理程序中做太多工作,以免新的中断丢失,而其他设备也没有机会继续(这是主要的问题)提防)。
我强烈建议阅读文章“Tasklets”,其中深入介绍了它的调度算法和关于tasklet的内部结构。
在更一般的层面上,“The Linux Process Scheduler”文章很好地描述了在linux中实现的调度策略。
如果您有任何疑问,请与我们联系!