FC ConcursosFC Concursos

Questão FC266998

Na maioria dos sistemas, os processos são executados de forma concorrente e podem ser gerados e destruídos dinamicamente. Com uma chamada de sistema do tipo fork podemos criar um n

Gerência de Processos

IDECAN · 2022

Na maioria dos sistemas, os processos são executados de forma concorrente e podem ser gerados e destruídos dinamicamente. Com uma chamada de sistema do tipo fork podemos criar um novo processo em UNIX, ou CreateProcess() se for utilizado o Windows, por exemplo. Assim, indique a opção dentro da chamada de sistema de gerenciamento de processos que espera que um processo filho seja concluído.

  1. pid = wait(pid, &statloc).
  2. pid = wait_pid(&statloc, options).
  3. pid = wait(pid, &statloc, options).
  4. pid = forkpid(pid, &statloc, options).
  5. pid = waitpid(pid, &statloc, options).
Mostrar resposta e comentário

Gabarito

Errado

Comentário do professor

waitpid() é a chamada usada para o pai aguardar a conclusão de um processo filho específico. A forma típica é pid = waitpid(pid, &statloc, options), onde pid identifica o filho, statloc é um ponteiro para receber o status de término e options permite comportamentos especiais.

Passando o identificador do filho, a função bloqueia o processo pai até que aquele filho termine (ou mude de estado). Com opções como WNOHANG você evita bloqueio; com WUNTRACED consegue detectar filhos parados por sinal.

O retorno é o PID do filho cujo estado foi obtido; retorna 0 se WNOHANG estiver ativo e nenhum filho mudou de estado, ou -1 em caso de erro. Assim, waitpid() permite sincronizar o pai com um filho específico e coletar seu status, evitando processos zumbis.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo