[发明专利]一种嵌入式系统的内存管理方法有效
申请号: | 201010512683.0 | 申请日: | 2010-10-13 |
公开(公告)号: | CN101976224A | 公开(公告)日: | 2011-02-16 |
发明(设计)人: | 连小珉;杨殿阁;王钊;李挺;张照生;郑四发;李克强;罗禹贡;王建强 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京纪凯知识产权代理有限公司 11245 | 代理人: | 徐宁;关畅 |
地址: | 100084 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 嵌入式 系统 内存 管理 方法 | ||
1.一种嵌入式系统的内存管理方法,其包括如下步骤:
(1)在嵌入式系统的线程根函数中开辟一块物理内存作为线程堆,并利用翻转式线程堆管理系统对该物理内存进行管理,此线程内所有的动态内存都将从此物理内存中线程堆空闲内存中分配,线程堆管理系统从线程堆空闲内存的首尾两端为数据需求分配内存空间,线程堆空闲内存有正常态N和翻转态F两种状态;
(2)将所有数据需求分为临时空间需求和输出空间需求两种类型,在同一函数中,根据数据需求的类型线程堆管理系统将在线程堆空闲内存的一端分配临时空间需求的数据即为临时端,或分配输出空间需求的数据即为输出端;
(3)线程堆管理系统将首端内存分配给临时空间需求的数据;
(4)当一个上级函数调用下级函数时,线程堆管理系统控制线程堆空闲内存进行翻转,临时端和输出端位置对调;当退出下级函数时,线程堆空闲内存释放当前临时端的临时空间,同时保留输出端的输出空间,并和上级函数临时端的临时空间合并。
2.如权利要求1所述的一种嵌入式系统的内存管理方法,其特征在于:所述步骤(1)中,所述线程堆管理系统从所述线程堆空闲内存的首尾两端为数据分配内存空间的步骤如下:
①线程堆空闲内存的首端地址为Sh,尾端地址为St;
②当从线程堆空闲内存首端分配L长度的内存后,首端地址变为S′h=Sh+L;
③当从线程堆空闲内存尾端分配L长度的内存后,尾端地址变为S′t=St-L;
④当出现时St≤Sh,线程堆空闲内存耗尽,线程堆管理系统抛出异常并对该错误进行调整,线程根函数退出。
3.如权利要求1所述的一种嵌入式系统的内存管理方法,其特征在于:所述步骤(2)中,所述数据需求分类及对应的分配方法包括以下步骤:
①当一个数据需求申请内存空间时,需要声明自己需求的类型是输出空间需求还是临时空间需求,并由线程堆管理系统根据该声明将数据需求在输出端或临时端分配空间;
②当线程堆空闲内存处于正常态N时,对于所有临时空间需求的数据,线程堆空闲内存从首端顺序分配内存;对于所有输出空间需求的数据,线程堆空闲内存从尾端顺序分配内存;
③当线程堆处于翻转态F时,对于所有临时空间需求的数据,线程堆空闲内存从尾端顺序分配内存;对于所有输出空间需求的数据,线程堆空闲内存从首端顺序分配内存。
4.如权利要求2所述的一种嵌入式系统的内存管理方法,其特征在于:所述步骤(2)中,所述数据需求分类及对应的分配方法包括以下步骤:
①当一个数据需求申请内存空间时,需要声明自己需求的类型是输出空间需求还是临时空间需求,并由线程堆管理系统根据该声明将数据需求在输出端或临时端分配空间;
②当线程堆空闲内存处于正常态N时,对于所有临时空间需求的数据,线程堆空闲内存从首端顺序分配内存;对于所有输出空间需求的数据,线程堆空闲内存从尾端顺序分配内存;
③当线程堆处于翻转态F时,对于所有临时空间需求的数据,线程堆空闲内存从尾端顺序分配内存;对于所有输出空间需求的数据,线程堆空闲内存从首端顺序分配内存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010512683.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:介电蚀刻停止层的选择性形成
- 下一篇:等离子体显示面板