Pular para o conteúdo principal

Questão de Arquitetura de Software — Software — FCC 2023

Arquitetura de SoftwareSoftware
Código
fc069491
Banca
FCC
Órgão
TRT - 12ª Região (SC)
Ano
2023
Nível
Superior
Cargo
Analista Judiciário - Área de Apoio Especializado (Especialidade Tecnologia da Informação)
Examine o programa em C abaixo.#include <stdio.h>#include <stdlib.h>#include <unistd.h>#define NUM_ADVOGADOS 3void advogado(int id) (printf("Advogado %d: Preparando argumentos\n", id);usleep(rand() % 2000000 + 1000000); // Simula o tempo de preparaçãoprintf("Advogado %d: Apresentando o caso ao tribunal\n", id) ;usleep(rand() % 2000000 + 1000000); // Simula o tempo de apresentaçãoprintf("Advogado %d: Caso resolvido\n", id);}int main() {srand(time(NULL));for (int i = 1; i <= NUM_ADVOGADOS; i ++) (if (fork() == 0) (}}// Código do processo pai (tribunal)for (int i = 1; i <= NUM_ADVOGADOS; i ++) (wait(NULL); // aguarda todos os processos filhos terminarem}printf("Todos os casos foram resolvidos.\n");return 0;}Considerando que uma das saídas do programa acima, compilado e executado em condições ideais, seja:Advogado 1: Preparando argumentosAdvogado 3: Preparando argumentosAdvogado 2: Preparando argumentosAdvogado 3: Apresentando o caso ao tribunalAdvogado 2: Apresentando o caso ao tribunalAdvogado 1: Apresentando o caso ao tribunalAdvogado 1: Caso resolvidoAdvogado 3: Caso resolvidoAdvogado 2: Caso resolvidoTodos os casos foram resolvidos.A lacuna I deve ser corretamente preenchida com:
  1. Aadvogado(i);
  2. Badvogado(i); exit(0);
  3. Cadvogado(i+1);
  4. Dadvogado(i+1); break(1);
  5. Eadvogado((fork(i)); exit(1);
Revelar gabarito e comentário

GabaritoB — advogado(i); exit(0);

Link permanente: /questoes/fc069491