当父进程分叉子进程(在linux下)时,我想将父进程中的一些内存页面复制到子进程的地址空间,这意味着,无需等待副本-on-写(COW)。有没有机制支持这个?感谢: - )
答案 0 :(得分:1)
我不知道有任何接口,但是你总是手动执行,使用memcpy
或只是触摸有问题的页面(例如,读取第一个单词,然后将其写回) 。请务必将页面标记为volatile
。
答案 1 :(得分:-1)
查看clone
系统调用。最相关的选项是CLONE_VM
。在fork纯粹是优化之后,实现页面的写时复制行为很重要。我无法预见这可能是一个问题的任何情况,除非您希望由于页面重复预先导致所有潜在的“懒惰”性能损失。即使对于这些,你也可能过于热衷于希望触及每个可写页面,因为你将增加从原始页面分叉的每个进程的物理内存使用。