根据手册页:
* 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),但老实说我不明白固定内存的概念以及它与锁定内存有何不同。
有人可以举例说明吗?
最佳答案
经过一些研究,我现在能够回答我自己的问题,希望它对 future 的访问者有所帮助。
锁定的内存永远不会从主内存中换出。这意味着锁定在物理内存中的页面保证始终存在于 RAM 中。但是,不能保证页面错误永远不会发生,因为内核仍然可以自由地在物理内存中移动页面。
固定内存是固定在特定页框位置的锁定内存。这意味着固定页面既不能从主内存中换出,也不能在物理 RAM 中移动,因此可以保证永远不会发生页面错误。这是硬实时应用程序的理想要求。
关于linux -/proc/<pid>/status 中的 VmLck(锁定内存)与 VmPin(固定内存),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62332067/