80 likes | 200 Views
Protocolo de Bloqueios. Compartilhado e Exclusivo. Protocolos com Base em Bloqueio. Duas formas de bloqueio : Compartilhado Uma transação T1 com um bloqueio compartilhado ( lock_r ) sobre um item A somente pode ler esse item Exclusivo
E N D
Protocolo de Bloqueios Compartilhado e Exclusivo
Protocolos com Base em Bloqueio • Duas formas de bloqueio : • Compartilhado • Uma transação T1 com um bloqueio compartilhado (lock_r) sobre um item A somente pode ler esse item • Exclusivo • Uma transação T1 com um bloqueio exclusivo (lock_rw) sobre um item A, pode tanto ler como escrever esse item
Protocolos com Base em Bloqueio • Bloqueios compartilhados podem ser realizados de diferentes transações sobre o mesmo item de dados • Instruções de Solicitação de Bloqueio/Desbloqueio: • lock_r(A): Bloqueio compartilhado • lock_rw(A): Bloqueio exclusivo • Desbloqueio pelo instrução unlock • O bloqueio deve ser mantido durante todo o tempo de acesso ao item
Protocolos com Base em Bloqueio • Quando é usado este tipo de bloqueio, cada transação deve seguir as seguintes regras: • Deve executar a operação lock_r(A) ou lock_rw(A) antes da operação read(A) em T. • Deve executar a operação lock_rw(A) antes de qualquer operação write(A) em T. • Deve executar a operação unlock(A) depois de todas as operações read(A) e write(A) foram completadas em T. • Só pode realizar um unlock(A) se já houver executado um lock_r(A) ou lock_rw(A) antes.
Protocolos com Base em Bloqueio • O desbloqueio imediatamente após o acesso final ao item poderá resultar em inconsistência, caso sejam executadas transações concorrentes • O desbloqueio ao final de toda a transação pode ocasionar em impasse (deadlock) • Os deadlocks podem ser tratados, mas o estado de inconsistência não podem ser tratados pelo sistema
Protocolos com Base em Bloqueio • Suponha que T2 possui bloqueio compartilhado sobre o item A e T1 solicita bloqueio exclusivo sobre o mesmo item, T1 terá que esperar. • T3 solicita bloqueio compartilhado. • T2 já deve ter terminado, T1 terá que esperar agora T3 terminar. E assim sucessivamente... • T1 poderá nunca ser processada, sendo chamada de inane
Protocolos com Base em Bloqueio • Para evitar a inanição, quando Ti solicita um bloqueio sobre um item A de modo B, o bloqueio é concedido caso: • Não haja nenhuma outra transação com bloqueio sobre A que seja conflitante com B • Não haja nenhuma outra transação que esteja esperando um bloqueio sobre A e que tenha feito sua solicitação antes de Ti