一种操作系统内存空间分配算法的制作方法

文档序号:12596677阅读:967来源:国知局
一种操作系统内存空间分配算法的制作方法与工艺

本发明涉及一种操作系统内存空间分配算法,属于操作系统内存资源管理技术领域。



背景技术:

在操作系统内存管理中,内存空间被动态划分为若干长度不等的区域,操作系统用空闲区表管理这些区域,该表记录着当前未被进程占有的所有空闲区域,操作系统进行内存分配时,首先查找空闲区表,找到一个空闲区,并将该空闲区分割成两部分,一部分的长度与进程所申请的长度相同,另一部分的长度为原长度与分配长度之差,并作为新的空闲区记录在空闲区表中。

当前,被广泛应用的内存空间分配算法有最先适应算法,最佳适应算法,最坏适应算法,然而,单一的内存空间分配算法只适用于特定的情况,不能在复杂多变的情况下降低内存碎片,导致内存资源的严重浪费。



技术实现要素:

本发明要解决的技术问题是提供一种操作系统内存空间分配算法,通过综合3种内存空间分配算法,克服每种内存空间分配算法应用中的缺陷,减少在复杂多变的情况下的内存碎片,提高内存资源的利用率。

本发明是通过如下技术方案来实现的:

一种操作系统内存空间分配算法,所述方法具体步骤包括:

步骤101.令i=1,i为空闲区表的序号;

步骤102.读取内存空闲区表第i个空闲区Ti

步骤103.判断空闲区分配阈值Cim是否大于等于2,Cim表示内存空闲区表第i个空闲区Ti的分配阈值Cm, 空闲区分配阈值Cm为一个空闲区分别根据最先适应算法、最佳适应算法、最坏适应算法三种算法判断是否分配该空闲区的结果的总和,

若Cim≥2,则分配空闲区表第i个空闲区Ti,若Cim<2,则进行下一步的判断;步骤104.判断i是否小于n,n表示内存空闲区表中空闲区的个数,

若i小于n,则i加1,并返回步骤102,否则分配空闲区表第1个空闲区T1;步骤105.重复步骤102~步骤104。

进一步地,所述的空闲区分配阈值Cm的具体计算步骤包括:

步骤201.读取待分配的空闲区;

步骤202.应用最先适应算法判定是否分配该空闲区,若分配该空闲区,则C1=1,否则C1=0;

步骤203.应用最佳适应算法判定是否分配该空闲区,若分配该空闲区,则C2=1,否则C2=0;

步骤204.应用最坏适应算法判定是否分配该空闲区,若分配该空闲区,则C3=1,否则C3=0;

步骤205.计算空闲区分配阈值Cm,计算公式为Cm=C1+C2+C3

本发明具有以下有益效果:

本发明通过综合3种内存空间分配算法,克服每种内存空间分配算法应用中的缺陷,减少在复杂多变的情况下的内存碎片,提高内存资源的利用率。

附图说明

图1为内存空间分配算法流程示意图;

图2为空闲区分配阈值Cm的计算流程。

具体实施方式

下面结合附图和实施例,对本发明作进一步说明,但本发明的内容并不限于所述范围。

实施例1:如图1、图2所示,一种操作系统内存空间分配算法,所述方法具体步骤包括:

步骤101.令i=1,i为空闲区表的序号;

步骤102.读取内存空闲区表第i个空闲区Ti

步骤103.判断空闲区分配阈值Cim是否大于等于2,Cim表示内存空闲区表第i个空闲区Ti的分配阈值Cm, 空闲区分配阈值Cm为一个空闲区分别根据最先适应算法、最佳适应算法、最坏适应算法三种算法判断是否分配该空闲区的结果的总和,

若Cim≥2,则说明最少有两种算法认为应该分配该空闲区,此时分配空闲区表第i个空闲区Ti,若Cim<2,则说明最多有一种算法认为应该分配该空闲区,此时进行下一步的判断;

步骤104.判断i是否小于n,n表示内存空闲区表中空闲区的个数,

若i小于n,则i加1,并返回步骤102,若否则说明没有其他的空闲区等待判断是否分配,此时分配空闲区表第1个空闲区T1

步骤105.重复步骤102~步骤104。

进一步地,所述的空闲区分配阈值Cm的具体计算步骤包括:

步骤201.读取待分配的空闲区;

步骤202.应用最先适应算法判定是否分配该空闲区,若分配该空闲区,则C1=1,否则C1=0;

步骤203.应用最佳适应算法判定是否分配该空闲区,若分配该空闲区,则C2=1,否则C2=0;

步骤204.应用最坏适应算法判定是否分配该空闲区,若分配该空闲区,则C3=1,否则C3=0;

步骤205.计算空闲区分配阈值Cm,计算公式为Cm=C1+C2+C3

以上结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1