[发明专利]嵌入式系统的内存管理方法和装置有效
申请号: | 201711201135.4 | 申请日: | 2017-11-27 |
公开(公告)号: | CN108038062B | 公开(公告)日: | 2021-05-04 |
发明(设计)人: | 贾利民;隋平礼 | 申请(专利权)人: | 北京锦鸿希电信息技术股份有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 杨贝贝;刘芳 |
地址: | 100070 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 嵌入式 系统 内存 管理 方法 装置 | ||
1.一种嵌入式系统的内存管理方法,其特征在于,应用在嵌入式系统的物理内存中,所述嵌入式系统的物理内存包括:系统管理内存区和用户管理内存区,所述系统管理内存区由嵌入式系统的操作系统进行管理,所述用户管理内存区是指可根据应用程序进行预先申请分配的内存区;所述方法包括:
以页为最小申请单位,接收针对所述用户管理内存区的内存页申请请求;
根据所述内存页申请请求,分配预设大小的内存页;
对分配的内存页进行格式化后,将每个内存页划分为大小相同的内存片;
在每个内存页的开始处创建SLAB管理结构,并在SLAB管理结构后创建内存片管理表;或者,在所述用户管理内存区中的一个预设的缓存中申请内存块用于创建SLAB管理结构,并在SLAB管理结构后创建内存片管理表;
接收应用程序的内存申请请求;
根据所述应用程序请求的内存大小,从缓存检索链表中找到相应类型的缓存,并通过所述缓存对应的SLAB链表获取内存片后,分配给所述应用程序;其中,所述缓存检索链表用于指示不同类型缓存的大小,以及指示不同类型缓存的控制结构;所述SLAB链表用于指示同一类缓存中创建的所有SLAB管理结构的信息;其中,所述SLAB管理结构用于管理对应内存页划分的所有内存片;所述内存片管理表中包含对应SLAB管理结构所管理的所有内存片的地址信息,所述SLAB管理结构还用于根据内存片管理表分配内存片给应用程序。
2.根据权利要求1所述的方法,其特征在于,在以页为最小申请单位,接收针对所述用户管理内存区的内存页申请请求之前,还包括:
接收用户输入的对用户管理内存区进行初始化的请求;
将所述用户管理内存区划分为若干个大小不同的内存页面分区块,每一内存页面分区块包含不同数目的对应大小的页,所述页的大小包括:4K、8K、16K、32K、64K、128K;所述页由位于固定位置的页面控制表进行维护,其中,大小为4K的页的数量可进行动态调整。
3.根据权利要求1所述的方法,其特征在于,在以页为最小申请单位,接收针对所述用户管理内存区的内存页申请请求之前,还包括:
确定所述SLAB管理结构所管理的所有内存片已经全部被占用。
4.根据权利要求1所述的方法,其特征在于,在将申请的每个内存页划分为大小相同的内存片之后,还包括:
根据内存片的大小对所述内存片进行分类,大小相同的内存片分为一类;
按照预设内存片的数量和大小的要求,将内存片划分成多组片区,每组片区通过缓存检索链表与不同类型的缓存进行关联。
5.根据权利要求4所述的方法,其特征在于,在SLAB管理结构所管理的所有内存片均处于空闲状态时,还包括:
删除对应SLAB链表中所述SLAB管理结构的信息,并清除所述SLAB管理结构管理的所有内存片对应内存页的控制项信息;其中,所述SLAB链表用于指示同一类缓存中创建的所有SLAB管理结构的信息,所述控制项信息包括:CACHE指针和SLAB指针;
将所述内存页放到空闲页的头部。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京锦鸿希电信息技术股份有限公司,未经北京锦鸿希电信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711201135.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:高效的生活环境噪声检测方法
- 下一篇:一种基于硼石膏的砌块及其制备方法