【发布时间】:2012-06-13 03:50:24
【问题描述】:
考虑以下说明:
for(int i = 0; i < 3; i++)
fork();
我试图弄清楚创建进程的数量和创建图表的步骤。
所以上面的代码等价于:
fork();
fork();
fork();
这个问题的官方答案如下图所示:
我无法想象这个图表是如何创建的。
这就是我绘制图表的方式。
因此,第一个 fork 将创建父进程 (p1) 的子副本 (p2)。我们有 2 个流程。
第二个分叉,将通过创建子进程(p3 和 p4)来复制 p1 和 p2 父进程。
第三次分叉,将复制 p1、p2、p3 和 p4,通过创建子进程(p5、p6、p7、p8)
如何获得与老师相同的图表?
【问题讨论】: