2
linux有計劃tasklets的隊列。當cpu從中斷或系統調用返回時,它會檢查計劃的tasklet並執行它們。如果有太多的tasklet需要處理會怎麼樣?如何在linux上調度tasklet?
linux有計劃tasklets的隊列。當cpu從中斷或系統調用返回時,它會檢查計劃的tasklet並執行它們。如果有太多的tasklet需要處理會怎麼樣?如何在linux上調度tasklet?
Tejas,
這真是一個很好的問題。
的TL,DL這個問題的答案是:
first-come-first-serve within the softirq-tasklet thread.
(如微進程是建立在軟中斷之上,但是有一個簡單的界面,輕鬆鎖定規則,這是預期。)
的文章「I’ll Do It Later: Softirqs, Tasklets, Bottom Halves, Task Queues, Work Queues and Timers」談到了如何在中斷處理程序中不要做太多的工作,以免丟失新的中斷並且其他設備不能繼續進行(這是需要注意的主要問題)。
我強烈建議閱讀文章「Tasklets」,該文章深入介紹了有關tasklet的調度算法和內部結構。
在更普遍的層面上,「The Linux Process Scheduler」文章在描述在linux中實現的調度策略方面做得很好。
如果您有任何問題,請讓我知道!
謝謝。與您的答案文章確實有助於理解tasklet/softirqs – Tejas 2014-09-30 14:35:20
嘿特哈斯,很高興聽到! tasklets/softirqs真的是KEWL。哈哈,請讓我知道你是否有其他問題,祝你好運,並希望你能有一個偉大的一週! :0) – 2014-09-30 16:42:12