vfork()+ exec()-父进程和子进程的地址空间是否不同?

时间:2019-05-09 03:53:52

标签: unix operating-system fork exec vfork

手册页并没有说太多,但是它的实现规范更多,我更喜欢UNIX。

This此处的讨论消除了大多数混乱,尤其是已接受答案的评论部分。但是我仍然有一个疑问。

当带有exec *的子进程重新初始化了所有内容后,父进程如何恢复其地址空间

 ( exec* manpage says "This causes
   the program that is currently being run by the calling process to be
   replaced with a new program, with newly initialized stack, heap, and
   (initialized and uninitialized) data segments")

由于两个进程都并行运行(假设父进程被子进程调用后恢复执行),因此它们如何同时访问堆/栈(现在需要有所不同)。仅当它们具有完全不同的虚拟地址空间时,才有可能。但是它在exec文档中没有写任何地方创建新的虚拟地址空间。

“新初始化的”是同一意思吗?

0 个答案:

没有答案