2011-06-27 37 views
1

我工作的共享内存和这个问题排在我的脑海里这么认为专家提出的:如果其中一个进程共享内存被终止,共享内存会发生什么变化?

  1. 如果进程共享内存中的一个被杀害发生了共享内存是什么?如果我们杀人而不是正常杀人,会发生什么?

  2. 它依赖于我们用于共享内存的机制吗?

如果有问题,我正在使用Windows。

+1

OS *应该*清除它控制的所有资源(句柄,套接字,shm,内存等)*,而不管进程如何终止。操作系统之外的技术可能没有这种保护。 – 2011-06-27 05:09:17

回答

1

如果在另一个进程中至少有一个其他线程具有打开的文件映射句柄,我希望共享内存保持不变。

+0

这意味着另一个进程将能够使用共享内存块,而不管其他进程的状态如何?换句话说,进程在访问共享内存块时不会有任何内部依赖关系? – bayCoder

+1

共享内存不施加并发控制;这取决于进程/线程以确保安全访问。通常你会为此使用互斥对象。正如其他人报告的那样,如果持有该互斥体的进程咆哮该互斥体进入废弃状态。 – seand