下载此文档

一种内存管理方法和系统的制作方法.docx


文档分类:IT计算机 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
一种内存管理方法和系统的制作方法
专利名称:一种内存管理方法和系统的制作方法
技术领域:
本发明涉及计算机技术领域,具体涉及一种内存管理方法和系统。
背景技术:
目前嵌入式系统应用已经深入到我们生活中的各个领域,手机、机顶盒、MP指向所述空闲内存 链表中第一个空闲内存块的控制指针以及一个表示所述空闲内存块的大小的标识值,所述 空闲内存链表中的空闲内存块包括一个指向下一空闲内存块的第一指针和一个指向所述 控制块的第二指针。102、在收到内存分配请求时,根据请求的内存的大小选定第一内存组,将选定的 第一内存
组的空闲内存链表中的第一个内存块分配给内存请求方。在一个实施例中,所述根据请求的内存的大小选定内存组可以是将所述请求的 内存的大小与每一个控制块的标识值比较,确定一个与所述请求的内存的大小最接近且不小于所述请求的内存的标识值,以相应的控制块所属的内存组作为选定的内存组。在一个实施例中,所述将所述选定的内存组的空闲内存链表中的第一个内存块分 配给内存请求方之前还包括判断所述内存组内的空闲内存块链表是否为空,若不为空,则 执行所述将所述选定的内存组的空闲内存链表中的第一个内存块分配给内存请求方的步
马聚ο在一个实施例中,步骤102中将所述选定的第一内存组的空闲内存链表中的第一 个内存块分配给内存请求方的步骤可以包括1021、将选定的第一内存组的控制指针返回给内存请求方;1022、将控制指针改为指向所述空闲内存链表中下一个空闲的内存块。进一步的,102b具体可以为1022a、获取所述空闲内存链表中的第一个内存块的第一指针;1022b、将所述第一指针赋值给所述控制指针。103、在收到内存释放请求时,根据需要释放的内存的地址选定第二内存组,将需 要释放的内存块作为第一个内存块链接到所述第二内存组的空闲内存链表中。在一个实施例中,所述根据需要释放的内存的地址选定所属的内存组可以是将 所述需要释放的内存的地址减去一个预设值得到一控制块的指针,以该控制块所属的内存 组作为选定的内存组。在每个内存块的前面预留8个字节,以前4个字节作为开始标志;后 4个字节作为指向该内存组的控制块第二指针时,可以将需要释放的内存的地址减去预设 值4得到一控制块的指针。在一个实施例中,步骤103中将需要释放的内存块作为第一个内存块链接到所述 第二内存组的空闲内存链表中可以包括1031、将所述需要释放的内存块的第一指针指向所述第二内存组的空闲内存链表 中的第一个内存块;1032、将所述第二内存组的控制指针改为指向所述需要释放的内存块。进一步的,步骤1031具体可以为将所述第二内存组的控制指针赋值给所述需要 释放的内存块的第一指针。采用本发明实施例提供的内存管理方法,对内存的分配或者释放操作都是在相应 的内存组内进行,而各个内存组包含大小不同的内存块以供使用,分配内存时按照内存组 内的空闲内存链表的顺序从第一个内存块开始分配,释放内存时在将内存块链接在空闲内 存链表的头部作为第一个内存块,从而可以避免内存碎片的产生,提高内存分配的效率;即 使系统长时间运行,也不存在内存分配效率下降的问题。请参考图2和图3,以具体应用场景为例对本发明方法进行详细说明在在一个具体实施方式
中,预先建立的内存池共初始化有7个内存组,各内存组 包含的内存块的大小和内存块的个数定义如下第一内存组,包含

一种内存管理方法和系统的制作方法 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人开心果
  • 文件大小19 KB
  • 时间2022-06-28
最近更新