【发布时间】:2013-06-14 05:56:19
【问题描述】:
我正在尝试创建一个可供多个进程使用的共享内存。这些进程使用MPI 调用(MPI_Send、MPI_Recv)相互通信。
我需要一种机制来控制此共享内存的访问我昨天添加了一个问题,以查看 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。
【问题讨论】:
标签: c concurrency multiprocessing semaphore flock