如何让内核模块中的线程进行通信?我正在编写一个内核模块,我的架构将使用三个需要通信的线程。到目前为止,我的研究使我相信唯一的方法是使用共享内存(声明全局变量)和锁定机制来同步线程之间的读/写。这方面的 Material 相当稀缺。
还有其他我可以考虑的方法吗?内核代码中最常见的标准是什么?
最佳答案
您没有说明您在什么操作系统上编程。我假设 Linux,这是最常见的 unix 系统。
有几本关于 Linux 内核编程的好书。 Linux Device Drivers可在网上和纸上获得。 Chapter 5处理并发;您可以直接跳到第 5 章,但最好先浏览至少第 1 章和第 3 章。后续章节也有相关部分(特别是等待队列在 chapter 6 中讨论)。
Linux 内核并发模型建立在共享变量之上。同步方法种类繁多:原子整型变量、互斥锁(非阻塞临界区的自旋锁、阻塞临界区的信号量)、读写锁、条件变量、等待队列……
关于linux-kernel - 如何进行内核线程通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7034249/