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

admin3年前云主机79

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

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

相关文章

【TikTok直播的条件】- 如何成为一名优秀的TikToker?

TikTok作为目前社交平台中新晋的一员,其直播功能正吸引着越来越多的用户。但如何成为一名优秀的TikToker?本文将从四个方面介绍TikTok直播的条件,包括内容策略、人设塑造、直播技巧和互动留存...

企业云服务器租用的优势有哪些

企业云服务器租用的优势有哪些1.成本更低企业云服务器租用相比购买云服务器,成本更低。购买云服务器需要一次性投入大量资金,而且还要考虑到服务器的维护和更新费用。而租用云服务器可以根据需求支付月租费用,避...

云之力:GPU服务器加速AI计算

近年来,人工智能技术的应用越来越广泛。而GPU服务器作为加速AI计算的关键设备,正备受关注。本文从四个方面详细阐述了云之力:GPU服务器加速AI计算的相关内容,包括:基础知识介绍、应用场景、性能提升和...

搭建在线图库怎么选择服务器配置

搭建在线图库怎么选择服务器配置随着互联网技术的不断发展,图库在网站上的应用日益普及,为用户提供更好的体验。但要搭建一个强大、稳定的在线图库,服务器配置显得尤为关键。选择主机供应商选择一个合适的主机供应...

圣何塞cn2

圣何塞CN2什么是圣何塞CN2圣何塞CN2是一种数据传输协议,它采用了新型的数据传输方式和路由技术。CN2是中国电信的国际全球网络,具有更快的速度和更加安全的保障,旨在为企业级客户提供更优质的网络体验...

「群发短信轻松搞定!快速接入平台API为您打造高效发送体验!」

在移动互联网时代,短信营销成为企业推广产品和服务的重要途径之一。然而,如何轻松高效地完成短信群发成为挑战。本文将以「群发短信轻松搞定!快速接入平台API为您打造高效发送体验!」为主题,从四个方面阐述如...