Na computação paralela, onde várias tarefas ou processos são...

Próximas questões
Com base no mesmo assunto
Q2520851 Sistemas Operacionais
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.
Alternativas

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