Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — FGV 2023

Algoritmos e Estrutura de DadosAlgoritmos
Código
fg072427
Banca
FGV
Órgão
TJ-RN
Ano
2023
Nível
Superior
Cargo
Analista Judiciário - Tecnologia de Informação – Análise de Sistemas
Em bancos de dados, especialmente quando distribuídos, surge o problema de garantir que uma certa transação seja processada corretamente quando tem efeitos em diferentes sistemas, ou nós.Um dos algoritmos utilizados nesse tipo de transação é conhecido originalmente como:
  1. ACommon knowledge;
  2. BLock/unlock;
  3. CMutual exclusion;
  4. DTransaction Logs;
  5. ETwo-phase commit.
Revelar gabarito e comentário

GabaritoE — Two-phase commit.

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”.

Transações Distribuídas: Algoritmo Two-Phase Commit

Gabarito: letra E. O algoritmo clássico para garantir atomicidade em transações distribuídas que envolvem múltiplos nós é o Two-Phase Commit (2PC). Ele coordena os participantes em duas fases (preparação e confirmação/aborto) para assegurar que todos os nós concordem com o resultado, evitando inconsistências.

A banca testa o conhecimento do algoritmo corretamente associado ao problema de transações distribuídas. As demais alternativas representam conceitos relacionados a outras áreas (exclusão mútua, logs de transação, etc.), mas não são o algoritmo em questão.

  1. 1Coordenador pergunta: pronto?
  2. 2Participantes respondem: sim/não
  3. 3Se todos sim → commit
  4. 4Se algum não → abort
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Common knowledge (conhecimento comum) é um conceito de lógica epistêmica e teoria dos jogos, não um algoritmo para transações distribuídas. Não se aplica ao cenário descrito.

Alternativa B — ❌ Incorreta

Lock/unlock (bloqueio/desbloqueio) é uma técnica de controle de concorrência (como em semáforos ou locks de banco de dados) para evitar conflitos de acesso, mas não é o algoritmo específico para coordenar transações distribuídas entre nós.

Alternativa C — ❌ Incorreta

Mutual exclusion (exclusão mútua) é um princípio para garantir que apenas um processo acesse um recurso por vez, comum em sistemas operacionais, mas não é o algoritmo de coordenação de transações distribuídas.

Alternativa D — ❌ Incorreta

Transaction Logs (logs de transação) são registros das operações realizadas, usados para recuperação de falhas, mas não são um algoritmo de coordenação atômica entre nós.

Alternativa E — ✅ Correta ⟵ GABARITO

Two-Phase Commit (2PC) é o algoritmo padrão para garantir atomicidade em transações distribuídas. Na primeira fase, o coordenador pergunta a todos os participantes se estão prontos para confirmar; na segunda, decide por commit ou abort com base nas respostas. Esse protocolo resolve o problema de consistência descrito no enunciado.

PEGA ESSA DICA!

Para questões sobre transações distribuídas, decore os três protocolos principais: Two-Phase Commit (2PC), Three-Phase Commit (3PC) e o Protocolo de Compromisso Atômico (Atomic Commitment). O 2PC é o mais cobrado. Lembre-se: ele pode sofrer bloqueio se o coordenador falhar, mas é a base do assunto.

Gabarito: letra E.

Link permanente: /questoes/fg072427