exercicio resolvido banco de dados
As transações T1 e T2 têm 2 fases. Observe que as instruções de bloqueio não precisam aparecer no final da transação. Podemos colocar a instrução Unlock(B) logo após a instrução Lock-X(A) da transação T2 e ainda assim manter a propriedade do bloqueio em duas fases. Podemos mostrar que o protocolo de bloqueio garante a serialização de conflitos. As transações são ordenadas com seu ponto de bloqueio.
14.2 Considere as transações seguintes:
Adicione as instruções de bloqueio e desbloqueio às transações T31 e T32 de modo que observem o protocolo do bloqueio em duas fases. A execução dessas transações pode resultar em deadlock?
T31 T32 Lock_X(A) Lock_X(B) Read(A) Read(B) Lock_X(B) Lock_X(A) Read(B) Read(A) if A= 0 if B=0 them B:=B+1 them A:=A+1 Write(B) Write(B)
Unlock(A) Unlock(B) Unlock(B) Unlock(A)
Observando T31 e T32, chegaremos a uma situação em que nenhuma dessas transações pode processar em sua forma normal. Essa situação é chamada de deadlock (impasse). Quando um deadlock ocorre, o sistema precisa desfazer uma das duas transações. Uma vez desfeita a transação, os itens de dados que foram por ela bloqueados são liberados.
14.3 Quais os benefícios proporcionados pelo bloqueio em duas fases severo? Quais as desvantagens resultantes?
O protocolo de bloqueio em duas fases severo exige, em adição ao bloqueio feito em duas fases, que todos os bloqueios de modo exclusivo tomados por uma transação sejam mantidos até que a transação seja efetivada. Essa exigência garante que qualquer dado escrito por uma transação que não foi ainda