Questão 55 · Informática: Banco de dados
Em um ambiente de banco de dados de um sistema bancário, duas transações são executadas simultaneamente: uma delas adquire bloqueio exclusivo em A e, em seguida, em B; a outra adquire bloqueio exclusivo em B e, em seguida, em A.
Ambas só liberam todos os bloqueios ao término da execução.
Nesse cenário, é mais provável que ocorra
- A) starvation da transação mais lenta, sendo a melhor prevenção a implementação de um escalonador baseado em prioridades.
- B) violação de isolamento, sendo a melhor prevenção a elevação do nível de isolamento para serializable.
- C) detecção de deadlock por timeout, sendo a melhor prevenção a imposição de limites de tempo para a aquisição de bloqueios.
- D) deadlock, sendo a melhor prevenção a imposição de uma ordenação total aos recursos, exigindo-se que todas as transações adquiram bloqueios em uma mesma sequência predefinida.
- E) condição de corrida (race condition), sendo a melhor prevenção a utilização de bloqueios compartilhados em vez de exclusivos.
Marque a alternativa correta:
Gabarito: D
Gabarito definitivo divulgado pela banca Cebraspe (BANRISUL 2025).
Comentário
Gabarito: D.
O cenário descreve um deadlock (impasse). T1 mantém bloqueio exclusivo em A e aguarda B, enquanto T2 mantém B e aguarda A. Como nenhuma transação libera seus bloqueios antes do fim, forma-se uma espera circular, uma das condições clássicas do impasse. A prevenção indicada é impor uma ordenação total dos recursos, de modo que todas as transações adquiram bloqueios na mesma sequência predefinida (por exemplo, sempre A antes de B). Com isso, a espera circular não se forma.
- (A) Starvation é a preterição sistemática de uma transação, e o cenário descreve espera mútua, não inanição.
- (B) Violação de isolamento não é o efeito descrito; o problema é o impasse, e elevar para serializable não o previne.
- (C) Timeout é mecanismo de detecção/resolução, não a prevenção pedida pelo item.
- (E) Race condition decorre de acessos sem controle; bloqueios compartilhados não eliminam o impasse de bloqueios exclusivos cruzados.
Dica: sempre que houver bloqueios cruzados em ordem inversa, pense em espera circular e deadlock; a prevenção clássica é a ordenação dos recursos.
Fundamentos: Conceito de deadlock e espera circular (sistemas de banco de dados) · Prevenção de deadlock por ordenação total dos recursos · Bloqueio exclusivo e liberação ao término da transação (two-phase locking estrito)
Comentário gerado pela Cravei IA a partir do enunciado e do gabarito definitivo divulgado pela banca, e conferido por uma verificação automática. A IA pode errar: o gabarito oficial sempre prevalece.
Fonte: prova Cebraspe BANRISUL 2025 (Diversos cargos), questão 55, com o gabarito definitivo da banca. Comentário: Equipe Cravei · como fazemos e revisamos.