Ed
há 20 horas
Vamos analisar as alternativas com base no contexto da concorrência em Machine Learning: a) Correta. Threads compartilham o mesmo espaço de memória, o que minimiza a sobrecarga de memória e facilita a comunicação rápida entre elas, essencial para manipular grandes datasets e parâmetros do modelo. Porém, isso exige mecanismos rigorosos de sincronização para evitar problemas como condições de corrida. b) Incorreta. Múltiplos processos não compartilham variáveis globais diretamente, e sim cada processo tem seu próprio espaço de memória, o que dificulta o compartilhamento sem mecanismos de comunicação interprocessos. Além disso, o uso de semáforos ou monitores é necessário para sincronização em multithreading, não em múltiplos processos. c) Incorreta. A separação completa dos espaços de memória é característica de múltiplos processos, não de multithreading. Multithreading compartilha o mesmo espaço de memória. d) Incorreta. A complexidade ciclomática pode aumentar em multithreading devido à sincronização, e o teste baseado em cenário não ignora a lógica interna, especialmente em sistemas concorrentes. e) Incorreta. A granularidade da concorrência (thread vs. processo) é relevante para desempenho, manutenibilidade e esforço de teste, especialmente em sistemas computacionalmente intensivos como ML. Portanto, a alternativa correta é: a) porque a sobrecarga de recursos de memória é minimizada drasticamente quando as threads operam dentro do mesmo espaço de endereçamento, facilitando a comunicação e a transformação rápida de grandes volumes de dados compartilhados, como os datasets e parâmetros do modelo, embora exija mecanismos rigorosos de sincronização para manter a integridade dos dados e evitar condições de corrida.