複数のプロセスで使用される共有メモリを作成しようとしています。これらのプロセスは、MPI
コール(MPI_Send
,MPI_Recv
)を使用して互いに通信します。セマフォまたはフロックの名前が良いC linux
私はこの共有メモリのアクセスを制御するメカニズムが必要です。MPIがそれを行うための機能を提供しているかどうかを昨日質問しました。 Shared memory access control mechanism for processes created by MPIがありますが、MPIによる規定はないようです。
named semaphore
またはflock
のいずれかを選択する必要があります。
プロセスのいずれかが突然sem_cloe()
を呼び出さないと命名された場合、そのセマフォは常に残っており、ll /dev/shm/
で見ることができます。この結果、デッドロックが発生することがあります(同じコードをもう一度実行すると、私は現在、flockの使用を考えています)。
flock
がこのタイプの操作に最も適しているかどうかを確認したいだけですか?
flock
の使用には何らかの欠点がありますか?
ここではnamed semaphore
とflock
以外は何かありますか?
私はLinuxの下でCに取り組んでいます。
+1しかし、私はちょうどその '群れ 'を追加したいと思います。同様のメカニズムは確かに良い選択ではありません。それらはファイルの同時使用を保護するために設計されています。特に、ファイル上で何も起こっていない場合は、ファイルメタデータ(ロックなど)が他のプロセスに見えるときは指定されません。これを目的に使用しないでください。 –