Semaphoren: Synchronisation und Philosophendiner
Semaphoren
Synchronisation ist ein Werkzeug, um das Problem der kritischen Abschnitte und Synchronisationsprobleme zu lösen. Eine Semaphore ist eine Integer-Variable, auf die nur durch zwei Operationen zugegriffen werden kann: WAIT und SIGNAL. Wenn ein Prozess den Wert verändert, können andere dies nicht gleichzeitig tun. Die Semaphore wird mit einem nicht-negativen Wert initialisiert. Durch WAIT (auch P genannt) wird der Wert vermindert; wird der Wert negativ, so wird der Prozess blockiert. Durch SIGNAL (auch V genannt) wird der Wert erhöht; wenn der Wert nicht mehr negativ ist, wird ein blockierter Prozess entsperrt.
Die Definition ist:
P(s) {
while (s <= 0) ; /* busy wait */
s--;
}
V(s) {
s++;
}
Betriebssysteme verwenden...