Ich besuche derzeit den gleichzeitigen Programmierkurs an meiner Universität und wir haben kürzlich begonnen, über das Konzept eines Monitors zu sprechen. Obwohl ich die Notwendigkeit des gegenseitigen Ausschlusses verstehe, verstehe ich nicht, warum ich dafür einen Monitor verwenden würde.
So wie ich es verstehe, garantiert ein Monitor, dass sich zu jeder Zeit genau ein oder kein Prozess im kritischen Bereich befindet. Genau das können wir mit einem Semaphor erreichen. Darüber hinaus implementieren wir Monitore (oder zumindest eine Möglichkeit, sie zu implementieren) mit Semaphoren.
Warum sollte ich also etwas implementieren, das genau dasselbe tut wie ein Semaphor mit einem Semaphor? Welche Vorteile bekomme ich?