linux - Linux 中的 mlock 堆栈

标签 linux memory-management linux-kernel

如果同一个进程锁定了共享内存中同一页的一部分的两个地址。解锁一个地址会解锁共享页面吗?在最新版本的 Linux 内核允许非特权进程锁定内存之后,关于锁堆栈的文档对此非常不清楚。

最佳答案

  • 内存锁不堆叠,即,通过调用 mlock() 或 mlockall() 多次锁定的页面将通过一次调用相应范围的 munlock() 或 munlockall 解锁().

  • 映射到多个位置或被多个进程映射的页面会保持锁定在 RAM 中,只要它们至少在一个位置或至少被一个进程锁定。

引用:mlock(2) man page的注释.

关于linux - Linux 中的 mlock 堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17993265/

相关文章:

c++ - 我如何使用 std::allocator 代替 realloc?

python - 在python中,变量名、引用和唯一标识(id()函数)也占用内存空间吗?

linux - 在 SCHED_DEADLINE 调度程序下 sched_yield() 保证在下一个周期开始时唤醒?

c - Linux 输入驱动程序中的 NULL 指针取消引用

从 LKM 在/proc 中创建条目

c - 将多个 C 库链接到 C 创建可执行文件

linux - shell 清理脚本建议

linux - 如何编写一个兼容所有类unix系统的小程序?

linux - 检查一个字符串是否是回文

linux - 运行一个大小为 "Unlimited Stack"的应用会有什么影响?