multithreading - 在Linux中的内核线程之间进行通信

标签 multithreading linux-kernel linux-device-driver

我正在将app/PCI驱动程序从vxWorks移植到Linux,并且如果可能的话,我希望保持相同的体系结构。当前的驱动程序有2个任务(线程),它们使用消息队列相互通信。是否存在在内核线程之间进行通信的机制?消息队列用于传递缓冲区地址和大小信息,因此任务可以使用DMA移动大量数据。

最佳答案

我强烈建议不要在Linux上保留VxWorks架构。内核线程泛滥是令人讨厌的,您的代码将永远不会进入官方内核树。即使您不在乎,您是否100%确定要以非标准方式开发驱动程序?如果您只需摆脱这两个任务,事情就会简单得多。顺便说一句,为什么到底需要PCI驱动程序的任务?

关于multithreading - 在Linux中的内核线程之间进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1442270/

相关文章:

linux - 为端口 0x60 安装中断处理程序的最佳方法

java - 线程重新运行run()方法

java - 多 :Threading - Is this the right approach?

c - 如何使用内核头文件编译用户空间程序

linux - 进程控制 block ,Linux 中的进程描述符和 task_struct?

opencv - 使用 opencv 从眼睛玩具网络摄像头流式传输视频时出现 HIGHGUI 错误

linux - 如何获取在 Linux 内核启动期间初始化/探测的所有模块/驱动程序的详细信息?

.net - 当两个线程试图同时锁定同一个资源时会发生什么?

java - Android:在多线程Service中,LocalBroadcastManager安全吗?

linux-device-driver - 在 Linux 中编写 USB 设备驱动程序