POSCOMP 2019: Questão 45 Resolvida (Sistemas operacionais)

Por
| 

Logotipo do POSCOMP 2019

Questão

Considere o programa abaixo escrito em linguagem C. No instante da execução da linha 5, ter-se-á uma hierarquia composta de quantos processos e threads, respectivamente?

1
2
3
4
5
6
main(){
   int i;
   for(i=0;i<3;i++)
      fork();
   while(1);
}
  • (A) 1 e 0.
  • (B) 3 e 0.
  • (C) 4 e 1.
  • (D) 7 e 7.
  • (E) 8 e 8.

Resolução

Quando chamada, a função fork() em C (uma chamada de sistema) cria um novo processo, denominado processo filho, que será executado concorrentemente com o processo pai.

Tanto o processo pai como o processo filho executarão a próxima instrução do programa.

Observe que nas linhas 3-4, temos três chamadas fork() seguidas. Ou seja, após a primeira chamada, teremos dois processos.

Cada um desses processos chamará fork() mais uma vez e dessa forma teremos quatro processos.

Por último, esses quatro processos chamarão fork(), cada um gerando um novo processo e, portanto, após as três chamadas consecutivas, teremos ao todo oito processos.

Como nenhuma thread extra foi criada durante a execução do programa, então cada processo terá uma única thread. Ou seja, teremos oito threads no total.

Portanto, a alternativa correta é a E.

Árvores de processos gerados através do fork
A imagem acima ilustra o problema. Observe que iniciamos com um único processo P1. Cada listra cinza indica o ponto em que fork() foi chamada.

Mais questões

Se você deseja mais questões resolvidas do POSCOMP 2019, acesse a tag Questões do POSCOMP 2019.

Agora, se você procura questões, gabaritos e caderno de questões de outras edições, então acesse a página POSCOMP.

Resolverei as questões conforme o tempo permitir e de acordo com os meus conhecimentos. Como eu não sei resolver todas as questões, recomendo que você consulte também o gabarito oficial do exame.

Referências

Sugestões de livros para estudantes de computação na Amazon (patrocinado): Lista de Livros

Obrigado pela leitura! Se você puder, considere apoiar financeiramente o Blog Cyberini, Chave Pix: cyberpix9@gmail.com

Doar com PayPal

Siga o blog

Redes sociais: Facebook, Twitter, YouTube, Pinterest, Instagram, Telegram

Importante: utilize o bom senso na hora de comentar. Acesse a política de privacidade para maiores informações sobre comentários.

Nenhum comentário:

Postar um comentário