本申请涉及内存管理领域,提供一种子系统内存管理方法及装置。所述方法包括:向操作系统申请待分配内存;所述待分配内存由多个待分配页面组成;根据所述多个待分配页面生成待分配页链表;所述待分配页链表的节点与所述多个待分配页面一一对应;根据所述待分配页链表,采用不同的分配方式为不同类型的数据分配内存,并采用不同的回收方式回收不同类型的数据占用的内存。本申请实施例提供的子系统内存管理方法及装置可以实现子系统内存自我管理且内存分配与回收的效率提高,因此能够为可信软件基提供更为安全的运行环境。件基提供更为安全的运行环境。件基提供更为安全的运行环境。
【技术实现步骤摘要】
子系统内存管理方法及装置
[0001]本申请涉及内存管理
,具体涉及一种子系统内存管理方法及装置。
技术介绍
[0002]我国自主创新的可信计算3.0技术是以可信平台控制模块TPCM(Trusted Platform Control Module,TPCM)为技术路线,以基于自主创新的对称与非对称结合的密码体制的主动免疫双体系架构为核心,的可信计算技术。在系统设备硬件层通过植入TPCM作为可信根,并内置可信密码模块TCM(TrustedCryptographyModule,TCM)实现可信控制功能,将密码与控制相结合,构建计算与防护并行的可信计算节点,由信任根实现对可信计算平台的主动控制;在设备软件层通过部署可信软件基软件,构建宿主机操作系统和可信软件基的双重系统核心,无需改变应用层软件即可实现对系统的执行环境及进程行为的主动可信度量,为系统构建主动免疫防御能力;在系统网络层,通过可信连接技术实现对接入网络源、目标平台的可信验证和控制,确保网络连接的可信性,将可信性由单点拓展至整个网络。
[0003]为了实现以上技术功能,需要保证可信软件基运行环境的安全。通过以进程的方式构建安全子系统可为可信软件基在操作系统中运行提供安全保障,但传统的子系统在运行过程中涉及到针对不同类型数据的内存分配和占用,一方面,采用传统的malloc函数和free函数,在每次为数据分配内存时均向操作系统申请内存,这种方式会产生频繁的系统调用,导致用户态和内核态的状态频繁切换,系统开销较大;另一方面,针对不同类型的数据采用相同的内存分配和回收方式,分配回收效率低。以上问题的出现,会影响可信软件基运行环境的安全。
技术实现思路
[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]若所述待回收区域与同一页面中的未分配区域相邻,则本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种子系统内存管理方法,其特征在于,包括:向操作系统申请待分配内存;所述待分配内存由多个待分配页面组成;根据所述多个待分配页面生成待分配页链表;所述待分配页链表的节点与所述多个待分配页面一一对应;根据所述待分配页链表,采用不同的分配方式为不同类型的数据分配内存,并采用不同的回收方式回收不同类型的数据占用的内存。2.根据权利要求1所述的子系统内存管理方法,其特征在于,所述采用不同的分配方式为不同类型的数据分配内存,包括:若当前待分配页面剩余内存大小大于或等于待存储静态数据所需内存大小,则在所述剩余内存中为所述待存储静态数据分配静态内存;若当前待分配页面剩余内存大小小于待存储静态数据所需内存大小或所述待存储静态数据占用的待分配页面数为零,则从所述待分配页链表中获取节点对应的第一个空闲页,在所述第一个空闲页中为所述待存储静态数据分配静态内存。3.根据权利要求1所述的子系统内存管理方法,其特征在于,所述采用不同的分配方式为不同类型的数据分配内存,包括:生成索引链表;所述索引链表中的节点与已分配内存的不同预设数据大小一一对应,且所述节点已记录对应预设数据大小占用的待分配页面数、待分配页面的当前页和待分配页面的空闲槽位数量;所述槽位为任一待分配页面的可用内存中与对应预设数据大小相等的内存空间,所述可用内存为所述任一待分配页面去除头部记录信息后的内存;遍历所述索引链表,若所述索引链表中的节点对应的所有预设数据大小中存在匹配预设数据大小,则查询与所述匹配预设数据大小对应的待分配页面数是否为零;所述匹配预设数据大小为与待存储固定大小数据大小相等的预设数据大小;若与所述匹配预设数据大小对应的待分配页面数不为零,则查询与所述匹配预设数据大小对应的待分配页面的当前页中是否有空闲槽位;若与所述匹配预设数据大小对应的待分配页面数为零,则从所述待分配页链表中获取节点对应的第一个空闲页,在所述第一个空闲页中为所述待存储固定大小数据分配固定大小内存;若与所述匹配预设数据大小对应的待分配页面的当前页中有空闲槽位,则将所述空闲槽位作为固定大小内存分配给所述待存储固定大小数据;若与所述匹配预设数据大小对应的待分配页面的当前页中没有空闲槽位,则从所述待分配页链表中获取节点对应的第一个空闲页,在所述第一个空闲页中为所述待存储固定大小数据分配固定大小内存。4.根据权利要求1所述的子系统内存管理方法,其特征在于,所述采用不同的分配方式为不同类型的数据分配内存,包括:若所述多个待分配页面中存在匹配待分配页面,则在所述匹配待分配页面中为待存储动态数据分配动态内存;所述匹配待分配页面为剩余内存大小大于或等于所述待存储动态数据所需内存大小的待分配页面;若所述多个待分配页面中不存在匹配待分配页面,则查询当前待分配页面的剩余内存大小是否大于或等于所述待存储动态数据所需内存大小;
若所述当前待分配页面的剩余内存大小大于或等于所述待存储动态数据所需内存大小,则在所述当前待分配页面中为待存储动态数据分配动态内存;若所述当前待分配页面的剩余内存大小小于所述待存储动态数据所需内存大小,则从所述待分配页链表中获取节点对应的第一个空闲页,在所述第一个空闲页...
【专利技术属性】
技术研发人员:张建标,张磊,黄昊翔,胡俊,
申请(专利权)人:北京工业大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。