Wechselseitiger Ausschluß


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.

 


FH-K&oumlln hoch zurück weiter