Signaldrift for skærme:
- Signaloperationen for skærme er kendt som signal() eller notify()
- Den bruges til at underrette den ventende tråd om, at den delte ressource er blevet tilgængelig.
- Når signaloperationen kaldes, udløser monitoren låsen, og den ventende tråd får lov til at fortsætte.
Signaldrift for semaforer:
- Signaloperationen for semaforer er kendt som V() eller up()
- Det bruges til at øge værdien af semaforen.
- Når signaloperationen kaldes, øges semaforen med 1, hvilket indikerer, at en ressourceenhed mere er blevet tilgængelig.
Vigtige forskelle:
- Monitorer bruger en tilstandsvariabel for at sikre, at tråde kun venter på den specifikke ressource, de har brug for, mens semaforer bruger en binær semafor for at sikre, at kun én tråd kan få adgang til en delt ressource ad gangen.
- Skærme bruges til synkronisering mellem tråde, der får adgang til delte ressourcer, mens semaforer bruges til gensidig udelukkelse mellem tråde, der får adgang til delte ressourcer.