Reg共享内存设计

Posted

技术标签:

【中文标题】Reg共享内存设计【英文标题】:Reg Shared Memory Design 【发布时间】:2012-02-24 06:45:39 【问题描述】:

对于我的项目需求,

我在为以下场景设计进程间通信方面需要帮助。

有 4 个源进程想要使用 IPC 与 1 个目标进程通信。

为此,我选择了共享内存作为一种机制。我最终遇到了设计问题,例如

1) 我应该为每个进程使用 4 个共享内存吗?还是我应该使用单内存?

2) 如果我使用 4 个内存,那么我必须分别使用 4 个同步对象来同步源进程和目标进程。将来,还有一个流程来了,然后我编辑了我不想这样做的目标流程源代码。

3) 我的目的地应该是多线程的吗?因为我正在使用更多的源进程..

请指导我...

【问题讨论】:

【参考方案1】:

1) 我应该为每个进程使用 4 个共享内存吗?还是我应该使用单内存?

不需要。创建一个共享内存段,附加您要访问的所有进程。

2) 如果我使用 4 个内存,那么我必须进行 4 个同步.....

或许你可以使用信号量来同步对共享内存段的访问。

3) 我的目的地应该是多线程的吗?因为我正在使用更多的源进程..

视情况而定。如果您使用多线程环境,您可能不需要共享内存段,而是可以使用共享数据[即:堆],并再次使用任何同步方法来避免竞争条件。

希望对你有帮助!!!。

【讨论】:

以上是关于Reg共享内存设计的主要内容,如果未能解决你的问题,请参考以下文章

2017-2018-1 学号20155209 《信息安全系统设计基础》第十周学习总结

基于共享内存的无锁消息队列设计

UnixIPC之共享内存

Linux共享内存使用常见陷阱与分析

物理内存虚拟内存bufferscached共享内存swap

探讨一下 Linux 共享内存的 N 种方式