Questão nº 39

Questão de Análise de Sistemas · CESGRANRIO BNDES 01/2024 (nº 39)

CESGRANRIO2024Analista - Análise de Sistemas (Desenvolvimento)Análise de Sistemas
Gabarito: Cver comentário ↓

Um programador está desenvolvendo um sistema de controle de estoque no qual múltiplos threads precisam atualizar a quantidade de produtos simultaneamente. Para garantir que a quantidade de produtos seja atualizada corretamente sem causar inconsistências, ele precisa utilizar uma primitiva de sincronização específica.

Considerando-se esse contexto, qual é a propriedade que caracteriza unicamente a primitiva de sincronização chamada ‘mutex’ e que a qualifica para garantir a condição desejada?

Resposta comentada

Gabarito Alternativa C

Mutex é uma abreviação de mutual exclusion (exclusão mútua). Ele funciona como uma chave de banheiro: só uma pessoa entra por vez, usa o recurso e devolve a chave. Enquanto um thread segura o mutex, qualquer outro thread que tente pegá-lo fica bloqueado esperando, garantindo que a operação de atualização do estoque seja atômica (sem interrupção no meio).

  • (A) Incorreta: Isso descreve uma variável de condição, que faz o thread esperar até que um sinal específico ocorra, não um mutex. A pegadinha aqui é confundir "esperar por condição" com "esperar por liberação do lock".
  • (B) Incorreta: Essa é a definição de um monitor (ou de um semáforo com contador), que encapsula um mutex junto com variáveis de condição. O mutex sozinho não gerencia condições, apenas exclusão mútua.
  • (C) Correta: Exatamente essa é a essência do mutex: garantir que apenas um thread acesse o recurso crítico por vez. É a propriedade que impede dois threads de escreverem no estoque simultaneamente, evitando a condição de corrida.
  • (D) Incorreta: Isso descreve um semáforo contador (ou semáforo com valor N), que permite até N threads acessarem o recurso. O mutex só permite 1.
  • (E) Incorreta: Isso descreve uma barreira (ou rendezvous), usada para sincronizar threads em um ponto de encontro, não para proteger um recurso compartilhado. A armadilha aqui é a palavra "sincronizar", que é genérica, mas a função específica do mutex é exclusão, não coordenação de fases.

Fonte: CESGRANRIO BNDES 01/2024 Analista - Análise de Sistemas (Desenvolvimento) (Caderno Prova 3). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho