Bolt-Variable
# Bolt-Variable

Bolt-Variablen dienen in der Informatik zur Abstimmung des konkurrierenden Zugriffs auf Betriebsmittel. Der Unterschied zum häufig verwendeten Semaphor besteht darin, dass die Bolt-Variable drei statt zwei Zustände annehmen kann und damit eine flexiblere Reservierung von Ressourcen ermöglicht, beispielsweise durch Realisierung eines Read-Write-Locks. Der Name ist vom englischen Wort bolt (Riegel) abgeleitet.

## Beschreibung

Bolt-Variablen werden bei der Programmierung zur Prozesssynchronisation eingesetzt, also zur Lösung von Aufgaben, bei denen die parallele Ausführung mehrerer Prozesse oder Threads eine zeitliche Abstimmung der Ausführungen erfordert. Sie beschreiben den Belegungszustand eines Betriebsmittels. Dabei werden drei Zustände unterschieden:

* nicht belegt (A)
* belegt (B)
* Belegung nicht möglich (C)

Regeln zur Belegung:

* Eine Änderung in Zustand B kann vorgenommen werden, wenn sich die Bolt-Variable im Zustand A befindet. Zustand B entspricht einem exklusiven Zugriff beziehungsweise einem Write-Lock.
* Zustand C kann erfolgreich eingenommen werden, wenn die Variable im Zustand A oder C ist. Damit können mehrere Prozesse parallel das reservierte Betriebsmittel verwenden ohne von potentiell schreibenden Zugriffen (Zustand B) gestört zu werden. Damit kann ein Read-Lock realisiert werden.

## Praxis

In Mainframe-Betriebssystemen wie z. B. z/OS von IBM stehen diese Dienste unter anderen Namen zur Verfügung. Dort wird die Bezeichnung Enqueue / Dequeue mit 'shared'- oder 'exclusive'-Option verwendet.

