如果同一个进程锁定了共享内存中同一页的一部分的两个地址。解锁一个地址会解锁共享页面吗?在最新版本的 Linux 内核允许非特权进程锁定内存之后,关于锁堆栈的文档对此非常不清楚。
最佳答案
内存锁不堆叠,即,通过调用 mlock() 或 mlockall() 多次锁定的页面将通过一次调用相应范围的 munlock() 或 munlockall 解锁().
映射到多个位置或被多个进程映射的页面会保持锁定在 RAM 中,只要它们至少在一个位置或至少被一个进程锁定。
引用:mlock(2) man page的注释.
关于linux - Linux 中的 mlock 堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17993265/