不分离共享内存段有什么影响?
不同的操作系统如何处理这个问题?
能不能分离妥协操作系统的稳定性?
谢谢。
不分离会阻止其他人删除内存段,这在 windows 和 linux 上都是如此。因此,您将有内存泄漏。它不会影响操作系统的稳定性,但为什么你不想在使用完后分离和删除段呢?
如果共享内存段没有分离,那么内核会继续认为特定的段(内核称之为区域)正在使用中,并且永远不会将其标记为删除 - 内部使用了一种引用计数机制。另一个问题是进程的虚拟地址空间会被不必要地占用。
但是,我不确定我们是否可以称之为内存泄漏(Java 人会说,不过),因为这个内存段会在进程退出时自动分离和释放。
这可能不会影响整个操作系统,但系统可能不得不关闭 - 这也是在没有任何通知的情况下 - 如果内存不足,某些进程会占用大量内存(请参阅 Linux OOM 杀手)。但这是最坏的情况。