Linux API用于在多核进程中创建新进程

时间:2015-04-02 06:37:44

标签: linux memory process posix multicore

BackGround:利用Posix Api&#39>为Linux环境中的多核系统开发基于OSEK的RTOS包装器

我知道有Linux API的Fork,Exec和System,以便从现有流程创建子流程。我的目标是在系统中拥有多个与父进程不共享相同内存的进程。

最终目标是在流程上有不同的主题,每个流程都不受其他流程的干扰。现在还有API mmap将进程的内存绑定到特定区域。

问题:创建多个流程并确保流程不共享相同内存的最佳方法是什么?

PS:我是linux Os的新手,并且到现在为止已经阅读了很多理论,但我不确定在实现方面我会得到什么结果。专家的一些帮助可能会让事情变得简单。

1 个答案:

答案 0 :(得分:0)

好的,这取决于您是否需要更多或更少的可移植性。您可以使用可以在它们之间共享虚拟空间的posix线程。当你使用 fork(2)时,你会在每个进程中获得完全不同的虚拟空间(复制写入数据,因此它在效率方面是一个好的和可移植的解决方案,因为通常你会做一个 exec(2)之后)并非所有环境都有posix线程访问权限。

顺便说一句,linux fork(2)系统调用是根据 clone(2)系统调用实现的。最后一个是一个更通用的机制来分叉新的进程/线程,允许更多地控制共享内容和不共享内容。请参阅 fork(2) vfork(2) clone(2)系统调用/包装器的联机帮助页。

您的问题在您的要求方面并不十分具体,因此有很多可能性。