Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — VUNESP 2024

ProgramaçãoLinguagens de programação
Código
vu088395
Banca
VUNESP
Órgão
UNESP
Ano
2024
Nível
Superior
Cargo
V - - ssistente de Suporte Acadêmico assistente de suporte Acadêmico IV - Área de Atuação: Computação de Alto Desempenho e Computação em Nuvem
Um dos principais recursos do OpenMP são as diretivas de compilação. A diretiva#pragma omp criticaltem como função
  1. Aconsiderar todas as variáveis do bloco de código como sendo do tipo firstprivate.
  2. Bconsiderar todas as variáveis do bloco de código como sendo do tipo lastprivate.
  3. Crestringir o bloco de código para que apenas uma thread o execute por vez.
  4. Drestringir o bloco de código para que todas as threads comecem a execução ao mesmo tempo.
  5. Eutilizar a cláusula reduction no bloco de código.
Revelar gabarito e comentário

GabaritoC — restringir o bloco de código para que apenas uma thread o execute por vez.

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”.

OpenMP critical directive

Gabarito: letra C. A diretiva #pragma omp critical define uma região crítica onde apenas uma thread por vez pode executar o bloco, garantindo exclusão mútua (seção crítica). As demais threads que chegarem a esse ponto ficarão bloqueadas até que a thread atual saia da região. É um mecanismo de sincronização para evitar condições de corrida.

  1. 1criticalUma thread por vez
  2. 2barrierTodas esperam
  3. 3atomicOperação indivisível
  4. 4reductionCombina resultados
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

firstprivate é uma cláusula que faz cada thread ter uma cópia privada inicializada com o valor original da variável fora da região paralela. Não é o papel da diretiva critical.

Alternativa B — ❌ Incorreta

lastprivate é uma cláusula que copia o valor da última thread que executa uma região paralela para a variável original. Não está relacionado à diretiva critical.

Alternativa C — ✅ Correta ⟵ GABARITO

Conforme a especificação do OpenMP, a diretiva critical restringe a execução do bloco a uma thread por vez. É a definição correta.

Alternativa D — ❌ Incorreta

A diretiva critical não sincroniza o início de todas as threads; ela impede execução concorrente dentro do bloco. Para sincronizar o início, usa-se barrier ou outras construções.

Alternativa E — ❌ Incorreta

reduction é uma cláusula para combinar valores de variáveis privadas de forma segura. A diretiva critical não é sobre redução, mas sobre exclusão mútua.

NÃO CAIA NESSA!

Lembre-se: critical = seção crítica → apenas uma thread por vez. Não confunda com barrier (espera todas as threads), com atomic (operação indivisível em memória) ou com reduction (combinação de resultados).

Gabarito: letra C.

Link permanente: /questoes/vu088395