登机门|登机门CS 2008 |问题66

进程执行以下代码

null
for (i = 0; i < n; i++) fork();

创建的子进程总数为 (A) N (B) 2. N – 1 (C) 2. N (D) 2. (n+1) – 1 答复: (B) 说明:

         F0       // There will be 1 child process created by first fork
      /     
    F1      F1    // There will be 2 child processes created by second fork
   /      /  
 F2   F2  F2   F2  // There will be 4 child processes created by third fork
/    /  /   / 
 ...............   // and so on

如果我们把上面的树的所有层次加起来,从i=0到n-1,我们得到2 N – 1. 所以会有两个 N –1个子进程。另一方面 过程 创建的是(子进程数)+1。

注: 最大进程数为2 N 并且可能因分叉故障而有所不同。也看到 发布更多细节。

这个问题的小测验

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享