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

admin3年前云主机42

在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内核使用)》来自互联网同行内容,若有侵权,请联系我们删除!

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

相关文章

香港多ip服务器哪些优势?香港多ip服务器租用价格及配置哪里有?

什么是香港多ip服务器?很简单,就是拥有很多ip的香港服务器,全民上网的时代,企业主们想要在网络上展示的内容也很多,往往需要很多网页也就是站群来展示。然而,如果给这些网站都只配置同一个ip,这些网站的...

韩国多ip服务器租用的优点有哪些?韩国多ip服务器租用配置推荐?

如果要组建许多网站,用户需要使用韩国多ip服务器,多ip就是单独配置一个或许多网站的独立IP,从而提高搜索引擎多网站的友爱度,韩国多ip服务器对于提高网站文章的收录率以及网站的权重有很好的效果,这是网...

takincloud怎么样

什么是TakinCloudTakinCloud是一种云端性能分析工具,它可以帮助企业实时监控和分析应用程序性能,提高应用程序的响应速度和用户体验。TakinCloud是一种面向企业级应用程序性能管理的...

如何提高租用香港服务器的安全性(提升香港服务器租用安全。)

一、服务器的基础安全设置服务器的基础安全设置主要包括系统密码设置、开启防火墙、禁止root用户SSH登录等。对于登录密码,应该遵循密码的复杂度要求,包含大小写字母、数字和特殊字符,并定期更换密码。开启...

photonvps怎么样

PhotonVPS是一家怎么样的虚拟专用服务器提供商?PhotonVPS是一家提供虚拟专用服务器(VPS)的服务商,由PhoenixNAP数据中心于2008年创立。该公司是美国洛杉矶地区最大的VPS供...

俄罗斯主机商

俄罗斯主机商的优缺点俄罗斯主机商因其价格便宜和技术支持能力强而备受网站管理员的青睐。但是,也存在着一些缺点需要注意。优点价格优势是俄罗斯主机商最大的优势之一。相比于欧美和亚洲国家的主机商,俄罗斯的主机...