Ed
há 10 meses
Para resolver essa questão, precisamos entender como a função `fork()` funciona em C. Cada chamada a `fork()` cria um novo processo filho. O número total de processos gerados pode ser calculado pela fórmula \(2^n\), onde \(n\) é o número de chamadas a `fork()`. No seu código, temos um loop que chama `fork()` 3 vezes: 1. Na primeira iteração do loop (i=0), o processo pai cria 1 filho (total: 2 processos). 2. Na segunda iteração do loop (i=1), cada um dos 2 processos existentes cria mais 1 filho (total: 4 processos). 3. Na terceira iteração do loop (i=2), cada um dos 4 processos existentes cria mais 1 filho (total: 8 processos). Portanto, após 3 chamadas a `fork()`, teremos 8 processos no total. Agora, quanto às threads: o código apresentado não cria nenhuma thread, pois não há uso de `pthread_create()` ou similar. Portanto, o número de threads é 0. Assim, no instante da execução da linha 5, teremos 8 processos e 0 threads. A alternativa correta é: E 8 e 0.
Já tem uma conta?
Ao continuar, você aceita os Termos de Uso e Política de Privacidade
Mais perguntas desse material