Questão nº 79

Questão de Tecnologia da Informação - Banco de Dados · FGV MPRJ 2025 (nº 79)

FGV2025Analista do Ministério Público - Área Administrativa - Tecnologia da InformaçãoTecnologia da Informação - Banco de Dados
Gabarito: Dver comentário ↓

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

Resposta comentada

Gabarito Alternativa D

A prevenção de deadlocks em bancos de dados usa estratégias para que as transações (sequências de operações) decidam se devem esperar por um recurso ou abortar, geralmente com base na sua "idade" (determinada por um timestamp).

  • (A) Incorreta: A estratégia "ferir e esperar" (Wound-Wait) dita que se uma transação mais antiga (Ti) requisita um recurso de uma mais jovem (Tj), a mais antiga "fere" (aborta) a mais jovem. A definição da questão diz que Ti "tem permissão para esperar", o que contradiz "ferir e esperar".
  • (B) Incorreta: Grafo de espera é uma técnica de detecção de deadlocks, não de prevenção. Ele é usado para identificar ciclos de espera que indicam um deadlock.
  • (C) Incorreta: Espera ocupada (Busy Waiting) é um conceito de sincronização de processos em sistemas operacionais, onde um processo fica em um loop verificando uma condição, consumindo CPU. Não é uma estratégia de prevenção de deadlocks em bancos de dados.
  • (D) Correta: A estratégia "esperar e morrer" (Wait-Die) funciona assim: se uma transação mais antiga (Ti) requisita um recurso que está com uma transação mais jovem (Tj), a transação mais antiga (Ti) espera pela mais jovem. Esta é a primeira parte da definição ("Se o timestamp TS(Ti) < TS(Tj)... então Ti tem permissão para esperar"). Se, ao contrário, uma transação mais jovem (Ti) requisita um recurso que está com uma transação mais antiga (Tj), a transação mais jovem (Ti) morre (aborta a si mesma) e é reiniciada mais tarde com o mesmo timestamp. Embora a segunda parte da definição da questão ("aborta Tj") possa parecer confusa ou uma imprecisão textual (pois no Wait-Die padrão a transação mais jovem Ti abortaria a si mesma, não a Tj), a característica principal que distingue "esperar e morrer" é que a transação mais antiga espera pela mais jovem, e não a aborta. As outras alternativas são claramente incorretas, tornando esta a opção mais adequada.
  • (E) Incorreta: Espera programada não é um termo padrão ou uma estratégia reconhecida de prevenção de deadlocks em bancos de dados.

Fonte: FGV MPRJ 2025 Analista do Ministério Público - Área Administrativa - Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho