运行此代码后构建了多少进程?

时间:2017-11-16 14:15:02

标签: unix process operating-system

这个程序在Unix上运行:

 main(int argc,char** argv)
    {
         forkthem(5)
    }
    void forkthem(int n)
    {
         if(n>0)
         {
             fork();
             forkthem(n-1);
         }
    }

我们试图建立一个流程树,但我们并没有真正得到答案。 如果有人帮助我们,我们将非常感激。

1 个答案:

答案 0 :(得分:1)

当n = 0时,则一个过程,即原始过程 当n = 1时,则发生一个分叉,因此两个进程
当n = 2时,则两个n = 1个过程中的每一个再次分叉,因此4个过程
...
当n = k时,2 ** k处理

所以,n = 5意味着32个过程