本发明涉及操作系统领域,尤其涉及一种操作系统中内存优化使用方法。
背景技术:
1、在操作系统中,最常见的虚拟空间的映射方法是通过伙伴算法将物理内存按内存页大小4kb进行管理,再将虚拟空间和物理空间按内存页大小进行映射。如果虚拟映射的虚拟空间小于内存页的大小,则按一个内存页的大小映射。但映射的虚拟空间大小内存页的大小时,则按一个内存页映射,会产生巨大的内存内碎片;同时,也存在虚拟空间映射的颗粒度单一,虚拟空间映射大小单位为4kb,无法同时支持多种不同的颗粒度进行虚拟空间映射。
技术实现思路
1、(一)要解决的技术问题
2、鉴于现有技术的上述缺点、不足,本发明提供一种操作系统中内存优化使用方法,其解决了嵌入式操作系统中内存页申请效率和时间确定性问题,也解决了使用伙伴算法完成虚拟空间映射带来的内存内碎片问题和虚拟空间映射的颗粒度单一的问题。
3、(二)技术方案
4、为了达到上述目的,本发明采用的主要技术方案包括:
5、第一方面,一种操作系统中内存优化使用方法,包括:
6、s1、接收第一内存申请请求时,获取第一内存申请请求中需要申请的第一内存空间;
7、s2、根据预先设置的颗粒度将所述第一内存空间按颗粒度从大到小通过伙伴算法进行拆分,生成至少一种颗粒度不同的空间块;
8、s3、判断所有空间块和当前已通过伙伴算法划分的物理内存页的第一颗粒度是否匹配;
9、s4、若不匹配,则获取一个单位的第一颗粒度的物理内存页,采用伙伴算法对申请的一个单位的第一颗粒度物理内存页按照该空间块对应的颗粒度进行划分,得到第二次划分后的内存页;
10、s5、根据划分后的第一颗粒度物理内存页和第二次划分后的内存页,向第一内存申请请求发送反馈响应,该响应携带申请到的与内存块颗粒度匹配的内存页信息;
11、所述第一颗粒度和第二颗粒度均为预先设置的颗粒度中的一种,且第一颗粒度为预先设置的颗粒度中最大的一种。
12、可选地,所述方法还包括:
13、s6-1、接收到第二内存申请请求,获取第二内存申请请求中需要申请的第二内存空间;
14、s6-2、根据预先设置的颗粒度将所述第一内存空间按颗粒度从大到小通过伙伴算法进行拆分,生成至少一种颗粒度不同的空间块;
15、s6-3、判断该第二申请请求的所有空间块与当前已通过伙伴算法划分的物理内存页颗粒度、第二次划分后的内存页对应的颗粒度分别进行匹配;
16、s6-4、若存在与已通过伙伴算法划分的物理内存页颗粒度匹配的空间块,则向第二内存申请请求反馈响应,该响应携带申请到的与第二内存申请请求中对应空间块匹配的内存信息,该内存页信息包括第一颗粒度的内存页信息;
17、若存在与第二次划分后的内存页匹配的空间块,则向第二内存申请请求反馈响应,该响应携带申请到的与第二内存申请请求中对应空间块匹配的内存页信息,该内存页信息包括第二颗粒度的内存信息。
18、可选地,所述方法还包括:
19、s7、获取到已占用的内存页信息释放的消息后,判断当前已释放的内存页的颗粒度类型,根据当前已释放的内存页的空间和与该颗粒度类型一致的所有空闲内存页空间,判断是否能通过伙伴算法组成一个第一颗粒度的物理内存页,若是则组成一个第一颗粒度的物理内存页。
20、可选地,所述s6-4还包括:
21、若第二次划分后的内存页不足以满足第二内存申请请求所申请的内存空间,则再次获取至少一个单位的第一颗粒度的物理内存页,采用伙伴算法对申请的一个单位的第一颗粒度物理内存页按照第二次划分后的内存页对应的颗粒度进行划分。
22、可选地,所述第一内存空间和所述第二内存空间为虚拟空间。
23、可选地,所述发送反馈响应为通过虚拟空间映射的方法反馈响应。
24、可选地,所述预先设置的颗粒度为2nkb,n为自然数。
25、可选地,所述预先设置的颗粒度包括:1kb、4kb和1mb。
26、第二方面,一种计算机设备,包括存储器和处理器,所述存储器存储计算机程序,所述处理器执行所述计算机程序时实现上述技术方案中任意一项所述的操作系统中内存优化使用方法。
27、第三方面,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述技术方案中任意一项所述的操作系统中内存优化使用方法。
28、(三)有益效果
29、本发明的有益效果是:本发明一种操作系统中内存优化使用方法,由于采用二级伙伴算法将物理内存按预先设置的不同的颗粒度进行多次划分,相对于现有技术而言,其可以申请不同大小的内存页,可以为中小型规模的存储管理提供更好的实用性;在虚拟空间映射时,可以申请不同大小的内存页完成映射,提供更小的虚拟空间映射颗粒度;本发明通过二级伙伴算法可以优化内存页申请时产生的内碎片和实现内存页申请最差时间可控,通过申请不同大小的内存页,虚拟空间映射可以支持多次不同的颗粒度。
1.一种操作系统中内存优化使用方法,其特征在于,包括:
2.根据权利要求1所述的操作系统中内存优化使用方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的操作系统中内存优化使用方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的操作系统中内存优化使用方法,其特征在于,所述s6-4还包括:
5.根据权利要求2所述的操作系统中内存优化使用方法,其特征在于,所述第一内存空间和所述第二内存空间为虚拟空间。
6.根据权利要求5所述的操作系统中内存优化使用方法,其特征在于,所述发送反馈响应为通过虚拟空间映射的方法反馈响应。
7.根据权利要求1所述的操作系统中内存优化使用方法,其特征在于,所述预先设置的颗粒度为2nkb,n为自然数。
8.根据权利要求7所述的操作系统中内存优化使用方法,其特征在于,所述预先设置的颗粒度包括:1kb、4kb和1mb。
9.一种计算机设备,包括存储器和处理器,所述存储器存储计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任意一项所述的操作系统中内存优化使用方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任意一项所述的操作系统中内存优化使用方法。