Os semáforos são usados em programação concorrente para evit...

Próximas questões
Com base no mesmo assunto
Ano: 2011 Banca: CESGRANRIO Órgão: BR Distribuidora
Q1235594 Sistemas Operacionais
Os semáforos são usados em programação concorrente para evitar que dois ou mais processos acessem sua seção crítica simultaneamente. Assim, os semáforos são usados para garantir 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: A - a exclusão mútua, onde cada processo deverá sinalizar imediatamente antes e, imediatamente após, usar um recurso comum a ambos.

Para entender por que a alternativa A é a correta, precisamos discutir o conceito de semáforos no contexto de programação concorrente. Os semáforos são uma técnica de sincronização utilizada para controlar o acesso a recursos compartilhados em um ambiente onde múltiplas threads ou processos estão sendo executados simultaneamente. O principal objetivo do uso de semáforos é garantir a exclusão mútua, o que significa que apenas um processo ou thread pode acessar um recurso compartilhado - a seção crítica - por vez.

A exclusão mútua é essencial para prevenir condições de corrida (race conditions), onde os resultados da execução dependem da ordem não determinística na qual as instruções são executadas. Se dois processos tentassem acessar e modificar um recurso compartilhado ao mesmo tempo sem exclusão mútua, isso poderia levar a inconsistências e erros.

A operação de um semáforo geralmente envolve duas ações principais: wait (ou P, do holandês "proberen", que significa testar) e signal (ou V, de "verhogen", que significa incrementar). Um processo deve executar a operação wait para entrar em sua seção crítica e a operação signal ao sair. A operação wait verifica se o semáforo permite o acesso à seção crítica, potencialmente fazendo o processo esperar se o acesso não for permitido. A operação signal libera o semáforo, permitindo que outro processo entre em sua seção crítica, se estiver esperando.

As demais alternativas não são apropriadas porque:

  • B - Os pipes são mecanismos de comunicação entre processos e não têm relação direta com semáforos ou exclusão mútua.
  • C - O PID é a identificação única do processo e não está relacionado ao controle de acesso a recursos compartilhados.
  • D - Semáforos não garantem por si só que não haverá deadlock, pois isso depende de como são usados.
  • E - A gestão de processos por uma máquina virtual é um conceito distinto do controle de acesso a recursos compartilhados em programação concorrente.

Portanto, a exclusão mútua é precisamente o que os semáforos buscam assegurar, e é por isso que a alternativa A está correta.

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

Semáforos:

- Forneçem um mecanismo eficaz para a sincronização de processos;

- Usá-los incorretamente pode resultar em erros de timing difíceis de detectar.

- Um semáforo é uma variável inteira que, exceto na inicialização, é acessada apenas por meio de duas operações atômicas padrão: wait e signal

- É uma solução de Exclusão Mútua com Bloqueio

- Os semáforos podem ser classificados como: binários e contadores.

Alternativa: A

Semáforo é um ecanismo de sincronização que permite implementar a exclusão mútua sem a deficiência da espera ocupada é o "semáforo". Especificamente, um semáforo binário (ou semáforo mutex) é um tipo de semáforo que pode ter apenas dois valores: 0 e 1. Ele é usado para garantir que apenas um processo ou thread possa acessar uma seção crítica de código por vez.

a-

In concurrent programming, semaphores are a synchronization mechanism used to control access to shared resources and coordinate the execution of multiple threads or processes. They provide a way to enforce mutual exclu

https://en.wikipedia.org/wiki/Semaphore_(programming)

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo