使用mmap
//时,读/写是原子的吗msync
?munmap
(假设磁盘将在断电时完成所有挂起的写入)
问问题
380 次
1 回答
2
涉及多个页面或多个磁盘扇区的操作从来都不是精确的原子操作。
研究两个特定事物之间的一致性可能更有用。
例如,在两个同时使用mmap(2)文件的程序或线程之间,它们已经是连贯的并且msync(2)
与此无关。所做msync
的只是导致内核将修改后的页面写入底层存储系统......对于同一系统上的其他读取器和写入器也使用mmap()没有必要或没有帮助。
如果您想使用不同的工具(共享存储或非 mmap I/O)并同步访问,您将需要一个真正的信号量或互锁。我认为 msync() 没有用。为了给您更多帮助,我们需要更多地了解您尝试同步的内容。
于 2013-02-11T00:25:23.770 回答