Semáforos de Contagem (cont.)
Protocolo para solicitação de recursos:
- Decrementar o semáforo (N=N-1)
- Se Nɘ, colocar processo atual na posição -N da fila de espera, e aguardar
Protocolo para liberação de recursos após o uso:
- Se Nɘ, notificar processo na cabeça da fila de espera para que prossiga, e ajustar a fila apropriadamente
- Incrementar N (N=N+1)
Observações:
- Todas as operações envolvendo N ou a fila são feitas em modo exclusivo, através de um lock
- Num caso degenerado, com um único recurso e sem fila de espera, o semáforo é dito binário, tendo a mesma funcionalidade de lock