不分离共享内存段有什么影响

时间:2009-06-02 15:26:04

标签: operating-system shared-memory

  • 不分离共享内存段有什么影响?

  • 不同的操作系统如何处理此问题?

  • 无法分离会影响O.S的稳定性吗?

感谢。

2 个答案:

答案 0 :(得分:1)

不分离会阻止其他人删除内存段,这在Windows和Linux上都是如此。因此,您将有内存泄漏。它不会损害O.S的稳定性,但为什么你不想在完成使用后分离和删除该段?

答案 1 :(得分:0)

如果共享内存段没有被分离,那么内核继续认为特定段(内核称它为区域)正在使用中并且永远不会将其标记为删除 - 内部使用了一种引用计数机制。另一个问题是,该进程的虚拟地址空间会被不必要地占用。

但是,我不确定我们是否可以将其称为内存泄漏(尽管Java人会说),因为这个内存段会在进程退出时自动分离和释放。

这可能不会影响操作系统整体,但系统可能不得不关闭 - 这也没有任何通知 - 一些进程在内存不足时占用大量内存(参见Linux OOM杀手)。但这是最糟糕的情况。