Question 5
P- und V-Operationen bei Semaphoren
Die P- (Proberen) und V-Operationen (Verhogen) sind atomar, das heißt:
Sie werden ununterbrechbar als Einheit ausgeführt und können nicht durch andere Threads unterbrochen werden.
P-Operation (Wartet / dekrementiert)
-
Verringert den Zählerwert um 1.
-
Wenn der neue Wert < 0 ist:
➜ Der ausführende Thread wird blockiert und in die Warteschlange aufgenommen.
-
Wenn der Wert ≥ 0 bleibt:
➜ Der Thread kann weiterlaufen.
V-Operation (Freigabe / inkrementiert)
-
Erhöht den Zählerwert um 1.
-
Wenn der neue Wert ≤ 0 ist:
➜ Ein wartender Thread wird aus der Warteschlange entnommen und freigegeben.
Atomarität
Atomare Operationen sind nicht unterbrechbar und werden entweder vollständig ausgeführt oder gar nicht.
➡️ Bei Semaphoren bedeutet das:
Das Ändern des Zählers und das Blockieren oder Freigeben eines Threads passieren immer zusammen – ohne Zwischenzustand oder Eingriff anderer Threads.