Banco de Dados: Para realizarmos o controle de concorrência de transações locais podemos utilizar técnicas de banco centralizados, como, por exemplo, o protocolo de bloqueio. Considere o seguinte cenário referente às operações das transações T1 e T2: Dentro deste cenário avalie as assertivas a seguir e a relação proposta entre elas. I. Tanto T1 quanto T2 ficaram bloqueadas porque II. Estamos na presença de um deadlock. Quanto às duas afirmativas observamos que:

Questão

Para realizarmos o controle de concorrência de transações locais podemos utilizar técnicas de banco centralizados, como, por exemplo, o protocolo de bloqueio. Considere o seguinte cenário referente às operações das transações T1 e T2:

Dentro deste cenário avalie as assertivas a seguir e a relação proposta entre elas. I. Tanto T1 quanto T2 ficaram bloqueadas porque II. Estamos na presença de um deadlock.

Quanto às duas afirmativas observamos que:

Alternativas

A) As duas afirmações estão corretas e a segunda justifica a primeira.

95%

B) As duas afirmações estão corretas e a segunda não justifica a primeira.

C) A primeira afirmação é correta e a segunda falsa.

D) A primeira afirmação é falsa e a segunda correta.

E) As duas afirmações são falsas.

Explicação

Pelo protocolo de bloqueio (locks), considere os pedidos na tabela:

  1. No instante 1, T1 solicita bloqueio em A para gravação ⇒ isso é um lock exclusivo (X) em A. Assim, T1 fica com X(A).

  2. No instante 2, T2 solicita bloqueio em B para leitura ⇒ isso é um lock compartilhado (S) em B. Assim, T2 fica com S(B).

  3. No instante 3, T2 solicita bloqueio em A para leitura ⇒ seria S(A), mas S(A) é incompatível com X(A) que já está com T1. Logo, T2 fica bloqueada esperando A (espera T1 liberar A).

  4. No instante 4, T1 solicita bloqueio em B para gravação ⇒ seria X(B), mas B está com S(B) de T2, e X(B) é incompatível com S(B). Logo, T1 fica bloqueada esperando B (espera T2 liberar B).

Agora temos:

  • T2 espera por T1 (para liberar A), e
  • T1 espera por T2 (para liberar B).

Isso forma um ciclo de espera no grafo de espera (wait-for graph), caracterizando deadlock.

Assim: I. “Tanto T1 quanto T2 ficaram bloqueadas” — verdadeiro (T2 bloqueia no instante 3; T1 bloqueia no instante 4). II. “Estamos na presença de um deadlock” — verdadeiro (há espera circular).

E a II justifica a I, pois o deadlock é exatamente a situação em que transações ficam bloqueadas mutuamente, sem progresso.

Alternativa correta: (A).

Questões relacionadas

Ver últimas questões

Comece a estudar de forma inteligente hoje mesmo

Resolva questões de concursos e vestibulares com IA, gere simulados personalizados e domine os conteúdos que mais caem nas provas.

Cancele quando quiser.