Em sistemas gerenciadores de banco de dados, um deadlock oco...
I. A fases do protocolo de bloqueio em duas fases são: fase de expansão (onde os bloqueios são adquiridos) e fase de encolhimento (onde os bloqueios são liberados). II. O protocolo de bloqueio em duas fases é utilizado para garantir o escalonamento serializável das transações. III. A primeira operação de unlock dá início à fase de expansão.
- Gabarito Comentado (1)
- Aulas (3)
- Comentários (3)
- Estatísticas
- Cadernos
- Criar anotações
- Notificar Erro
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - Apenas I e II estão corretas.
Vamos discutir o assunto relacionado à questão para que você possa entender melhor o conceito e o motivo da alternativa C ser a correta. O tema abordado aqui é a prevenção de deadlocks em Sistemas de Gerenciamento de Bancos de Dados (SGBDs), que é uma situação onde duas ou mais transações ficam bloqueadas indefinidamente, cada uma esperando que a outra libere um recurso.
O protocolo de bloqueio em duas fases (2PL - Two-Phase Locking) é uma estratégia para evitar deadlocks e garantir a consistência nas transações do banco de dados. Como o nome sugere, esse protocolo funciona em duas fases distintas:
- Fase de expansão (growing phase): Nesta fase, os bloqueios são adquiridos e não liberados. Uma transação pode bloquear recursos adicionais conforme necessário, mas uma vez que ela libera um bloqueio, ela não pode obter novos bloqueios.
- Fase de encolhimento (shrinking phase): Após adquirir todos os bloqueios necessários, a transação entra na fase de encolhimento, onde bloqueios podem ser liberados, mas não mais adquiridos.
Essa estratégia ajuda a garantir um escalonamento serializável, o que significa que, mesmo com transações sendo processadas simultaneamente (concorrentemente), o resultado final é o mesmo que seria se as transações fossem processadas uma após a outra, em série.
Agora, vamos justificar as assertivas:
I. Esta assertiva está correta. Ela descreve exatamente as duas fases do protocolo de bloqueio em duas fases: a fase de expansão e a fase de encolhimento.
II. Esta assertiva também está correta. O protocolo de bloqueio em duas fases é utilizado para garantir o escalonamento serializável, que é um dos objetivos principais na prevenção de deadlocks e na manutenção da integridade do banco de dados.
III. Esta assertiva está incorreta. A primeira operação de unlock (liberação de um bloqueio) na verdade marca o fim da fase de expansão e o início da fase de encolhimento. Ao liberar um bloqueio, a transação demonstra que não irá adquirir novos bloqueios e, portanto, está pronta para começar a liberar os bloqueios existentes.
Portanto, a alternativa C é a correta, já que apenas as assertivas I e II estão corretas e a assertiva III está incorreta.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Unlock so ocorre na fase de encolhimento
Gabarito C
I) Fase de Crescimento e Encolhimento
II) Sim, para tentar garantir uma transação com os dados consistentes, sem ocorrer problemas de deadlocks ou de leitura fantasma, atualização perdida ....
III) unlock = fase de encolhimento
c-
1° unlock -> encolher
expansao inicia assim q transação começa a liberar locks
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo