我对mlockall手册中的以下句子有点困惑。
mlockall()锁定映射到调用进程地址空间的所有页。这包括代码、数据和堆栈段的页面,以及共享库、用户空间内核数据、共享内存和内存映射文件。
这是否意味着当调用函数时,mlockall(MCL_CURRENT | MCL_FUTURE)将预先读取共享库的所有页面并将它们锁定到内存中?或者当流程实际需要这些页面时?

最佳答案

不,就在流程需要页面的时候。mlockall所做的唯一事情是阻止页面加载到交换空间(swapped)。

08-16 03:08