in Operating System retagged by
12,988 views
20 votes
20 votes

The following C program is executed on a Unix/Linux system :

#include<unistd.h>
int main()
{
    int i;
    for(i=0; i<10; i++)
        if(i%2 == 0)
            fork();
    return 0;
}

The total number of child processes created is ________________ .

in Operating System retagged by
by
13.0k views

4 Comments

edited by

 

5(0,2,4,6,8) times fork is called.
Total number of child process would be 2^5−1=31

1
1
HOW 0 is divided by 2 or a even no  is still a mystery right
0
0
fork will execute 5 times (i=0,2,4,6,8). so child processes created are 2^5-1=31
0
0

8 Answers

0 votes
0 votes
From 0 to 9, 0,2,4,6,8 are the values which will satisfy if condition. so fork will be called 5 times. total number of child processes will be 2^5-1=31
0 votes
0 votes
2^5 - 1 = 32 - 1 = 31 child processes.
0 votes
0 votes
fork is called at 0 , 2 ,4 ,6 ,8 i.e total 5 time

So total number of child is  2^5-1 = 31.
0 votes
0 votes
i is initialized as 0 and it should be incremented by 2 and should go up to less than 10.

consider this code:

                                  for(i=0; i<10; i=i+2)

                                  fork();

fork ( is a function) shall be called 5 times(i=0,2,4,6,8) equal to the no. of even numbers less than 10

∴ Total number of process 2*2*2*2*2 =32 

Total number of child process shall be 32−1=31

reshown by
Answer:

Related questions