A computação paralela e concorrente permite o melhor aprovei...

Próximas questões
Com base no mesmo assunto
Q3832917 Sistemas Operacionais
A computação paralela e concorrente permite o melhor aproveitamento de processadores multi-core. Analise as afirmativas a seguir sobre threads, processos e condições de corrida.

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: 
Alternativas

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.

Tema central: Concorrência e processos
Análise das alternativas
A
Certa
A alternativa A está correta porque reúne as proposições válidas e exclui a incorreta. A I descreve corretamente a condição de corrida como dependência do resultado da ordem imprevisível de execução sobre recurso compartilhado. A II está correta ao indicar que threads do mesmo processo compartilham espaço de endereçamento e recursos, o que facilita a comunicação e exige sincronização. A IV também está correta, pois o mutex garante exclusão mútua em seção crítica. Já a III está errada ao inverter concorrência e paralelismo e ao impor, de forma indevida, a exigência de múltiplos núcleos para concorrência.
B
Errada
Está errada porque inclui a assertiva III. O erro de III é conceitual: ela inverte concorrência e paralelismo e ainda afirma indevidamente que concorrência exige hardware com múltiplos núcleos.
C
Errada
Está errada por dois motivos concretos: inclui III, que está incorreta pela troca entre concorrência e paralelismo, e exclui IV, que está correta porque mutex garante exclusão mútua em seção crítica.
D
Errada
Está errada porque contém III, que é falsa, e ainda deixa de fora II e IV, ambas corretas. II está correta pelo compartilhamento de espaço de endereçamento e recursos entre threads do mesmo processo; IV está correta pela função de exclusão mútua do mutex.
E
Errada
Está errada por incompletude. Embora II e IV estejam corretas, a alternativa exclui a assertiva I, que também está correta ao definir condição de corrida como dependência da ordem imprevisível de execução sobre recurso compartilhado.
Pegadinha da questão
A pegadinha real foi trocar os conceitos de concorrência e paralelismo e associar concorrência, de forma errada, à necessidade de hardware multi-core.
Dica para questões semelhantes
  • 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