Linux内核环境下如何申请大块内存?(linux内核使用)

admin3年前云主机41

在Linux内核环境下,申请大块内存的成功率随着系统运行时间的增加而减少,虽然可以通过vmalloc系列调用申请物理不连续但虚拟地址连续的内存,但毕竟其使用效率不高且在32位系统上vmalloc的内存地址空间有限。所以,一般的建议是在系统启动阶段申请大块内存,但是其成功的概率也只是比较高而已,而不是100%。如果程序真的比较在意这个申请的成功与否,只能退用“启动内存”(Boot Memory)。下面就是申请并导出启动内存的一段示例代码:
 

void* x_bootmem = NULL;EXPORT_SYMBOL(x_bootmem);unsigned long x_bootmem_size = 0;EXPORT_SYMBOL(x_bootmem_size);static int __init x_bootmem_setup(char *str){ x_bootmem_size = memparse(str, &str); x_bootmem = alloc_bootmem(x_bootmem_size); printk("Reserved %lu bytes from %p for x\n", x_bootmem_size, x_bootmem); return 1;}__setup("x-bootmem=", x_bootmem_setup);

可见其应用还是比较简单的,不过利弊总是共生的,它不可避免也有其自身的限制:

1.内存申请代码只能连接进内核,不能在模块中使用。

2.被申请的内存不会被页分配器和slab分配器所使用和统计,也就是说它处于系统的可见内存之外,即使在将来的某个地方你释放了它。

3.一般用户只会申请一大块内存,如果需要在其上实现复杂的内存管理则需要自己实现。

在不允许内存分配失败的场合,通过启动内存预留内存空间将是我们唯一的选择。

《Linux内核环境下如何申请大块内存?(linux内核使用)》来自互联网同行内容,若有侵权,请联系我们删除!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

建站选香港空间有哪些优势

优势一:贸易便利作为亚洲金融中心和国际贸易重要枢纽,香港拥有便捷的海外贸易通道和高效的物流管理,在国际贸易中占据了重要地位。同时,香港也是中国内地与世界间的桥梁,与内地城市之间的贸易往来十分活跃。因此...

最佳云主机排名:价格实惠、性能高效,这些你必须知道

云计算已经成为了当今世界最流行的计算架构之一,而云主机是云计算的核心元素。本文将针对价格实惠、性能高效的最佳云主机排名进行详细的阐述。主要从云主机的价格、容量、网络质量、安全方面进行分析,帮助读者选择...

便宜的香港的服务器(便宜的香港的服装有哪些)

文章目录:1、香港服务器哪家好,有没有性能配置较高且便宜的?2、有没有性能较好香港服务器空间?价格便宜点的3、有没有稳定一点的香港云服务器推荐?价格不要太贵了就行香港服务器哪家好,有没有性能配置较高且...

裸金属服务器,华为裸金属服务器2022年更新

本篇文章给大家谈谈裸金属服务器,以及华为裸金属服务器对应的知识,希望对各位有所帮助。本文目录:1、裸金属服务器是物理机吗?2、与云主机相比,裸金属服务器有什么优势?3、裸金属服务器与物理服务器的区别?...

亚马逊vps注册

什么是亚马逊vps亚马逊vps是指亚马逊云服务(Amazon Web Services,简称AWS)中的弹性云服务器(Elastic Compute Cloud,简称EC2),是一种基于云计算技术的虚...

php运行环境软件

PHP开发者必备的运行环境软件对于PHP开发者来说,选择合适的运行环境软件是至关重要的。PHP作为一种Web开发语言,运行环境软件不仅决定了开发效率和代码质量,还影响着线上代码的性能和稳定性。本文将针...