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

admin3年前云主机115

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

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

相关文章

越南服务器租赁价格大概多少钱?

越南服务器租赁价格大概多少钱?越南服务器租赁价格通常受以下因素的影响:服务器配置:服务器配置是决定租赁价格的最重要因素之一,包括CPU、内存、硬盘容量等。配置越高的服务器租赁价格越高。托管服务:您可以...

哈萨克斯坦服务器速度不输国际一流,为你的业务保驾护航

一、服务器优势哈萨克斯坦拥有优越的地理位置和先进的通信技术,这使得哈萨克斯坦服务器的速度不输国际一流。哈萨克斯坦是欧亚大陆上的十字路口,地处俄罗斯、中国和中亚的交汇点,这使得哈萨克斯坦成为欧亚大陆上的...

红外测温技术助力疫情防控

随着全球新冠肺炎疫情的严重性日益加剧,红外测温技术成为防控疫情的重要工具之一。本文从四个方面详细阐述了红外测温技术在疫情防控中的应用,包括“快速测温”、“人员筛查”、“智能监控”和“科学预测”,并总结...

为什么要租用高防服务器?泉州BGP高防服务器租用注意事项?

为什么要租用高防服务器?高防服务器可以针对ddos攻击,有很强的防御能力,为了网站的安全,建议使用比较好的高防服务器。使用高防服务器可以带来以下好处。1、防御ddos攻击2、增强网站安全性3、提升网站...

云服务器性能测试指标及评估方法

云服务器已经成为了企业或个人进行网络信息处理和存储的首选方式。云服务器性能测试指标及评估方法对于保证云服务器的优异性能至关重要。本文将介绍云服务器性能测试指标及评估方法。一、基础测试指标云服务器的基础...

域名主机空间满了怎么处理

网站空间满了怎么处理?问题的背景最近,很多网站运营者都会遇到这样的问题:“我的网站空间已经满了,该怎么办?”解决方案一:购买更大的主机空间如果你的网站运营正处于高峰期,并且你的网站流量较大,那么可能需...