Universelle Monitore
摘要
Der Nachweis der Äquivalenz von Semaphor- und Monitorkonzept sowie die Details zur Implementierung des Monitorkonzepts im vorigen Kapitel lassen sich – wie der Staffelstab-Algorithmus – als Vorlage zur Konstruktion einer universellen Synchronisationsklasse verwenden, den in diesem Kapitel entwickelten universellen Monitoren. Es geht aber nicht um die Protokolle zum Schutz kritischer Abschnitte, sondern um die Gewährleistung des gegenseitigen Ausschlusses von nebenläufigen Prozessen bei ihren Operationen auf gemeinsam genutzten Daten. Dabei soll es möglich sein, dass die Funktionen nur dann ausgeführt werden können, wenn bestimmte Bedingungen erfüllt sind, die – wie die Anweisungen – evtl. von den Daten abhängen. Damit sind auch in C, Java und Go, die – streng genommen – das Monitorkonzept nicht unterstützen, Monitorlösungen auf sehr einfache Weise möglich, wofür hier viele bereits bekannte Beispiele gegeben werden: Semaphore, das Konto, beschränkte Puffer und der schlafende Barbier, Barrierensynchronisation, das Leser-Schreiber- und das Links-Rechts-Problem, die speisenden Philosophen und die Zigarettenraucher.