[发明专利]一种基于块内存的内存总量动态控制方法及系统有效
| 申请号: | 201910872169.9 | 申请日: | 2019-09-16 |
| 公开(公告)号: | CN110647397B | 公开(公告)日: | 2022-06-03 |
| 发明(设计)人: | 姚熙;何朋涛 | 申请(专利权)人: | 北京方研矩行科技有限公司 |
| 主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/52 |
| 代理公司: | 北京万思博知识产权代理有限公司 11694 | 代理人: | 高镇 |
| 地址: | 100191 北京市朝阳*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 内存 总量 动态控制 方法 系统 | ||
1.一种基于块内存的内存总量动态控制方法,对每个软件模块分别逐批次地分配内存,包括:
软件模块初始化阶段,软件模块申请锁定内存,所述锁定内存由用户期望值和系统实际内存共同确定;
软件模块对应的锁定内存用完后,软件模块申请重新锁定一块扩展内存,所述扩展内存与剩余可锁定内存进行比较后再确定是否调用已有的其他软件模块所未使用的内存,直至该软件模块成功进行内存的扩展,否则,则退出,宣告申请重新锁定失败;
软件模块对应的锁定内存用完后,软件模块申请重新锁定一块扩展内存,重新锁定扩展内存的过程包括:
计算当前的未锁定内存量,并将计算出的当前未锁定内存量与当前的软件模块的最小扩展单元内存量进行比较,如当前未锁定内存量不小于所述最小扩展单元内存量,则按当前未锁定内存量重新锁定内存,宣告当前软件模块的内存扩展成功;否则,则进入对已有的其他软件模块所未使用的内存的解锁调用;
对已有的其他软件模块所未使用的内存的解锁调用,包括:
将当前已有的其他软件模块按照内存使用率进行递增排序,从内存使用率最低的软件模块开始,依次将每个软件模块的未使用内存量的一半予以解除锁定;
在每次解除锁定后计算当前的未锁定内存量,并将计算出的当前未锁定内存量与当前的软件模块的最小扩展单元内存量进行比较,如当前未锁定内存量不小于所述最小扩展单元内存量,则按当前未锁定内存量重新锁定内存,宣告当前软件模块的内存扩展成功,否则则继续对下一已有软件模块的未使用内存进行解锁后再次进行当前未锁定内存量的计算以及与当前的软件模块的最小扩展单元内存量的比较,直至当前软件模块的内存扩展成功,或者所有已有软件模块的未使用内存的一轮解锁完成。
2.根据权利要求1所述的方法,其特征在于,软件模块初始化阶段,软件模块申请锁定内存,此阶段的内存锁定过程包括:
取当前未锁定内存总量的一半作为该软件模块的当前实例锁定内存量上限,将所述当前实例锁定内存量上限与该软件模块的用户期望值相比较,取两者的较小值作为该软件模块的实例实际锁定内存量,即该软件模块初始申请到的锁定内存。
3.根据权利要求1所述的方法,其特征在于,若所有已有软件模块的未使用内存的一轮解锁完成,当前软件模块的内存扩展仍未成功,则宣告当前软件模块的申请扩展内存失败。
4.一种基于块内存的内存总量动态控制系统,用于对每个软件模块分别逐批次地分配内存,包括:
初始申请单元,其配置成在软件模块初始化阶段,软件模块申请锁定内存,所述锁定内存由用户期望值和系统实际内存共同确定;
扩展申请单元,其配置成在软件模块对应的锁定内存用完后,软件模块申请重新锁定一块扩展内存,所述扩展内存与剩余可锁定内存进行比较后再确定是否调用已有的其他软件模块所未使用的内存,直至该软件模块成功进行内存的扩展,否则,则退出,宣告申请重新锁定失败;
扩展申请单元中,软件模块对应的锁定内存用完后,软件模块申请重新锁定一块扩展内存,重新锁定扩展内存,扩展申请单元包括:
一次扩展单元,其配置成计算当前的未锁定内存量,并将计算出的当前未锁定内存量与当前的软件模块的最小扩展单元内存量进行比较,如当前未锁定内存量不小于所述最小扩展单元内存量,则按当前未锁定内存量重新锁定内存,宣告当前软件模块的内存扩展成功;否则,则进入对已有的其他软件模块所未使用的内存的解锁调用;
所述扩展申请单元还包括二次扩展单元,二次扩展单元配置成对已有的其他软件模块所未使用的内存的解锁调用,处理过程包括:
将当前已有的其他软件模块按照内存使用率进行递增排序,从内存使用率最低的软件模块开始,依次将每个软件模块的未使用内存量的一半予以解除锁定;
在每次解除锁定后计算当前的未锁定内存量,并将计算出的当前未锁定内存量与当前的软件模块的最小扩展单元内存量进行比较,如当前未锁定内存量不小于所述最小扩展单元内存量,则按当前未锁定内存量重新锁定内存,宣告当前软件模块的内存扩展成功,否则则继续对下一已有软件模块的未使用内存进行解锁后再次进行当前未锁定内存量的计算以及与当前的软件模块的最小扩展单元内存量的比较,直至当前软件模块的内存扩展成功,或者所有已有软件模块的未使用内存的一轮解锁完成。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京方研矩行科技有限公司,未经北京方研矩行科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910872169.9/1.html,转载请声明来源钻瓜专利网。





