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

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

  • 能不能分离妥协操作系统的稳定性?

谢谢。

4

2 回答 2

1

不分离会阻止其他人删除内存段,这在 windows 和 linux 上都是如此。因此,您将有内存泄漏。它不会影响操作系统的稳定性,但为什么你不想在使用完后分离和删除段呢?

于 2009-06-03T04:59:01.207 回答
1

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

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

这可能不会影响整个操作系统,但系统可能不得不关闭 - 这也是在没有任何通知的情况下 - 如果内存不足,某些进程会占用大量内存(请参阅 Linux OOM 杀手)。但这是最坏的情况。

于 2010-06-21T18:59:26.217 回答