Perguntas e Respostas sobre Semaphores de SO # 1
Question: Explique os semáforos e escreva uma breve nota sobre eles.
Answer:Dijkestra propôs uma técnica significativa para gerenciar processos concorrentes para problemas complexos de exclusão mútua. Ele introduziu uma nova ferramenta de sincronização chamada Semaphore.
Os semáforos são de dois tipos -
Semáforo binário
Semáforo de contagem
O semáforo binário pode assumir os valores 0 e 1 apenas. O semáforo de contagem pode assumir valores inteiros não negativos.
Duas operações padrão, espera e sinal são definidas no semáforo. A entrada na seção crítica é controlada pela operação de espera e a saída de uma região crítica é controlada pela operação de sinal. As operações de espera e sinal também são chamadas de operações P e V. A manipulação do semáforo (S) ocorre da seguinte forma:
O comando de espera P (S) diminui o valor do semáforo em 1. Se o valor resultante se torna negativo, o comando P é atrasado até que a condição seja satisfeita.
O V (S) ou seja, a operação de sinais aumenta o valor do semáforo em 1.
A exclusão mútua no semáforo é aplicada em P (S) e V (S). Se vários processos tentarem P (S) simultaneamente, apenas um processo terá permissão para prosseguir e os outros processos estarão esperando. Essas operações são definidas como em -
P(S) or wait(S):
If S > 0 then
Set S to S-1
Else
Block the calling process (i.e. Wait on S)
V(S) or signal(S):
If any processes are waiting on S
Start one of these processes
Else
Set S to S+1
As operações do semáforo são implementadas como serviços do sistema operacional e, portanto, a espera e o sinal são de natureza atômica, ou seja, uma vez iniciada, a execução dessas operações não pode ser interrompida.
Portanto, o semáforo é um mecanismo simples, mas poderoso, para garantir a exclusão mútua entre processos simultâneos.