Obecnie uczęszczam na kurs programowania równoległego na moim uniwersytecie, a ostatnio zaczęliśmy rozmawiać o koncepcji monitora. Chociaż rozumiem potrzebę wzajemnego wykluczenia, nie rozumiem, dlaczego miałbym do tego używać monitora.
Jak rozumiem, monitor gwarantuje, że dokładnie jeden proces lub żaden proces nie znajduje się w sekcji krytycznej przez cały czas. Dokładnie to możemy osiągnąć semaforem. Ponadto wdrażamy monitory (lub przynajmniej jedną możliwością ich wdrożenia) z semaforami.
Dlaczego więc miałbym implementować coś, co robi dokładnie to samo, co semafor z semaforem? Jakie świadczenia otrzymam?