一种保护内存分配方法及装置制造方法及图纸

技术编号:39058868 阅读:17 留言:0更新日期:2023-10-12 19:51
本申请提供了一种保护内存分配方法及装置,该方法包括:响应于请求方的保护内存申请请求,判断预留的第一内存空间是否满足所述请求方的内存需求,第一内存空间为经过安全保护的内存空间;若是,基于预留的第一内存空间,为请求方分配保护内存空间;若否,从共享的第二内存空间中申请满足保护内存需求的内存空间,得到待保护内存空间,对待保护内存空间进行安全保护,得到第三内存空间;至少基于第三内存空间,为请求方分配保护内存空间。为请求方分配保护内存空间。为请求方分配保护内存空间。

【技术实现步骤摘要】
一种保护内存分配方法及装置


[0001]本申请涉及计算机
,特别涉及一种保护内存分配方法及装置。

技术介绍

[0002]目前,电子设备可以提供保护内存给请求方(如,应用程序、操作系统)使用,通常在电子系统启动时,就会默认预留一部分固定大小的内存空间作为保护内存。
[0003]但是,目前各种应用场景,对于保护内存的空间大小不同,如何配置大小合适的保护内存空间,以满足请求方的需求成为问题。

技术实现思路

[0004]本申请提供如下技术方案:
[0005]本申请一方面提供一种保护内存分配方法,包括:
[0006]响应于请求方的保护内存申请请求,判断预留的第一内存空间是否满足所述请求方的内存需求,所述第一内存空间为经过安全保护的内存空间;
[0007]若是,基于所述预留的第一内存空间,为所述请求方分配保护内存空间;
[0008]若否,从共享的第二内存空间中申请满足保护内存需求的内存空间,得到待保护内存空间,对所述待保护内存空间进行安全保护,得到第三内存空间;
[0009]至少基于所述第三内存空间,为所述请求方分配保护内存空间。
[0010]所述判断预留的第一内存空间是否满足所述请求方的内存需求,包括:
[0011]基于预留的第一内存空间对应的内存空间管理信息,确定预留的第一内存空间中是否包含满足所述请求方的内存需求且可使用的连续内存空间,所述内存空间管理信息表征所述预留的第一内存空间的使用情况。
[0012]基于所述预留的第一内存空间,为所述请求方分配内存空间,包括:
[0013]从所述预留的第一内存空间中选择满足所述请求方的内存需求且可使用的连续内存空间;
[0014]将满足所述请求方的内存需求且可使用的连续内存空间分配给所述请求方。
[0015]从共享的第二内存空间中申请满足保护内存需求的内存空间,得到待保护内存空间,包括:
[0016]从共享的第二内存空间中申请满足所述请求方的内存需求且可使用的连续内存空间,得到待保护内存空间;
[0017]所述至少基于所述第三内存空间,为所述请求方分配保护内存空间,包括:
[0018]从所述第三内存空间中为所述请求方分配保护内存空间。
[0019]从共享的第二内存空间中申请满足所述请求方的内存需求且可使用的连续内存空间,得到待保护内存空间,包括:
[0020]如果共享的第二内存空间中未被占用且连续的内存空间满足所述请求方的内存需求,从所述未被占用且连续的内存空间中申请满足所述请求方的内存需求且可使用的连
续内存空间,得到待保护内存空间;
[0021]如果共享的第二内存空间中未被占用且连续的内存空间不满足所述请求方的内存需求,对所述第二内存空间内的数据进行搬移操作,以获取满足所述请求方的内存需求的未被占用且连续的内存空间作为待保护内存空间。
[0022]所述从共享的第二内存空间中申请满足保护内存需求的内存空间,得到待保护内存空间,包括:
[0023]若所述共享的第二内存空间内的可用空间不满足所述请求方的内存需求,确定所述请求方的内存需求和所述预留的第一内存空间中可使用的内存空间之间的差值;
[0024]基于所述差值,从所述共享的第二内存空间中申请满足保护内存需求的内存空间,得到待保护内存空间;
[0025]所述至少基于所述第三内存空间,为所述请求方分配保护内存空间,包括:
[0026]基于所述预留的第一内存空间和所述第三内存空间,为所述请求方分配保护内存空间。
[0027]所述第二内存空间和第一内存空间的物理地址之间连续;
[0028]基于所述差值,从所述共享的第二内存空间中申请满足保护内存需求的内存空间,得到待保护内存空间,包括:
[0029]基于所述差值,从所述共享的第二内存空间中申请物理地址与所述预留的第一内存空间之间连续的内存空间,得到待保护内存空间;
[0030]基于所述预留的第一内存空间和所述第三内存空间,为所述请求方分配内存空间,包括:
[0031]从所述预留的第一内存空间和所述第三内存空间中选择满足所述请求方的内存需求且可使用的连续内存空间;
[0032]将满足所述请求方的内存需求且可使用的连续内存空间分配给所述请求方。
[0033]基于所述差值,从所述共享的第二内存空间中申请物理地址与所述预留的第一内存空间之间连续的内存空间,得到待保护内存空间,包括:
[0034]如果所述共享的第二内存空间中物理地址与所述预留的第一内存空间之间连续且满足所述差值的内存空间未被占用,将所述共享的第二内存空间中物理地址与所述预留的第一内存空间之间连续且满足所述差值的内存空间确定为待保护内存空间;
[0035]如果所述共享的第二内存空间中物理地址与所述预留的第一内存空间之间连续且满足所述差值的内存空间被占用,对所述共享的第二内存空间中物理地址与所述预留的第一内存空间之间连续且满足所述差值的内存空间中的数据进行搬移操作,获得待保护内存空间。
[0036]所述方法还包括:
[0037]响应于所述请求方的保护内存释放请求,获得所述请求方对应的保护内存空间的物理地址;
[0038]判断所述请求方对应的保护内存空间的物理地址是否全部属于所述第一内存空间的物理地址;
[0039]若是,对所述请求方对应的保护内存空间进行释放;
[0040]若否,判断所述请求方对应的保护内存空间的物理地址是否全部属于所述第三内
存空间的物理地址;
[0041]若全部属于所述第三内存空间的物理地址,对所述请求方对应的保护内存空间进行释放及取消安全保护;
[0042]若非全部属于所述第三内存空间的物理地址,对所述请求方对应的保护内存空间中来自所述第一内存空间的保护内存空间进行释放,及对所述请求方对应的保护内存空间中来自所述第三内存空间的保护内存空间进行释放及取消安全保护。
[0043]本申请另一方面提供一种保护内存分配装置,包括:
[0044]判断模块,用于响应于请求方的保护内存申请请求,判断预留的第一内存空间是否满足所述请求方的内存需求,所述第一内存空间为经过安全保护的内存空间;
[0045]第一分配模块,用于若所述预留的第一内存空间满足所述请求方的内存需求,基于所述预留的第一内存空间,为所述请求方分配保护内存空间;
[0046]申请模块,用于若所述预留的第一内存空间不满足所述请求方的内存需求,从共享的第二内存空间中申请满足保护内存要求的内存空间,得到待保护内存空间;
[0047]安全保护模块,用于对所述待保护内存空间进行安全保护,得到第三内存空间;
[0048]第二分配模块,用于至少基于所述第三内存空间,为所述请求方分配保护内存空间。
[0049]在本申请中,通过响应于请求方的保护内存申请请求,判断预留的第一内存空间是否满足所述请求方的内存需求,若是,基本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种保护内存分配方法,包括:响应于请求方的保护内存申请请求,判断预留的第一内存空间是否满足所述请求方的内存需求,所述第一内存空间为经过安全保护的内存空间;若是,基于所述预留的第一内存空间,为所述请求方分配保护内存空间;若否,从共享的第二内存空间中申请满足保护内存需求的内存空间,得到待保护内存空间,对所述待保护内存空间进行安全保护,得到第三内存空间;至少基于所述第三内存空间,为所述请求方分配保护内存空间。2.根据权利要求1所述的方法,所述判断预留的第一内存空间是否满足所述请求方的内存需求,包括:基于预留的第一内存空间对应的内存空间管理信息,确定预留的第一内存空间中是否包含满足所述请求方的内存需求且可使用的连续内存空间,所述内存空间管理信息表征所述预留的第一内存空间的使用情况。3.根据权利要求1或2所述的方法,基于所述预留的第一内存空间,为所述请求方分配内存空间,包括:从所述预留的第一内存空间中选择满足所述请求方的内存需求且可使用的连续内存空间;将满足所述请求方的内存需求且可使用的连续内存空间分配给所述请求方。4.根据权利要求1所述的方法,从共享的第二内存空间中申请满足保护内存需求的内存空间,得到待保护内存空间,包括:从共享的第二内存空间中申请满足所述请求方的内存需求且可使用的连续内存空间,得到待保护内存空间;所述至少基于所述第三内存空间,为所述请求方分配保护内存空间,包括:从所述第三内存空间中为所述请求方分配保护内存空间。5.根据权利要求4所述的方法,从共享的第二内存空间中申请满足所述请求方的内存需求且可使用的连续内存空间,得到待保护内存空间,包括:如果共享的第二内存空间中未被占用且连续的内存空间满足所述请求方的内存需求,从所述未被占用且连续的内存空间中申请满足所述请求方的内存需求且可使用的连续内存空间,得到待保护内存空间;如果共享的第二内存空间中未被占用且连续的内存空间不满足所述请求方的内存需求,对所述第二内存空间内的数据进行搬移操作,以获取满足所述请求方的内存需求的未被占用且连续的内存空间作为待保护内存空间。6.根据权利要求1所述的方法,所述从共享的第二内存空间中申请满足保护内存需求的内存空间,得到待保护内存空间,包括:若所述共享的第二内存空间内的可用空间不满足所述请求方的内存需求,确定所述请求方的内存需求和所述预留的第一内存空间中可使用的内存空间之间的差值;基于所述差值,从所述共享的第二内存空间中申请满足保护内存需求的内存空间,得到待保护内存空间;所述至少基于所述第三内存空间,为所述请求方分配保护内存空间,包括:基于所述预留的第一内存空间和所述第三内存空间,为所述请求方分配保护内存空
间。7.根据权利要求6所述的方法,所述第二内存空间和第一内存空间的物理地...

【专利技术属性】
技术研发人员:苏金洲贾永泉
申请(专利权)人:鼎道智芯上海半导体有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1