首页 > 解决方案 > vfork() 之后的 exec() 对父级内存的影响

问题描述

我目前正在阅读 Silberschatz 的关于虚拟内存的操作系统章节。

这里指出:

"使用vfork(),父进程挂起,子进程使用父进程的地址空间。因为vfork()不使用copy-on-write,如果子进程改变了父地址空间的任何页,一旦恢复,更改的页面将对父级可见。

[...] Vfork() 旨在在子进程在创建后立即调用 exec() 时使用。"

如果我没记错的话,exec() 将替换当前的进程映像。

因此,由于地址空间是共享的,因此在随后的 exec() 调用中调用 vfork() 并替换父进程映像?

标签: execshared-memoryvirtual-memorycopy-on-writevfork

解决方案


推荐阅读