在C ++中实现共享内存管理器

时间:2011-08-09 06:13:09

标签: android c++ linux shared-memory

我已经实现了一个简单的共享记忆代码,它分散在两个进程中(1代表编写器,其他代理作为阅读器)。但我想管理这个SHM代码(就像一个内存管理器),它独立于任何读/写进程。通过简单地给出一些钩子/指针,任何人都可以建议我这样做。或相关信息的任何相关代码或链接?还有一个,我可以使用Zygote流程来实现吗?请提出建议吗?

2 个答案:

答案 0 :(得分:5)

应用程序无法使用现代操作系统上的普通指针“共享”其内存。这需要操作系统的帮助,并且高度依赖于所讨论的操作系统。例如,在Linux上,最好的选择是使用SysV共享内存。

确保您了解多进程共享内存的开销,并问自己是否只使用线程是不够的。在大多数情况下,线程就足够了,或者如果不是,你应该重新思考你的模型使用消息传递/共享任何模型。

答案 1 :(得分:2)

了解Boost.Iterprocess可以为您做些什么。特别要看Managed Memory Segments部分。