[发明专利]一种动态堆栈内存管理方法和装置在审
申请号: | 201610995763.3 | 申请日: | 2016-11-11 |
公开(公告)号: | CN106776354A | 公开(公告)日: | 2017-05-31 |
发明(设计)人: | 李小庆 | 申请(专利权)人: | 深圳创维数字技术有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京品源专利代理有限公司11332 | 代理人: | 孟金喆,胡彬 |
地址: | 518057 广东省深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 动态 堆栈 内存 管理 方法 装置 | ||
1.一种动态堆栈内存管理方法,其特征在于,所述方法包括:
确定当前任务的堆栈空间的堆栈指针位置至堆栈空间顶部位置之间的空闲内存;
如果所述空闲内存大于预置阈值,则释放所述堆栈指针位置至所述堆栈空间顶部位置之间的内存页;
将所述堆栈指针位置所在内存页的起始位置重置为堆栈空间顶部位置。
2.如权利要求1所述的方法,其特征在于,所述确定当前任务的堆栈空间的堆栈指针位置至堆栈空间顶部位置之间的空闲内存,包括:
每隔预置时长获取所述当前任务的堆栈空间的堆栈指针位置和堆栈空间顶部位置;
计算所述堆栈指针位置至所述堆栈空间顶部位置之间的空闲内存。
3.如权利要求1或2所述的方法,其特征在于,所述确定当前任务的堆栈空间的堆栈指针位置至堆栈空间顶部位置之间的空闲内存之前,还包括:
为正在运行的所有任务建立任务链表,并设置任务指针,指向至少一个任务,作为当前任务。
4.如权利要求3所述的方法,其特征在于,所述将所述堆栈指针位置所在内存页的起始位置重置为堆栈空间顶部位置之后,还包括:
将所述任务指针设置为所述任务链表中的下一个任务,以将下一个任务更新为当前任务,并返回执行空闲内存的确定操作。
5.如权利要求4所述的方法,其特征在于,所述确定当前任务的堆栈空间的堆栈指针位置至堆栈空间顶部位置之间的空闲内存之后,还包括:
如果所述空闲内存不大于所述预置阈值,则将所述任务指针设置为所述任务链表中的下一个任务,以将下一个任务更新为当前任务,并返回执行空闲内存的确定操作。
6.一种动态堆栈内存管理装置,其特征在于,所述装置包括:
空闲内存确定模块,用于确定当前任务的堆栈空间的堆栈指针位置至堆栈空间顶部位置之间的空闲内存;
内存页释放模块,用于如果所述空闲内存大于预置阈值,则释放所述堆栈指针位置至所述堆栈空间顶部位置之间的内存页;
重置模块,用于将所述堆栈指针位置所在内存页的起始位置重置为堆栈空间顶部位置。
7.如权利要求6所述的装置,其特征在于,所述空闲内存确定模块包括:
位置获取单元,用于每隔预置时长获取所述当前任务的堆栈空间的堆栈指针位置和堆栈空间顶部位置;
空闲内存计算单元,用于计算所述堆栈指针位置至所述堆栈空间顶部位置之间的空闲内存。
8.如权利要求6或7所述的装置,其特征在于,所述装置还包括:
任务链表建立模块,用于为正在运行的所有任务建立任务链表,并设置任务指针,指向至少一个任务,作为当前任务。
9.如权利要求8所述的装置,其特征在于,所述装置还包括:
当前任务更新模块,用于将所述任务指针设置为所述任务链表中的下一个任务,以将下一个任务更新为当前任务,并返回所述空闲内存确定模块。
10.如权利要求9所述的装置,其特征在于,所述装置还包括:
循环遍历模块,用于如果所述空闲内存不大于所述预置阈值,则将所述任务指针设置为所述任务链表中的下一个任务,以将下一个任务更新为当前任务,并返回所述空闲内存确定模块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳创维数字技术有限公司,未经深圳创维数字技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610995763.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:客户端程序的测试错误定位方法及装置
- 下一篇:对存储器的连续页面读取