3
如何讓內核模塊中的線程進行通信?我正在編寫一個內核模塊,我的架構將使用三個需要通信的線程。到目前爲止,我的研究讓我相信唯一的方法是使用共享內存(聲明全局變量)和鎖定機制來同步線程之間的讀/寫。這裏有相當稀缺的材料。如何使內核線程通信?
有沒有其他方法可以考慮?內核代碼中最常見的標準是什麼?
如何讓內核模塊中的線程進行通信?我正在編寫一個內核模塊,我的架構將使用三個需要通信的線程。到目前爲止,我的研究讓我相信唯一的方法是使用共享內存(聲明全局變量)和鎖定機制來同步線程之間的讀/寫。這裏有相當稀缺的材料。如何使內核線程通信?
有沒有其他方法可以考慮?內核代碼中最常見的標準是什麼?
你不說你正在編程的操作系統。我將假設Linux是最常見的unix系統。
有幾本關於Linux內核編程的好書。 Linux Device Drivers可以在網上以及在紙上。 Chapter 5涉及併發;你可以直接跳到第5章,但最好先瀏覽第1章和第3章。後續章節也有相關部分(特別是等待隊列在chapter 6中討論)。
Linux內核併發模型基於共享變量構建。有大量的同步方法:原子整型變量,互斥鎖(用於非阻塞臨界區段的自旋鎖,用於阻塞臨界區段的信號量),讀寫器鎖,條件變量,等待隊列......
是的,Linux,謝謝您。我將檢查等待隊列和Linux設備驅動程序書,謝謝。 – jpmelos