Considere as afirmações abaixo e selecione a alternativa correta. I. "Coleta de lixo distribuída: um objeto é considerado lixo se não houver mais quaisquer funções específicas que ele possa desempenhar;" II. "Detecção de deadlock distribuída: um deadlock distribuído ocorre quando um processo 'A' aguarda até que outro processo envie uma mensagem comunicando que foi finalizado, e em que há um relacionamento de 'espera' até a conclusão do processo que está interagindo com o processo 'A'"; III. "Detecção de terminação distribuída: o problema aqui é como detectar que um algoritmo distribuído foi finalizado."
Questão
Considere as afirmações abaixo e selecione a alternativa correta.
I. "Coleta de lixo distribuída: um objeto é considerado lixo se não houver mais quaisquer funções específicas que ele possa desempenhar;"
II. "Detecção de deadlock distribuída: um deadlock distribuído ocorre quando um processo 'A' aguarda até que outro processo envie uma mensagem comunicando que foi finalizado, e em que há um relacionamento de 'espera' até a conclusão do processo que está interagindo com o processo 'A'";
III. "Detecção de terminação distribuída: o problema aqui é como detectar que um algoritmo distribuído foi finalizado."
Alternativas
A) Somente as afirmações II e III são corretas.
B) Somente as afirmações I e III são corretas.
C) Todas as afirmações são corretas.
D) Somente as afirmações I e II são corretas.
E) Todas as afirmações são incorretas.
Explicação
Vamos analisar cada afirmação.
I. Coleta de lixo distribuída A ideia central de coleta de lixo (inclusive em sistemas distribuídos) é identificar objetos inacessíveis/inutilizáveis, isto é, objetos que não podem mais ser usados por nenhum processo e, portanto, não podem mais desempenhar função útil no sistema. Embora a definição mais técnica costume falar em “inacessibilidade a partir de raízes (roots)”, a frase apresentada (“não houver mais quaisquer funções específicas que ele possa desempenhar”) captura corretamente o sentido de “objeto sem utilidade/sem possibilidade de uso”. Portanto, I está correta.
II. Detecção de deadlock distribuída Deadlock distribuído é, em essência, a existência de um ciclo de espera (wait-for) entre processos (ou entre processos e recursos), frequentemente modelado por um wait-for graph. A afirmação descreve deadlock como “aguardar mensagem comunicando que foi finalizado” e “espera até a conclusão do processo que está interagindo”, o que restringe indevidamente o conceito e não caracteriza corretamente deadlock em geral (deadlock não é, por definição, esperar “mensagem de finalização”; pode envolver recursos, locks, canais, etc.). Assim, II está incorreta.
III. Detecção de terminação distribuída A definição está correta: detecção de terminação distribuída trata de como detectar que um algoritmo distribuído terminou (por exemplo, ausência de atividades e de mensagens em trânsito). Portanto, III está correta.
Conclusão: estão corretas I e III בלבד.
Alternativa correta: (B).