Questão de Sistemas Operacionais — Threads — FGV 2024
Sistemas Operacionais›Threads
Código
fg085324
Banca
FGV
Órgão
INPE
Ano
2024
Nível
Superior
Cargo
Tecnologista Júnior I - Ambiente de Supercomputação e HPC (High-Performance Computing)
Na computação paralela, onde várias tarefas ou processos são executados simultaneamente em diferentes núcleos de processador, a sincronização entre processos é essencial para garantir que essas tarefas cooperem e compartilhem recursos de forma eficiente e correta.No contexto de um sistema de computação paralela, assinale a opção que apresenta um método de sincronização entre processos que garante que apenas um processo possa acessar uma seção crítica de código por vez.
ASemáforo binário.
BBarreiras.
CMutex.
DMemória compartilhada.
EFilas de mensagens.
Revelar gabarito e comentário▾
GabaritoC — Mutex.
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”.
Sincronização entre Processos
Gabarito: letra C. O mutex (mutual exclusion) é o mecanismo clássico de sincronização que garante que apenas um processo/thread execute uma seção crítica por vez, por meio de operações de lock e unlock. Enquanto um semáforo binário também pode ser usado, o mutex é especificamente projetado para exclusão mútua, com semântica de proprietário (quem faz lock deve fazer unlock). As demais alternativas ou não garantem exclusão ou não são métodos de sincronização.
A questão cobra o conhecimento básico dos mecanismos de sincronização em sistemas operacionais. Vejamos cada alternativa:
Alternativa A — ❌ Incorreta
Embora um semáforo binário possa controlar acesso a uma seção crítica, sua semântica é mais geral (inicialização com 1, operações wait e signal). Diferente do mutex, o semáforo não possui conceito de proprietário, podendo ser usado para sincronização de eventos (ex.: produtor-consumidor). A banca considera o mutex como o método específico para exclusão mútua.
Alternativa B — ❌ Incorreta
Barreiras garantem que todos os processos/threads atinjam um determinado ponto antes de prosseguir. Não controlam acesso exclusivo a uma região de código; servem para coordenar fases de computação paralela.
Alternativa C — ✅ Correta ⟵ GABARITO
O mutex é a primitiva padrão para exclusão mútua. Sua operação lock bloqueia se outro thread já estiver na seção crítica; unlock libera. Implementa o conceito de posse (ownership), garantindo que apenas quem lock pode unlock, evitando erros comuns.
Alternativa D — ❌ Incorreta
Memória compartilhada é um mecanismo de comunicação entre processos (IPC), não de sincronização. Para coordenar o acesso concorrente à memória, é necessário um mutex ou semáforo.
Alternativa E — ❌ Incorreta
Filas de mensagens são usadas para troca de dados assíncrona entre processos. Não impedem acesso simultâneo a uma região crítica; a sincronização, se necessária, deve ser feita com outro mecanismo.
PEGA ESSA DICA!
Lembre-se: mutex = exclusão mútua (seção crítica); semáforo binário = sincronização geral (também serve para exclusão, mas é mais flexível); barreira = coordenar fases; memória compartilhada e filas de mensagens são IPC, não sincronização.