What is one advantage of using monitors over using semaphores?
(a) Mutual exclusion in monitor is automatic while mutual exclusion in semaphore needs to be coded explicitly.
(b) Shared variables are global to all processes in the monitor while shared variables are hidden in semaphores.
(c) Synchronisation in monitors is provided by condition variables while there are no condition variables in semaphores.
(d) Access to the monitor is through protected shared variables while access to shared variables in semaphores is not protected.