- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
mlockall
在我的内核 3.0 上的手册页说
mlockall() locks all pages mapped into the address space of the calling process. This includes the pages of the code, data and stack segment, as well as shared libraries, user space kernel data, shared memory, and memory-mapped files. All mapped pages are guaranteed to be resident in RAM when the call returns successfully; the pages are guaranteed to stay in RAM until later unlocked.
后来又说
Real-time processes that are using mlockall() to prevent delays on page faults should reserve enough locked stack pages before entering the time-critical section, so that no page fault can be caused by function calls. This can be achieved by calling a function that allocates a sufficiently large automatic variable (an array) and writes to the memory occupied by this array in order to touch these stack pages. This way, enough pages will be mapped for the stack and can be locked into RAM. The dummy writes ensure that not even copy-on-write page faults can occur in the critical section.
我知道这个系统调用无法猜测将达到的最大堆栈大小,因此无法为堆栈锁定页面。但是为什么上面显示的人的第一部分说它也为堆栈完成了?此手册页中是否有错误,或者它只是意味着锁定是针对初始堆栈大小完成的?
最佳答案
是的,锁定是针对当前堆栈页面完成的,但不是针对所有可能的 future 堆栈页面。
关于c - 您如何理解 mlockall 手册页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10017928/
下面的程序使用一次一密加密对 2 个文件进行异或来创建输出文件。我尝试使用 mlockall 以避免从外部存储器源获取 key 文件时在硬盘上留下任何 key 文件痕迹。 来自 mlockall 手册
我对 mlockall 手册中出现的以下句子感到有点困惑。 mlockall() locks all pages mapped into the address space of the callin
我会在实时进程上执行mlockall to lock the memory pages没有root权限。由于用于最大锁定内存的用户 ulimit 确实很低(出于安全考虑,这没问题),我将通过 root
我收到错误:mlockall 失败:无法分配内存调用函数 mlockall() 时: if(mlockall(MCL_CURRENT|MCL_FUTURE) == -1) {
问题 在尝试减少/消除应用程序中轻微页面错误的过程中,我发现了一个令人困惑的现象;也就是说,即使我认为我已经采取了足够的措施来防止页面错误,但我反复触发写入同一地址的小页面错误。 背景 根据建议her
mlockall 在我的内核 3.0 上的手册页说 mlockall() locks all pages mapped into the address space of the calling pr
我正在阅读 mlockall() 的联机帮助页:http://man7.org/linux/man-pages/man2/mlock.2.html 它提到 Real-time processes th
我有一个问题,mlockall 直接返回非特权用户(root 以外的每个用户)-1 我用来运行它的应用程序来自 Stackoverflow 站点:What happens when you run o
我正在开发一个需要大量内存才能进行批处理的 C++ 应用程序。(> 20GB) 我的一些客户遇到了内存限制,有时操作系统开始交换并且总运行时间加倍或更糟。 我读到我可以使用 mlockall 来防止进
我看到 ElasticSearch 提供了 mlockall 选项,它允许将 JVM 堆保留在物理内存中而不是虚拟内存(可能是也可能不是物理内存),并避免交换堆。 Solr 有这样的选项吗? 最佳答案
我是一名优秀的程序员,十分优秀!