当前位置: 技术问答>linux和unix
在线等,关于IPC,高分求高人指点
来源: 互联网 发布时间:2015-10-03
本文导语: 最近做一个项目,主进程开了两个子进程。一个从设备驱动读数据,一个开了个socket与另一台机器(假设为B)通信。现在需要把从设备驱动读取的数据发往机器B,这里有几个思路。 (1)在读设备驱动数据的子...
最近做一个项目,主进程开了两个子进程。一个从设备驱动读数据,一个开了个socket与另一台机器(假设为B)通信。现在需要把从设备驱动读取的数据发往机器B,这里有几个思路。
(1)在读设备驱动数据的子进程中直接将数据发往机器B;
(2)利用IPC机制将数据从读设备驱动数据子进程送到socket子进程,通过socket再将数据送到机器B;
现在我的问题是采取哪个方法好,以及在处理过程中应该注意什么。这里的特点是:从设备驱动中读取的数据两大;尽量要节约内存。
第一次做这种工作,希望有经验的大侠指点一二,不胜感激,在线等回!!
(1)在读设备驱动数据的子进程中直接将数据发往机器B;
(2)利用IPC机制将数据从读设备驱动数据子进程送到socket子进程,通过socket再将数据送到机器B;
现在我的问题是采取哪个方法好,以及在处理过程中应该注意什么。这里的特点是:从设备驱动中读取的数据两大;尽量要节约内存。
第一次做这种工作,希望有经验的大侠指点一二,不胜感激,在线等回!!
|
如果你开2个进程的话,最好用共享内存的方式,设备文件读到数据以后放入共享内存,另外一个进程读取共享内存,然后发出去。
|
传送描述符?所有系统都支持吗?我在 APUE 上有印象看到过,但是要找就再也找不到。。
既然流通是单向的,那么就不必用 shm 了,用 Unix domain socket / FIFO 传送好了。
既然流通是单向的,那么就不必用 shm 了,用 Unix domain socket / FIFO 传送好了。
|
这种问题肯定讨论起来就没完了,仁者见仁,智者见智。
我个人认为如果可以实现的话,就越简单越好,能直接发就直接发,能减少通讯就减少通讯,尽量减少bug.
我个人认为如果可以实现的话,就越简单越好,能直接发就直接发,能减少通讯就减少通讯,尽量减少bug.
|
利用信号量控制对共享内存的访问