Datei sperren - Wähle ein Puzzle, um es zu lösen

Die Dateisperrung ist ein Mechanismus, der den Zugriff auf eine Computerdatei einschränkt, indem nur ein Benutzer oder Prozess in einer bestimmten Zeit darauf zugreifen kann . Die Systeme implementieren das Sperren , um das klassische Szenario der laufenden Aktualisierung zu verhindern, das ein typisches Beispiel für eine Race Condition darstellt, indem die Serialisierung von Aktualisierungsprozessen auf eine bestimmte Datei erzwungen wird. Das folgende Beispiel veranschaulicht das Problem der laufenden Aktualisierung: Prozess A liest einen Kundendatensatz aus einer Datei mit Kontoinformationen, einschließlich Kontostand und Telefonnummer des Kunden. Prozess B liest nun den gleichen Datensatz aus der gleichen Datei, so dass er eine eigene Kopie hat. Prozess A ändert den Kontostand in seiner Kopie des Kundendatensatzes und schreibt den Datensatz zurück in die Datei. Prozess B, der in seiner Kopie des Kundendatensatzes immer noch den ursprünglichen veralteten Wert für den Kontostand aufweist, aktualisiert den Kontostand und schreibt den Kundendatensatz in die Datei zurück . Prozess B hat nun seinen veralteten Kontostandswert in die Datei geschrieben, wodurch die von Prozess A vorgenommenen Änderungen verloren gehen . Die meisten Betriebssysteme unterstützen das Konzept der Datensatzsperrung, was bedeutet, dass einzelne Datensätze in einer bestimmten Datei gesperrt werden können, wodurch die Anzahl der gleichzeitigen Aktualisierungsprozesse erhöht wird. Bei der Datenbankwartung wird die Datei gesperrt, wodurch der Zugriff auf die gesamte physische Datei, die einer Datenbank zugrunde liegt, serialisiert werden kann . Obwohl dies verhindert, dass ein anderer Prozess auf die Datei zugreift, kann dies effizienter sein als das individuelle Sperren einer großen Anzahl von Bereichen in der Datei, indem der Aufwand für das Erfassen und Freigeben jeder Sperre entfernt wird.