GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Erzwingt das Dateisystem unter Linux eine Serialisierung, was bedeutet, dass zu einem bestimmten Zeitpunkt nur eine Änderung am Dateisystem tatsächlich erfolgt?

https://unix.stackexchange.com/a/12818/674
sagt

Sperrdateien werden von Programmen verwendet, um sicherzustellen, dass zwei (gut benommene) getrennte
Instanzen eines Programms, die gleichzeitig auf einem
System ausgeführt werden können, nicht gleichzeitig auf etwas anderes zugreifen. Die Idee ist
bevor das Programm auf seine Ressource zugreift, prüft es das Vorhandensein einer
Sperrdatei, und wenn die Sperrdatei existiert, gibt es entweder einen Fehler aus oder wartet darauf, dass
sie verschwindet. Wenn sie nicht existiert, erstellt das Programm, das die Ressource
„akquirieren“ möchte, die Datei, und dann warten andere Instanzen, die
später auf sie stoßen könnten, darauf, dass dieser Prozess damit abgeschlossen ist. Dies setzt natürlich voraus, dass das Programm, das die Sperre „akquiriert“, sie tatsächlich
freigibt und nicht vergisst, die Sperrdatei zu löschen.

Dies funktioniert, weil das Dateisystem unter allen UNIX-ähnlichen Betriebssystemen
die Serialisierung erzwingt, was bedeutet, dass zu einem bestimmten Zeitpunkt nur eine Änderung am
Dateisystem tatsächlich stattfindet
. So ähnlich wie Sperren bei
Datenbanken und so.

Was bedeutet der letzte Absatz?

Ist es richtig, dass unter Linux eine Datei gleichzeitig von zwei Prozessen geschrieben werden kann und das Betriebssystem keine implizite Synchronisierung bietet, sondern eine explizite Synchronisierung von Programmierern erfordert?

Ist die Sperrdatei eine explizite Möglichkeit, den Zugriff auf dieselbe Datei durch mehrere Prozesse zu synchronisieren?

Danke.

Akzeptierte Antwort:


Linux
  1. Ändern Sie die Kernel-Version auf einem Linux-Cloud-Server mithilfe des Rettungsmodus

  2. 4 Tools zum Herunterladen einer beliebigen Datei über die Befehlszeile in Linux

  3. Was ist der Zweck der .bash_profile-Datei im Benutzer-Home-Verzeichnis in Linux

  4. UID/GID nur eines Threads in Linux ändern

  5. Wie kann die Ausgabe des Zeitbefehls in eine Datei unter Linux umgeleitet werden?

So stellen oder ändern Sie die Zeitzone in Linux

Befehl, der Linux dazu zwingt, den Cache einer Datei auf einer NFS-Freigabe zu leeren?

Linux – Wie überprüft man die Verzeichnisstrukturinformationen einer Unix/Linux-Datei?

Wie ändere ich das Partitionsschema auf Ihrem Linux-Server?

Linux Mint vs. Ubuntu – Welches ist das Beste für Sie?

Der Linux-Befehl sed ändert die Zieldatei nicht