Question 4
Semaphorenzähler: Bedeutung von positiven und negativen Werten
Der Wert des Semaphoren-Zählers gibt Auskunft über den Zustand der Ressource:
-
Positiver Wert ➜ Anzahl verfügbarer Ressourcen
-
Null ➜ Keine Ressource verfügbar, aber noch kein Thread wartet
-
Negativer Wert ➜ Anzahl der wartenden Threads
📌 Beispiel: Zugriff auf mehrere identische Drucker
-
Es gibt 3 Drucker.
-
Der Semaphor wird mit dem Wert 3 initialisiert.
Ablauf:
-
Solange der Zähler > 0 ist, dürfen Threads sofort auf einen Drucker zugreifen (Zähler wird bei Zugriff dekrementiert).
-
Sobald der Zähler = 0 ist, sind alle Drucker belegt – weitere Threads müssen warten.
-
Wenn weitere Threads Zugriff anfordern, wird der Zähler negativ – z. B. -2 bedeutet: 2 Threads warten auf einen freien Drucker.