You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

mincore与共享tmpfs文件的工作机制及驻留页判定疑问

关于mincore()的驻留页判定逻辑解答

首先明确mincore()的核心行为:它返回的是调用进程自身虚拟地址空间中,每个虚拟页对应的物理页是否存在于系统RAM中——这里的关键是「虚拟页对应的物理页是否在内存」,而非「调用进程是否自己加载了这个页」。

针对你举的共享tmpfs文件的场景:

  • 进程A和B的映射属于共享文件映射,tmpfs的文件页本身就是基于系统RAM的,且共享映射会让多个进程的虚拟页指向同一个物理页。
  • 进程A的虚拟地址空间中,第0页自己访问过,对应物理页在RAM,标记为1;第1页未被任何进程访问,物理页不存在,标记为0;第2页被进程B访问过,对应的物理页已经加载到RAM中,而进程A的虚拟页和该物理页存在映射关系(因为共享文件),所以mincore()会将其标记为1。

所以你的测试结果是正确的,mincore()的预期输出是[1,0,1]。

补充说明手册描述的细节:手册里的「调用进程虚拟内存中的页面」,指的是调用进程地址空间内的虚拟页条目,而判定是否驻留的依据是该虚拟页条目绑定的物理页是否存在于系统RAM中——不管这个物理页是由哪个进程触发加载的,只要绑定关系存在且物理页在内存,就会被计入。

内容的提问来源于stack exchange,提问作者HardcoreHenry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 05:36:06