Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados — FUNDATEC 2023

Banco de DadosBanco de Dados
Código
qq890150
Banca
FUNDATEC
Órgão
BRDE
Ano
2023
Nível
Superior
Cargo
Analista de Sistemas - Ciência de Dados
Existem dois tipos de prevenção de deadlock quando se utiliza timestamp para controle de concorrência: ESPERAR-MORRER e FERIR-ESPERAR. Suponha que as transações T1, T2 e T3 tenham timestamps 5, 10 e 15, respectivamente.No esquema ESPERAR-MORRER, se T3 solicitar um item de dado mantido por T2, então _____ será desfeita. Já no esquema FERIR-ESPERAR, se T1 solicitar um item de dado mantido por T2, então o item de dado será liberado de _____, e _____ será desfeita. Se T3 solicitar um item mantido por T2, então _____ esperará.Assinale a alternativa que preenche, correta e respectivamente, as lacunas do trecho acima.
  1. AT3 – T2 – T2 – T3
  2. BT1 – T2 – T3 – T1
  3. CT2 – T3 – T3 – T2
  4. DT3 – T1 – T1 – T3
  5. ET1 – T3 – T1 – T2
Revelar gabarito e comentário

GabaritoA — T3 – T2 – T2 – T3

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Prevenção de deadlock com timestamp: Esperar-Morrer e Ferir-Esperar

Gabarito: letra A. A sequência correta é T3 – T2 – T2 – T3, conforme as regras dos dois protocolos: no esperar-morrer, a transação mais nova (T3) que pede item de uma mais antiga (T2) é abortada; no ferir-esperar, a mais antiga (T1) que pede item de uma mais nova (T2) fere (aborta) a mais nova, liberando o item e abortando T2; e uma transação mais nova (T3) que pede item de uma mais antiga (T2) espera.

A questão testa o conhecimento dos dois protocolos de prevenção de deadlock baseados em timestamps. As regras são exatamente opostas entre si:

  • Esperar-morrer (wait-die): se a transação solicitante é mais nova que a detentora do bloqueio, ela morre (aborta); se é mais antiga, espera.

  • Ferir-esperar (wound-wait): se a solicitante é mais antiga que a detentora, ela fere (aborta) a detentora e toma o item; se é mais nova, espera.

Dados os timestamps: T1=5 (mais antiga), T2=10, T3=15 (mais nova).

Contexto (fonte: Elmasri & Navathe, Sistemas de Banco de Dados, 6ª ed., Cap. 21):

"No esquema esperar-morrer, uma transação mais antiga tem permissão para esperar por uma transação mais nova, enquanto uma transação mais nova que solicita um item mantido por uma transação mais antiga é abortada e reiniciada. A técnica ferir-esperar faz o contrário: uma transação mais nova tem permissão para esperar por uma mais antiga, enquanto uma transação mais antiga que solicita um item mantido por uma transação mais nova apodera-se da transação mais nova ao abortá-la."

Alternativa A — ✅ Correta ⟵ GABARITO

Preenche todas as lacunas: T3 (morre no esperar-morrer), T2 (item liberado de T2 no ferir-esperar), T2 (T2 é desfeita), T3 (T3 espera no ferir-esperar).

Alternativa B — ❌ Incorreta

Afirma T1 na primeira lacuna (T1 não é a solicitante no esperar-morrer) e a sequência não corresponde às regras.

Alternativa C — ❌ Incorreta

Coloca T2 na primeira lacuna e inverte o restante.

Alternativa D — ❌ Incorreta

Traz T3 – T1 – T1 – T3, mas no ferir-esperar o item é liberado de T2, não de T1.

Alternativa E — ❌ Incorreta

Apresenta T1 – T3 – T1 – T2, incompatível com a lógica dos esquemas.

NÃO CAIA NESSA!

A banca troca as duas técnicas opostas. No esperar-morrer, quem morre é a transação mais nova; no ferir-esperar, quem espera é a mais nova. Memorize: "esperar-morrer" → mais nova morre; "ferir-esperar" → mais antiga fere a mais nova. Com esse par de regras em mente, a sequência sai direto.

Gabarito: letra A.

Link permanente: /questoes/qq890150