【发布时间】:2016-08-18 14:01:56
【问题描述】:
如果一个进程调用mmap(...,MAP_ANONYMOUS | MAP_SHARED,...)并fork N个子进程,这些进程中的任何一个(父进程或子进程)是否有可能一次性将所有进程的内存munmap()释放,从而释放物理内存,或者确实这些进程中的每一个都必须单独 munmap() 吗?
(我知道内存将在进程退出时取消映射,但孩子们还不会退出)。
或者,有没有办法从另一个进程 munmap 内存?我正在考虑像munmap(pid,...) 这样的电话。
或者有没有办法使用非匿名映射和对相关文件描述符执行操作(例如关闭文件)来实现我正在寻找的东西?
我的进程对性能很敏感,当得知共享内存将不再被任何人使用时,我希望避免执行大量 IPC。
【问题讨论】:
-
我认为不可能
unmap其他进程的映射。
标签: linux shared-memory mmap