当父进程fork子进程时(linux下),我想一开始就将父进程中的一些内存页复制到子进程的地址空间,也就是说,不需要等待copy-on-写(牛)。是否有任何机制支持这一点?谢谢:-)
问问题
1625 次
2 回答
1
我不知道有什么界面可以做到这一点,但你总是手动完成,要么使用 a ,要么memcpy
只是通过触摸相关页面(例如,阅读第一个单词,然后将其写回)。请务必将页面标记为volatile
。
于 2011-01-17T17:04:48.253 回答
-1
看一下clone
系统调用。最相关的选项是CLONE_VM
. 在 fork 纯粹是一种优化之后,实现页面的写时复制行为是很重要的。我无法预见这可能会成为问题的任何情况,除非您希望由于预先的页面重复而导致所有潜在的“惰性”性能损失。即使对于这些,您也可能过于热心地希望触摸每个可写页面,因为您将增加从原始进程派生的每个进程的物理内存使用。
于 2011-01-17T17:17:16.950 回答