【发布时间】:2016-04-04 10:39:59
【问题描述】:
我读过关于写时复制的内容,但我不明白。这是否意味着在子进程写入内容之前不会复制内存页面?
【问题讨论】:
-
直到子进程或父进程向共享页面写入内容。或者直到孩子或父母做
exec()... -
只有在父母或孩子修改了其中的内容后,才会复制页面。
标签: linux unix operating-system
我读过关于写时复制的内容,但我不明白。这是否意味着在子进程写入内容之前不会复制内存页面?
【问题讨论】:
exec()...
标签: linux unix operating-system
只要没有对子内存页执行写操作,它们对于用户进程就等同于父内存页。因此,只要页面不被写入,它就可以用于父子节点。
但是,如果执行写入操作,则父版本和子版本不同。此时,父页面被复制并分配给子页面以代替父页面。此副本称为“写时复制”,因为该副本是在页面被写入时执行的。
请注意,“写入时复制”只是对forking 操作的优化。一个简单的实现只是立即为子级复制父级的页面。通过注意到尚未写入的页面不需要复制,该复制被推迟到孩子真正写了一些东西(术语“懒惰”通常用于延迟),这可能根本不会发生。
【讨论】: