C 两台Linux机器之间的共享内存?

C 两台Linux机器之间的共享内存?,c,process,shared-memory,C,Process,Shared Memory,我正试图弄清楚如何在两台Linux机器之间使用共享内存。理想情况下,每台机器都有自己的共享内存段,并且运行两个进程(一个从机器的共享内存读取,一个写入机器的共享内存)。当一台机器的共享内存被写入或更新时,我需要通知另一台机器,让它自己的共享内存与第一台机器的共享内存同步 这可能吗?我该怎么做 万分感谢 我正试图弄清楚如何在两台Linux机器之间使用共享内存 这是个坏主意。同步访问共享内存是困难的;您将很难防止多个客户端相互干扰,即使是在一台机器上。在多台机器上,情况只会变得更糟 如果你真的想这样

我正试图弄清楚如何在两台Linux机器之间使用共享内存。理想情况下,每台机器都有自己的共享内存段,并且运行两个进程(一个从机器的共享内存读取,一个写入机器的共享内存)。当一台机器的共享内存被写入或更新时,我需要通知另一台机器,让它自己的共享内存与第一台机器的共享内存同步

这可能吗?我该怎么做

万分感谢

我正试图弄清楚如何在两台Linux机器之间使用共享内存

这是个坏主意。同步访问共享内存是困难的;您将很难防止多个客户端相互干扰,即使是在一台机器上。在多台机器上,情况只会变得更糟

如果你真的想这样做,你基本上有两个选择:

  • 简单的方法。创建一个文件来表示共享内存,并将其存储在网络文件共享中。使用
    mmap()
    将其映射到每台机器的内存中。确保使用
    msync()
    刷新对磁盘的更改并使缓存无效

  • 复杂的方式。使用Infiniband链接连接机器并执行远程内存访问。如何执行此操作的详细信息将取决于您使用的Infiniband供应商


  • 总而言之,完全使用另一种方法可能会更好。详细信息将取决于您的申请。

    您做了哪些研究?你已经试过什么了吗?这听起来是个疯狂的主意。使用文件在客户机/服务器配置中存储此数据有什么问题?感谢您的帮助!您是否可以向我提供任何资源,帮助我按照您建议的第一种方式来实现这一点?我不太了解网络文件共享之类的东西。提前谢谢!