Questão de Algoritmos e Estrutura de Dados — Algoritmos — FGV 2023
Algoritmos e Estrutura de Dados›Algoritmos
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:
ACommon knowledge;
BLock/unlock;
CMutual exclusion;
DTransaction Logs;
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”.
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.
1Coordenador pergunta: pronto?
2Participantes respondem: sim/não
3Se todos sim → commit
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.