Linux堆分配
发布时间:2020-12-13 23:20:48 所属栏目:Linux 来源:网络整理
导读:在FreeRTOS中,堆只是一个全局数组,其大小(允许调用是heapSize)在H文件中定义,用户可以更改.这个数组是一个非初始化的全局数组,它使它成为图像BSS部分的一部分,因为它在加载时填充零,然后,每个内存分配都取自该数组,并且分配的内存的每个地址都是这个数组的偏
在FreeRTOS中,堆只是一个全局数组,其大小(允许调用是heapSize)在H文件中定义,用户可以更改.这个数组是一个非初始化的全局数组,它使它成为图像BSS部分的一部分,因为它在加载时填充零,然后,每个内存分配都取自该数组,并且分配的内存的每个地址都是这个数组的偏移量.
因此,为了最大限度地利用内存大小,我们可以估算整个程序的数据,文本和BSS区域的大小,并将堆大小定义为heapSize = RAM_size – Text_size – Data_size – BSS_size. 我想知道什么是Linux操作系统的等效实现. Linux可以扫描给定的RAM并在运行时确定其大小吗? linux有一个等效的数据结构来管理堆吗?如果是这样,它如何首先为这个数据结构分配内存? 解决方法
请阅读Linux Device Drivers,Third Edition中的“第8章:分配内存”. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |