A computação paralela e concorrente permite o melhor aprovei...
I- Uma condição de corrida (race condition) ocorre quando o resultado final de uma operação depende da ordem imprevisível de execução de múltiplas threads sobre um recurso compartilhado.
II- Threads criadas dentro de um mesmo processo compartilham o mesmo espaço de endereçamento e recursos, como arquivos abertos, o que facilita a comunicação, mas exige sincronização.
III- O paralelismo é o conceito de gerenciar múltiplas tarefas que podem ou não ser executadas ao mesmo tempo, enquanto a concorrência exige obrigatoriamente hardware com múltiplos núcleos.
IV- O uso de Mutex (Mutual Exclusion) garante que apenas uma thread por vez possa acessar uma seção crítica do código, prevenindo inconsistências de dados.
Assinale a alternativa que apresenta somente as proposições CORRETAS:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: A
Fundamento decisivo: O ponto decisivo era a assertiva III, que troca os conceitos de concorrência e paralelismo ao afirmar que concorrência exige múltiplos núcleos. Por isso, a única alternativa compatível com as proposições corretas é a A.
- Se a assertiva disser que concorrência exige múltiplos núcleos, elimine-a: concorrência pode ocorrer por alternância de execução em um único núcleo.
- Se a assertiva tratar paralelismo como mero gerenciamento de várias tarefas, desconfie: paralelismo é execução simultânea.
- Para threads do mesmo processo, verifique se a afirmação reconhece compartilhamento de espaço de endereçamento e recursos; isso tende a indicar correção.
- Quando a assertiva sobre mutex se limitar à exclusão mútua em seção crítica, ela está alinhada ao conceito cobrado.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
❌ Incorreta.
Está invertido.
✔ Concorrência = capacidade de lidar com múltiplas tarefas, mesmo em um único núcleo (intercalando execução).
✔ Paralelismo = execução simultânea real, exige múltiplos núcleos ou múltiplos processadores.
I – Race Condition
Uma condição de corrida ocorre quando o resultado final depende da ordem imprevisível de execução de múltiplas threads sobre um recurso compartilhado.
✔ Correta.
Definição clássica.
Se duas threads acessam/modificam um recurso compartilhado sem sincronização, o resultado depende da ordem de execução.
II – Threads compartilham espaço de endereçamento
Threads dentro do mesmo processo compartilham o mesmo espaço de memória e recursos como arquivos abertos.
✔ Correta.
Threads compartilham:
Heap
Variáveis globais
Arquivos abertos
Recursos do processo
Mas cada thread possui:
Stack própria
Registradores próprios
Isso facilita comunicação, mas exige sincronização.
III – Paralelismo vs Concorrência
O paralelismo é gerenciar múltiplas tarefas que podem ou não ser executadas ao mesmo tempo, enquanto a concorrência exige obrigatoriamente múltiplos núcleos.
❌ Incorreta.
Está invertido.
Concorrência → Gerenciamento de múltiplas tarefas que podem não executar ao mesmo tempo (intercaladas).
Paralelismo → Execução simultânea real (exige múltiplos núcleos).
Concorrência não exige múltiplos núcleos.
IV – Mutex
O uso de Mutex garante que apenas uma thread por vez acesse a seção crítica.
✔ Correta.
Mutex implementa exclusão mútua.
Previne condições de corrida.
✅ Gabarito
Corretas:
✔ I
✔ II
✔ IV
Alternativa correta:
A
Se a questão misturar:
Concorrência ≠ Paralelismo
Race condition
Mutex / Semáforo
Seção crítica
Sempre lembre:
Concorrência pode existir em single-core.
Paralelismo exige multi-core.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo