Um processo executa o seguinte código

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

O número total de processos filhos criados é
(A) n
(B) 2 n - 1
(C) 2 n
(D) 2 (n + 1) - 1

Resposta: (B)
Explicação:

         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

Se somarmos todos os níveis da árvore acima para i = 0 a n-1, teremos 2 n - 1. Portanto, haverá 2 n - 1 processos filho. Por outro lado, o número total de processos criados é (número de processos filhos) +1.

Nota: O número máximo de processos é 2 n e pode variar devido a falhas de bifurcação. Consulte também esta postagem para obter mais detalhes.

Teste desta questão

Aprenda todos os conceitos do GATE CS com aulas gratuitas ao vivo em nosso canal do youtube.