Linux储备存储器以稍后分配C
LInux reserve memory for later allocation c++
是否有可能保留内存以在C 程序中分配?
背景:我正在使用Preement RT补丁工作Debian。我的程序大约使用100MB内存。所有页面均应与Mlockall()交换。主要有2个跑步线程,一个实时运行,不分配内存。另一线程以较低的优先级运行,并分配/自由存储器。在某些罕见情况下,背景过程分配了所有免费内存,并且系统正在开始交换。现在,我的"快速"线需要一小块RAM。现在,内核给了我那个新的小件,但是掉了。因此,我的程序被巨大的延迟打断了,可以说3sec。
问题:是否有一种保留记忆的方法,可以说200MB。如果我的程序会分配,那么绝对可以不交换?
即使您在程序开始时分配了所需的所有内存,您担心的情况是另一个过程将使用内存。除非您是该计算机上唯一的过程,否则总会有另一个运行过程。因此,您想要的解决方案是一个"保留"的RAM空间,除了您的流程可以访问,没有人。这意味着内核永远不会将此空间换成高清(因此内核不会执行任何物理访问)。
幸运的是,除非您更改内核并重新编译它,否则不可能。想一想您有多个过程"保留"记忆的可能性。如果您有4GB RAM,则陷入困境:(
相关文章:
- 将数组的地址分配给变量并删除
- vector.resize()中的分配错误
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- Win32编译器选项和内存分配
- 函数中堆分配的效果与缺少堆分配的情况
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 获取字符串的长度并将其分配给数组
- 将地址分配给本地指针后,公共对象的变量将消失
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 有没有一种方法可以使用placement new将堆叠对象分配给分配的内存
- 我在二维向量中是否正确分配了内存
- 正在尝试重载二进制搜索树分配运算符
- GlobalAlloc而不是其他分配方法
- 自定义先决条件对移动分配运算符有效吗
- 我可以重新分配/覆盖std::字符串吗
- 在c++中使用动态分配的问题
- 当一个新对象被分配到它的地址时,对象是否必须被销毁
- Linux储备存储器以稍后分配C
- 可以动态分配和在C 的编译时分配的最大存储器