Linuxのファイルシステムはシリアライゼーションを適用します(つまり、特定の時間に実際にファイルシステムへの変更が1つだけ発生することを意味します)。

Linuxのファイルシステムはシリアライゼーションを適用します(つまり、特定の時間に実際にファイルシステムへの変更が1つだけ発生することを意味します)。

https://unix.stackexchange.com/a/12818/674 説明する

プログラムは、ロックファイルを使用して、システム上で同時に実行できる2つの(うまく機能する)別々のプログラムインスタンスが同時に他のコンテンツにアクセスするのを防ぎます。プログラムがリソースにアクセスする前にロックファイルが存在するかどうかを確認し、ロックファイルがある場合はエラーが出力されるか消えるまで待つのがアイデアです。ファイルが存在しない場合、リソースを「インポートする」プログラムがファイルを生成し、後で会うことができる他のインスタンスは、プロセスが完了するのを待ちます。もちろん、これはロックを「取得」したプログラムが実際にロックを解除し、ロックファイルを削除することを忘れていないと仮定します。

これはうまくいきます。すべてのUNIXファミリオペレーティングシステムのファイルシステムは強制的にシリアル化されます。これは、ファイルシステムへの変更が実際に与えられた時間に一度だけ発生することを意味します。。データベースロックなどに似ています。

最後の段落はどういう意味ですか?

Linuxでは、両方のプロセスが同時にファイルを書き込むことができ、オペレーティングシステムは暗黙的な同期を提供しませんが、プログラマの明示的な同期を必要とします。これは正しいですか?

ファイルをロックすることは、同じファイルへの複数のプロセスのアクセスを同期させる明示的な方法ですか?

ありがとうございます。

ベストアンサー1

おすすめ記事