Prévia do material em texto
Questões Novas – Threads, Processos e Mutex Questão 1 Pergunta: Em um sistema multi-thread, várias threads precisam acessar e modificar uma variável global. Para evitar inconsistências nos dados, o desenvolvedor decide utilizar um mutex. Qual é o propósito principal de um mutex nesse contexto? Resposta correta: Garantir a exclusão mútua durante o acesso à variável. Questão 2 Pergunta: Um desenvolvedor está construindo um servidor de chat que precisa lidar com mensagens em tempo real entre vários usuários. Ele opta por utilizar a função fork() para cada nova conexão de usuário. Qual é a principal vantagem dessa abordagem? Resposta correta: Permite isolamento completo de cada conexão. Questão 3 Pergunta: Sobre o uso da função fork() em sockets, analise as afirmativas: I. Cada processo filho pode tratar uma conexão separada. II. A comunicação entre processos filhos é feita diretamente através de variáveis globais. III. É possível compartilhar dados entre processos usando memória compartilhada. Qual alternativa está correta? Resposta correta: Apenas I e III estão corretas. 1 Questão 4 Pergunta: Complete a frase: A ____ é uma técnica de sincronização que evita que múltiplas threads acessem simultaneamente um recurso compartilhado, garantindo que apenas uma thread por vez possa acessar esse recurso. Resposta correta: Exclusão mútua. Questão 5 Pergunta: Complete a sentença: O ____ é um estado onde duas ou mais threads ficam esperando indefinidamente por um evento que só pode ser causado por um dos threads bloqueados. Resposta correta: Deadlock. Questão 6 Pergunta: Preencha as lacunas corretamente: A sincronização de threads é essencial para evitar _, que ocorrem quando duas ou mais threads tentam acessar simultaneamente um recurso compartilhado sem a devida _. Uma técnica comum para sincronização é o uso de ____. Resposta correta: condições de corrida, exclusão mútua, mutexes. Questão 7 Pergunta: Ordene as ações para criar um thread e sincronizá-lo utilizando pthreads em C. I. Inicializar a estrutura de dados do mutex. II. Criar a função que o thread irá executar. III. Declarar uma variável do tipo pthread_t. 2 IV. Criar o thread com pthread_create(). V. Trancar e destrancar o mutex na função do thread. Resposta correta: III, II, I, IV, V. Questão 8 Pergunta: Uma aplicação de servidor web precisa lidar com múltiplas requisições simultâneas utilizando pthreads. Qual é a principal desvantagem dessa abordagem? Resposta correta: Risco de condições de corrida. Questão 9 Pergunta: Avalie a asserção e a razão: Asserção: fork() é uma função utilizada para criar novos processos no Unix. Razão: fork() cria um novo processo que executa o mesmo código do processo pai até a chamada do fork(). Qual alternativa está correta? Resposta correta: Asserção verdadeira e razão verdadeira, e a razão é uma justificativa correta da asserção. Questão 10 Pergunta: Sobre vantagens e desvantagens do uso de fork(), analise as afirmativas: I. Facilita a paralelização de tarefas. II. Aumenta o consumo de memória do sistema. III. Permite processos independentes. IV. Cria processos com overhead baixo. 3 V. Pode causar fragmentação de memória. Qual alternativa está correta? Resposta correta: Apenas I, II e III estão corretas. 4 Questões Novas – Threads, Processos e Mutex Questão 1 Questão 2 Questão 3 Questão 4 Questão 5 Questão 6 Questão 7 Questão 8 Questão 9 Questão 10