内存映射文件进程间安全性

时间:2018-03-29 19:41:15

标签: .net mutex semaphore memory-mapped-files

在我的系统中我有2个进程(没有比这更多的考虑)其中一个进程将有效负载写入内存映射文件而另一个进程将“吃掉”数据(将数据用于清除)进程中的内存映射文件。

对于这种类型的共享数据系统,我会考虑使用互斥锁或信号量来保证安全,尽管系统的简单性让我相信碰撞或竞赛或其他不需要的行为几乎没有变化。

我已经详细介绍了下面的过程,但简而言之,系统的第一个字节是一个锁定,它将显示当前正在写入或被吃掉的集合(以防止两者同时发生)。如果没有数据(位置1为空),编写者只会写入,只有有一些数据(位置1非空)时,食者才会吃。

Process flow

任何人都可以向我说明不使用更强大的安全性(信号量或互斥量)的风险可能会出现。我唯一的想法是在写入时间,虽然这是扫描的内容,我猜这是不可能的,除非MMF写出乱序。

*实践中的免责声明我知道你应该谨慎行事并尽可能使用强大的控制措施,不这样做会带来一些好处,但这是一个个人项目,我喜欢看我怎样才能推动加深理解的事情,这就是我要问的原因。

0 个答案:

没有答案