系统相关
首页 > 系统相关> > 内核如何知道物理页面由两个不同的进程共享?

内核如何知道物理页面由两个不同的进程共享?

作者:互联网

我们知道页面表用于从虚拟内存页面地址获取物理内存页面地址.但是,内核如何知道物理内存页是否由不同的进程共享(例如在分叉进程及其父进程的情况下).这样的清单保存在哪里?

解决方法:

内核是创建所有虚拟映射的实体.因此,它确切地知道什么是共享的,什么不是共享的.没有内核的帮助,用户空间进程将无法创建共享映射.

当进程请求派生时,内核还负责复制映射.它具有所需的所有信息.

页面具有的映射数保留在表示该页面的结构页面结构的字段中.每次创建新映射时,它都会递增,而映射消失时,它会递减.

如果您想进一步研究,可以访问Linux-MM.特别是,请阅读“文档”部分中链接的Mel Gorman的Understanding the Linux Virtual Memory Manager书(技术性很强)(免费提供PDF).

标签:x86-64,c-3,linux
来源: https://codeday.me/bug/20191101/1983523.html