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.