这是一个纯粹的理论问题。就我而言,每个进程都有不同的寻址空间,并且一个进程内的每个线程共享相同的内存空间?
有办法,特别是……
是。 Google gvisor或rump,了解如何执行此操作的示例。简短的故事是你从一个母亲过程开始,它会分叉()来创造新的孩子。这些子代由ptrace()管理,它将它们与内核隔离开来。然后母亲过程操纵孩子们认为合适的地址空间;使它们相同是一种选择。
通常会涉及一些自举技巧,所以当一个孩子调用fork()时,母亲会分叉并执行一个已知的二进制文件(re:aspace layout),然后继续将原来的fork()ers aspace克隆到新的。
我想你应该读一读 这个 。
的 共享内存 强> - 是可以由多个程序同时访问的存储器,旨在提供它们之间的通信或避免冗余副本。共享内存是在程序之间传递数据的有效方法。