SóProvas


ID
1732861
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

Em relação à gerência de transações e à gerência de bloqueios, julgue o item a seguir.

Uma transação é considerada estagnada quando aguarda, por tempo indeterminado, a obtenção de um bloqueio no modo compartilhado, enquanto uma segunda transação está sendo realizada no modo de bloqueio exclusivo.


Alternativas
Comentários
  • Consideremos que existem três transações A, B e C, a transação A faz a requisição de um bloqueio compartilhado de um item de dado, logo em seguida a transação B faz uma requisição de bloqueio exclusivo do mesmo item de dado, como a transação A está usando o bloqueio compartilhado do item, logo a transação B não poderá deter o acesso, o que faz com que ela fique na fila de espera, até a liberação do mesmo. Enquanto a transação B está na fila, chega a transação C com o pedido de compartilhamento do mesmo item, como é possível fazer o compartilhamento do item que A está usando, então, a transação C passa na frente de B e consegue o compartilhamento do item de dado da transação A. Quando a transação A terminar de desocupar, o item de dado continuará ocupado pela transação C, enquanto isso, a transação B continuará aguardando a liberação total do item de dado para que ela possa fazer o bloqueio exclusivo. Caso as próximas transações sejam sempre de acesso compartilhado deste mesmo item, a transação B nunca conseguirá fazer um progresso, e então, ela é considerada estagnada.

    Leia mais em: Controle de concorrência entre transações em bancos de dados http://www.devmedia.com.br/controle-de-concorrencia-entre-transacoes-em-bancos-de-dados/27756#ixzz3wmhdW52B

  • Na veradade questão trocou os conceitos de Starvation e Livelock.

    Ela chamou de Starvation (ou Trasação Estagnada), que nunca é atendida, o que deveria ser Livelock, isto é, a transação aguarda por tempo indeterminado a liberação para bloqueio compartilhado.

  • Uma transação é considerada estagnada quando está em starvation, é a mesma coisa! Um exemplo bem comum de estagnação em relação a transações é quando uma transação T quer adquirir um bloqueio exclusivo sobre determinado item, mas várias outras transações adquirem e liberam bloqueios compartilhados sobre o item, sem que ele nunca fique completamente livre de bloqueios.

    Assim, a transação T fica eternamente estagnada, aguardando a liberação de um bloqueio que nunca vem. Veja que não é esse o fenômeno que está sendo descrito na assertiva.

    Gabarito: E