Unixシステムで一般的に使用される推奨ファイルロックは何ですか?

Unixシステムで一般的に使用される推奨ファイルロックは何ですか?

Unixファミリーシステムは通常、Microsoftオペレーティングシステムで使用される必須ロックではなく、ファイルIOに推奨ロックを使用することを読んでいます。私が正しく理解した場合、強制ロックファイルのロックはオペレーティングシステム自体で行われます。しかし、私はロックについて相談することに直感はありません。 「foo」ファイルで作業する2つのプロセス「A」と「B」を例に挙げます。 「A」が「foo」に書き込まれ、「B」が「foo」から読み取られるとします。この場合、アドバイザリロックはどのように機能しますか? OS/ファイルシステムが「foo」のロックを強制しない場合、読み書きの一貫性はどのように維持されますか?

ベストアンサー1

勧告ロックは、「平和な」協力プロセスに適用されます。カーネルはロックを追跡しますが、強制的には適用しません。これに従うことはアプリケーションによって異なります。これにより、カーネルがデッドロックなどを処理する必要がなくなります。

強制ロックはSystem V Unixに導入されましたが、デザインが最もスマートではないことがわかりました。 (つまり、周りに方法があります。)Unixyシステムで真の強制ロックなどが必要な場合は、サーバーが共有リソースに対する権限を持つクライアントサーバーデザインパターンに従ってください。

おすすめ記事