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

  • NullKeine 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:

  1. Solange der Zähler > 0 ist, dürfen Threads sofort auf einen Drucker zugreifen (Zähler wird bei Zugriff dekrementiert).

  2. Sobald der Zähler = 0 ist, sind alle Drucker belegt – weitere Threads müssen warten.

  3. Wenn weitere Threads Zugriff anfordern, wird der Zähler negativ – z. B. -2 bedeutet: 2 Threads warten auf einen freien Drucker.