Operação de sinal para monitores: - A operação do sinal para monitores é conhecida como
signal() ou
notificar() - É usado para notificar o thread em espera de que o recurso compartilhado está disponível.
- Quando a operação do sinal é chamada, o monitor libera o bloqueio e a thread em espera pode prosseguir.
Operação de sinal para semáforos: - A operação de sinal para semáforos é conhecida como
V() ou
para cima() - É utilizado para incrementar o valor do semáforo.
- Quando a operação de sinal é chamada, o semáforo é incrementado em 1, indicando que mais uma unidade de recurso ficou disponível.
Principais diferenças: - Os monitores usam uma
variável de condição para garantir que os threads esperem apenas pelo recurso específico de que precisam, enquanto os semáforos usam um
semáforo binário para garantir que apenas um thread possa acessar um recurso compartilhado por vez.
- Monitores são usados para
sincronização entre threads que acessam recursos compartilhados, enquanto semáforos são usados para
exclusão mútua entre threads que acessam recursos compartilhados.