|
Variablen wurden zu dem Zweck geschaffen, daß sie Symbole für verschiedene Werte eines Grundbereiches sind. Für Berechnungen werden sie mit konkreten Werten belegt. Im Rechner erfolgt dieses durch Prozesse, die lesend oder schreibend auf die Variable zugreifen. Solche Prozesse werden kurz Leser und Schreiber genannt. Der Schreiber schreibt in den Speicherplatz der Variable einen neuen oder veränderten Wert z.B. nach einer Rechnung hinein. Der nächste Prozess liest den Wert und führt den nächsten Rechenschritt aus. Das Ergebnis wird nun wieder einer Variable übergeben, d.h. in den Speicher dafür geschrieben.
Solange das Programm ein
sequentielles ist, gibt es dabei keine Probleme. In der heutigen Industrie
und Verwaltung müssen Programme nebenläufige Abarbeitung von
Prozessen ermöglichen. Die Synchronisation von Prozessen kann stellvertretend
mit Leser/Schreiber - Problemen
für einen großen Teil der Schwierigkeiten erklärt werden.
Der Zugriff auf eine Variable
durch mehrere Leser oder Schreiber ist ein kritischer Abschnitt.
Gegenüber anderen kritischen
Abschnitten gibt es die Besonderheit, daß mehrere Leser gleichzeitig
auf die Variable zugreifen können aber immer nur ein Schreiber.
In welcher Reihenfolge dürfen
Leser und Schreiber zugreifen?
Illustrationen für dieses
Problem der Leser und Schreiber gibt es viele.
Einspurige Gleisführung
bei der Bahn, Einfahrten in Schleusen, einspurige Brücken und
schmale Straßen für
den Autoverkehr z.B. im Gebirge, schmale Treppen in Türmen wie
z.B. in Notre - Dame -Paris.
|