軟中斷
1 軟中斷作為下半部機制的代表,
2 是隨著smp(share memory processor)的出現應運而生的
3 軟中斷是tasklet實現的基礎(tasklet實際上只是在軟中斷的基礎上新增了一定的機制)。
4 軟中斷一般是「可延遲函式」的總稱
5 軟中斷可以在多個cpu上並行執行
6 軟中斷 可以併發執行在多個cpu上(即使同一型別的也可以)。所以軟中斷必須設計為可重入的函式(允許多個cpu同時操作),因此也需要使用自旋鎖來保其資料結構。
struct softirq_action;
描述每一種型別的軟中斷,其中void(*action)是軟中斷觸發時的執行函式。
tasklet
1 由於軟中斷必須使用可重入函式,這就導致設計上的複雜度變高,作為裝置驅動程式的開發者來說,增加了負擔。
2 一種特定型別的tasklet只能執行在乙個cpu上,不能並行,只能序列執行
3 軟中斷是靜態分配的,在核心編譯好之後,就不能改變。但tasklet就靈活許多,可以在執行時改變(比如新增模組時)。
軟中斷的資料結構不能 被任務排程器。 中斷上下文
工作佇列
1 可以執行 阻塞和睡眠 軟中斷跟tasklet 是不可以的。
2 併發性差,因為工作執行緒跟cpu是一 一繫結的。
參考於linux核心中的軟中斷、tasklet和工作佇列詳解
軟中斷 tasklet 工作佇列
深入理解linux核心 筆記4 軟中斷 tasklet 工作佇列 2009年06月02日 星期二 10 48 軟中斷 tasklet和工作佇列並不是linux核心中一直存在的機制,而是由更早版本的核心中的 下半部 bottom half 演變而來。下半部的機制實際上包括五種,但2.6版本的核心中,下...
軟中斷 tasklet 工作佇列
軟中斷 tasklet和工作佇列並不是linux核心中一直存在的機制,而是由更早版本的核心中的 下半部 bottom half 演變而來。下半部的機制實際上包括五種,但2.6版本的核心中,下半部和任務佇列的函式都消失了,只剩下了前三者。本文重點在於介紹這三者之間的關係。函式細節將不會在本文中出現,可...
軟中斷 tasklet和工作佇列
中斷機制的下半部實現機制 軟中斷 tasklet 工作佇列。軟中斷軟中斷適用於像網路這樣效能要求非常高的情況使用,可以再所有處理器上執行,兩個型別相同的軟中斷有可能被同時執行。軟中斷在編譯期間必須進行靜態註冊。軟中斷使用的比較少 軟中斷對時間要求比較嚴格,對加鎖要求高。如果需要擴充套件到多處理器執行...