Geef het verschil aan tussen de signaleringsbenaderingen signal-and-wait en signal-and-continue


  • - signal-and-wait: het gesignaleerde proces (het proces op kop van de wait-queue) neemt onmiddellijk de monitor over en het proces dat de signal-operatie uitvoert krijgt de status waiting. Dit proces wacht totdat het gesignaleerde proces de monitor verlaat of opnieuw gaat wachten en kan dan de monitor weer overnemen. Deze benadering wordt ook wel de Hoare-benadering genoemd (s afkomstig van Tony Hoare).
    - signal-and-continue: het gesignaleerde proces wacht totdat het proces de signal-operatie uitvoert de monitor verlaat of opnieuw gaat wachten. Het gesignaleerde proces strijdt met andere wachtende procesen om de monitor. Het is dus niet gegarandeerd dat dit proces na de signal-operatie als eerste de monitor krijgt (deze benadering gebruikt Java).
    Bij signal-and-wait kan het gesignaleerde proces ervan uit gaan dat de status van de monitor zoals die was ten tijde van de signal-operatie , niet is gewijzigd. Bij signal-and-continue kan de status zoals die was ten tijde van de signal-operatie zijn gewijzigd. Het gesignaleerde proces moet dus opnieuw de status van de monitor controleren

    Rapporteer Plaats commentaar