Na computação paralela, onde várias tarefas ou processos são...
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.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é C - Mutex.
A questão aborda o tema da sincronização entre processos em um sistema de computação paralela. Para resolver a questão, é necessário entender conceitos de concorrência e mecanismos que garantem o acesso controlado a recursos compartilhados entre múltiplos processos ou threads.
Mutex (Mutual Exclusion Object) é um método de sincronização que garante que apenas um processo ou thread possa acessar uma seção crítica de código por vez, evitando condições de corrida e garantindo a consistência dos dados.
Vamos agora analisar as alternativas:
A - Semáforo binário: O semáforo binário também é usado para sincronização e pode garantir exclusão mútua, mas é uma forma mais geral de controle de acesso que pode ser utilizado para outros propósitos além de proteger seções críticas específicas.
B - Barreiras: Barreiras são usadas para sincronizar processos ou threads em pontos específicos do código, forçando-os a esperar até que todos alcancem a barreira antes de continuar. Elas não são utilizadas para garantir acesso exclusivo a seções críticas.
C - Mutex: O mutex é o método correto para garantir que apenas um processo acesse uma seção crítica de código por vez. Ele bloqueia o acesso enquanto um processo está na seção crítica, liberando posteriormente para outro processo, garantindo assim a exclusão mútua.
D - Memória compartilhada: A memória compartilhada permite que múltiplos processos acessem a mesma região de memória, mas não fornece mecanismos de sincronização ou controle de acesso, sendo necessária a implementação de mecanismos adicionais como semáforos ou mutexes.
E - Filas de mensagens: As filas de mensagens são utilizadas para a comunicação entre processos através da troca de mensagens. Elas não são um método de sincronização para proteger seções críticas, mas sim para a coordenação e troca de informações entre processos.
Portanto, a alternativa C - Mutex é a que melhor responde à questão proposta, pois garante que apenas um processo possa acessar uma seção crítica de código por vez, assegurando a sincronização correta em um ambiente de computação paralela.
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
Na computação paralela, a sincronização entre processos é fundamental para garantir que tarefas cooperem e compartilhem recursos de maneira eficiente. Dentre as opções apresentadas, o método que permite que apenas um processo acesse uma seção crítica de código por vez é o Mutex (exclusão mútua). O Mutex é um mecanismo de sincronização que garante que apenas um processo ou thread possa entrar em uma região crítica do código simultaneamente, evitando condições de corrida e garantindo a integridade dos dados
Portanto, a resposta correta é a opção C - Mutex
A sincronização entre processos em um sistema de computação paralela é crucial para garantir que apenas um processo acesse uma seção crítica de código por vez, evitando condições de corrida e outros problemas de concorrência. Um dos métodos mais comuns e eficazes para alcançar isso é o uso de **Mutex (Mutual Exclusion)**.
Um Mutex é um mecanismo de sincronização que garante que apenas um thread ou processo possa acessar um recurso compartilhado ou uma seção crítica de código por vez. Quando um thread adquire o mutex, nenhum outro thread pode adquiri-lo até que o thread original libere o mutex.
Portanto, a opção correta é:
**C. Mutex**
Essa questão tem que ser revista!
Não gosto de ser rígido, mas creio que a alternativa B também esteja dentro do escopo das alternativas certas.
Binary Semaphore, também conhecido como semáforo binário, é um conceito utilizado em ciência da computação e programação para controlar o acesso a recursos compartilhados entre processos ou threads. É uma forma de sincronização que permite que apenas um processo ou thread tenha acesso ao recurso em determinado momento, evitando conflitos e garantindo a integridade dos dados.
Fonte: https://napoleon.com.br/glossario/o-que-e-binary-semaphore-2/
No semáfaro binário, por exemplo, assim que um recurso entre em sua região crítica, ele é trancado, para que nenhum outro processo possa entrar na mesma. Assim que o processo crítico acabe, o recurso é destrancado.
Fonte: https://deinfo.uepg.br/~alunoso/2022/SO/Semaforos/conceitos.html
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo