Questão de Banco de Dados — Gerência de Transações — FGV 2025
Banco de Dados›Gerência de Transações
Código
fg114833
Banca
FGV
Órgão
MPE-RJ
Ano
2025
Nível
Superior
Cargo
Analista do Ministério Público - Área Administrativa - Tecnologia da Informação
Uma das maneiras de impedir a ocorrência de deadlocks em bancos de dados relacionais é usar protocolos de prevenção de deadlocks que podem implementar diversas estratégias.A definição “ Se o timestamp TS(Ti) < TS(Tj), então (a transação Ti é mais antiga que a transação Tj), então Ti tem permissão para esperar; caso contrário (Ti mais novo que Tj) aborta Tj e o reinicia mais tarde com o mesmo rótulo de tempo TS “ descreve a estratégia de prevenção de deadlock denominada
Aferir e esperar.
Bgrafo de espera.
Cespera ocupada.
Desperar e morrer.
Eespera programada.
Revelar gabarito e comentário▾
GabaritoD — esperar e morrer.
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: protocolos baseados em timestamp
Gabarito: letra D. A descrição apresentada — transação mais antiga espera, transação mais nova é abortada quando solicita recurso da mais antiga — define exatamente o protocolo Esperar e Morrer (Wait-Die). O protocolo inverso, Ferir e Esperar (Wound-Wait), determina que a transação mais antiga aborta a mais nova, e a mais nova espera.
A banca explora a confusão entre os dois protocolos simétricos. A definição dada no enunciado corresponde ao Wait-Die:
Se TS(Ti) < TS(Tj) (Ti mais antiga), Ti tem permissão para esperar.
Caso contrário (Ti mais nova), Ti aborta Tj e a reinicia com o mesmo timestamp.
Enquanto no Wound-Wait (Ferir-Esperar) a regra é oposta: a transação mais antiga que solicita recurso da mais nova aborta a mais nova, e a mais nova que solicita da mais antiga espera.
NÃO CAIA NESSA!
A troca dos nomes é clássica. O aluno que decora "ferir-esperar" como a regra em que o mais velho "fere" o mais novo pode marcar a alternativa A. Mas a descrição do enunciado é exatamente a do Esperar-Morrer: o mais velho espera, o mais novo "morre" (aborta).
Análise das alternativas
Estratégia
Regra (Timestamp)
Comportamento da Transação Mais Antiga
Comportamento da Transação Mais Nova
Tipo de Protocolo
Esperar e Morrer (Wait-Die)
TS(Ti) < TS(Tj) → Ti espera; senão → Tj aborta
Espera (não aborta)
Aborta (morre) e reinicia com mesmo timestamp
Prevenção (baseado em timestamp)
Ferir e Esperar (Wound-Wait)
TS(Ti) < TS(Tj) → Ti aborta Tj; senão → Ti espera
Aborta (fere) a mais nova
Espera (não aborta)
Prevenção (baseado em timestamp)
Grafo de Espera
Não usa timestamp
Detecta ciclos (não previne)
Detecta ciclos (não previne)
Detecção
Espera Ocupada
Não usa timestamp
Spinlock (espera ativa)
Spinlock (espera ativa)
Sincronização de baixo nível
Espera Programada
Não é termo técnico padrão
—
—
—
Prevenção de deadlock (timestamp)
1Esperar e Morrer (Wait-Die)
Mais antiga espera
Mais nova aborta
2Ferir e Esperar (Wound-Wait)
Mais antiga aborta a mais nova
Mais nova espera
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Ferir e esperar (Wound-Wait) é o protocolo inverso: a transação mais antiga fere (aborta) a mais nova quando há conflito. A definição do enunciado, portanto, não corresponde a este.
Alternativa B — ❌ Incorreta
Grafo de espera é uma estrutura usada na detecção de deadlock, não na prevenção. O enunciado trata de prevenção via timestamps, não de detecção.
Alternativa C — ❌ Incorreta
Espera ocupada (busy waiting) é uma técnica de sincronização de baixo nível (ex.: spinlocks), não um protocolo de prevenção de deadlock baseado em timestamp.
Alternativa D — ✅ Correta ⟵ GABARITO
Esperar e morrer (Wait-Die) é o protocolo descrito: a transação mais antiga espera; a mais nova que solicita recurso da mais antiga é abortada (morre) e reiniciada com o mesmo timestamp.
Alternativa E — ❌ Incorreta
Espera programada não é um termo técnico reconhecido para protocolos de prevenção de deadlock. A expressão correta é "esperar e morrer" (também conhecido como wait-die).