GATE | GATE CS 2008 | Question 66

A process executes the following code

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

The total number of child processes created is
(A) n
(B) 2n - 1
(C) 2n
(D) 2(n+1) - 1


Answer: (B)

Explanation:

         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

If we sum all levels of above tree for i = 0 to n-1, we get 2n - 1. So there will be 2n – 1 child processes. On the other hand, the total number of process created are (number of child processes)+1.



Note:The maximum number of process is 2n and may vary due to fork failures.Also see this post for more details.


Quiz of this Question

My Personal Notes arrow_drop_up

Improved By : kalpaj_12

Article Tags :

2


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.