在proc<pid>状态下,VmLck(锁定内存)与VmPin(钉住内存)的对比。

问题描述 投票:0回答:1

根据手册页面的内容......我知道什么是锁定内存(mlock,mlockall),但老实说,我不明白钉住内存的概念,它和锁定内存有什么不同。

* VmLck: Locked memory size (see mlock(3)).

* VmPin: Pinned memory size (since Linux 3.2).
  These are pages that can't be moved because something needs
  to directly access physical memory.

我知道什么是锁定内存(mlock, mlockall),但老实说,我不明白pinned内存的概念,以及它与锁定内存有什么不同。

谁能举个例子解释一下?

linux memory-management linux-kernel virtual-memory
1个回答
0
投票

经过一番研究,我现在可以回答自己的问题了,希望对以后的游客有所帮助。

锁定的内存是永远不会被换出主内存的。这意味着锁定在物理内存中的页面可以保证一直存在于RAM中。但是,并不能保证页面故障永远不会发生,因为内核仍然可以自由地在物理内存中移动页面。

pinned内存是一个锁定的内存,它被钉在一个特定的页框位置。这意味着被钉住的页面既不能从主内存中换出,也不能在物理内存中移动,因此它保证了页面故障永远不会发生。这是对硬实时应用的理想要求。

阅读更多信息。https:/lwn.netArticles600502

© www.soinside.com 2019 - 2024. All rights reserved.