Wenn zwei Prozesse gleichzeitig schreibend auf die gleiche Datei
zugreifen wollen, kann dies zu Problemen führen. Es ist daher notwendig,
einen Sperrmechanismus einzuführen, der dies verhindert. Man initialisiert
dazu einen Semaphor mit dem Wert 1 und programmiert die beiden schreibenden
Prozesse so, daß sie zunächst eine P-Operation ausführen
müssen, bevor sie schreiben dürfen. Nachdem sie geschrieben haben,
läßt man sie dann eine V-Operation ausführen.
Das folgende Applet veranschaulicht dieses Problem:
Das rosafarbene Quadrat stellt den Semaphor dar. Durch Anklicken des Feldes
S0.INIT(1) wird der Semaphor initialisiert, und es erscheinen drei Zahlen. Die kleine Zahl
links oberhalb des Semaphors kennzeichnet seine Nummer. Die große Zahl rechts
innerhalb gibt seinen count-Wert an, und die kleine Zahl links unten sagt aus, wieviele
Prozesse sich im Warteraum des Semaphors befinden.
Nach der Initialisierung können die Programmschritte der beiden Prozesse, die grau
unterlegt und im unteren Feld dargestellt sind, angeklickt werden. Die einzelnen
Programmschritte können nur in der angegebenen Reihenfolge abgearbeitet werden. So
müssen die Schreiber immer erst die Funktion "S0.P(1)" ausführen, bevor sie
die "schreibt"-Funktion ausführen können. Anschließend muß
die V-Operation ausgeführt sein, bevor eine erneute P-Operation stattfinden kann.
Der zuletzt bearbeitete Programmschritt der Prozesse wird durch einen
kleinen Pfeil gekennzeichnet.
Das Feld, das zuletzt angeklickt wurde, wird gelb hinterlegt.