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:
- Aadvogado(i);
- Badvogado(i); exit(0);
- Cadvogado(i+1);
- Dadvogado(i+1); break(1);
- Eadvogado((fork(i)); exit(1);