本发明涉及计算机领域,特别涉及一种资源池管理方法及系统。
背景技术:
随着计算机领域的发展,计算机的硬件结构也越来越丰富,提供了各式各样的功能,与此同时可用的资源也越来越多,随之而来的问题是,过多的功能导致资源的管理容易出现问题,那些资源空闲可以调用,那些资源被占用无法调用如何高效地处理这些信息成为了当先需要解决的问题。
现有技术中引入了资源池这一管理方法,资源池中有着多个类型相同的资源,当用户需要调用资源时,计算机会前往资源池查询可用的资源,但是这一查询过程会占用中央处理器大量的资源,不能够有效管理资源,提升资源管理效率。
因此如何加快空闲资源的查询时间,提高资源管理效率,成为了需要解决的问题。
技术实现要素:
有鉴于此,本发明的目的在于提供一种资源池管理方法,减少空闲资源的查询时间,提高资源管理效率。其具体方案如下:
一种资源池管理方法,包括:
当需要调用位于资源池中的目标资源,则在预先创建的查询列表中查找所述目标资源相对应的标识符,其中,所述查询列表为保存空闲资源的标识符的列表;
如果查找到所述目标资源相对应的标识符,则将所述目标资源相对应的标识符从所述查询列表中删除;
当停止调用所述目标资源,则将所述目标资源相对应的标识符保存到所述查询列表中。
优选的,所述查询列表的创建过程,包括:
检测所述资源池的资源总数;
将所述资源总数与预先设定的最低占用率相乘,得出资源最低占用数;
对所述资源总数和所述资源最低占用数做差,得出容量值;
根据得出的所述容量值,创建所述查询列表。
优选的,所述查询列表为FIFO。
优选的,所述将所述目标资源相对应的标识符保存到所述查询列表中的过程,包括:
确定所述目标资源的资源类型;
按照预设的映射关系,在所述查询列表中确定出与所述目标资源的资源类型相对应的列表区域,并将所述目标资源相对应的标识符保存至所述列表区域。
优选的,所述在预先创建的查询列表中查找所述目标资源相对应的标识符的过程,包括:
利用所述映射关系,在所述查询列表中确定出与所述目标资源的资源类型相对应的所述列表区域;
从所述列表区域中查找与所述目标资源相对应的标识符。
本发明还公开了一种资源池管理系统,包括:
查询列表创建模块,用于创建对空闲资源的标识符进行保存的查询列表;
查找模块,用于当需要调用位于资源池中的目标资源,则在所述查询列表中查找所述目标资源相对应的标识符;
删除模块,用于当所述查找模块查找到所述目标资源相对应的标识符,则将所述目标资源相对应的标识符从所述查询列表中删除;
标识符保存模块,用于当停止调用所述目标资源,则将所述目标资源相对应的标识符保存到所述查询列表中。
优选的,所述查询列表模块具体用于创建对空闲资源的标识符进行保存的FIFO。
优选的,所述查询列表创建模块包括:
资源池检测单元,用于检测所述资源池的资源总数;
计算单元,用于将所述资源总数与预先设定的最低占用率相乘,得出资源最低占用数,对所述资源总数和所述资源最低占用数做差,得出容量值;
查询列表创建单元,用于根据所述计算单元得出的所述容量值,创建所述查询列表。
优选的,所述标识符保存模块包括:
资源类型确定单元,用于确定所述目标资源的资源类型;
区域确定单元,用于按照预设的映射关系,在所述查询列表中确定出与所述目标资源的资源类型相对应的列表区域;
保存单元,用于将所述目标资源相对应的标识符保存至所述列表区域。
优选的,所述查找模块包括:
区域确定子模块,用于利用所述映射关系,在所述查询列表中确定出与所述目标资源的资源类型相对应的所述列表区域;
标识符查找子模块,用于从所述列表区域中查找与所述目标资源相对应的标识符。
本发明所提供的一种资源池管理方法包括:当需要调用位于资源池中的目标资源,则在预先创建的查询列表中查找目标资源相对应的标识符,其中,查询列表为保存空闲资源的标识符的列表;如果查找到目标资源相对应的标识符,则将目标资源相对应的标识符从查询列表中删除;当停止调用目标资源,则将目标资源相对应的标识符保存到查询列表中。可见,本发明中系统在存储空闲资源的标识符的查询列表中进行查找,借由标识符与空闲资源之间的索引关系完成对空闲资源的调用,不再直接前往资源池依次的对资源进行检索查找空闲资源。相对于现有技术的逐个查找资源的占用信息,通过查找标识符进行空闲资源的调用,大大减少了中央处理器的计算时间,极大地加快了空闲资源的查找时间,提高了资源管理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种资源池管理方法流程图;
图2为本发明实施例提供的另一种资源池管理方法流程图;
图3为本发明实施例提供的一种资源池管理系统结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种资源池管理方法,如图1所示,该方法包括:
步骤S11:当需要调用位于资源池中的目标资源,则在预先创建的查询列表中查找目标资源相对应的标识符,其中,查询列表为保存空闲资源的标识符的列表。
具体的,当系统现有资源占用较多时,为了保证系统的正常运转,需要调用处于空闲状态的目标资源,此时中央处理器在预先创建的查询列表中查找是否有目标资源的标识符。
其中,预先创建的查询列表中保存有空闲资源的标识符,当空闲资源被调用时,变为已占用资源,其空闲时保存在查询列表中的标识符将被删除,以此确保查询列表中只保存有空闲资源的标识符;查询列表可以为FIFO(即First Input First Output,先入先出队列)。
可以理解的是,保存在查询列表中的标识符是空闲资源所唯一对应的符号。本实施例具体可以通过数组的方式,对资源池中的资源进行组织管理,在这种情况下,可以将每个资源所唯一对应的数组下标确定为该资源的标识符。另外,本实施例中,标识符的位宽可以与系统位宽保持一致,例如,在32位操作系统中,可以将资源标识符所对应的位宽设为32位。当然,本实施例中,也可以基于资源总数的大小,来确定资源标识符所对应的位宽,例如,假设资源池中的资源总数为1024个,则标识符所对应的位宽可以设为10位或者10位以上。
步骤S12:如果查找到目标资源相对应的标识符,则将目标资源相对应的标识符从查询列表中删除。
具体的,如果查找到目标资源的标识符则调用目标资源,并将目标资源相对应的标识符从查询列表中删除。
如果没有查找到,则说明目标资源已被占用,系统查找是否有同类型可替代的空闲资源,如果有则使用可替代的空闲资源并将其相对应的标识符从查询列表中删除,如果没有则等待被占用资源释放。
步骤S13:当停止调用目标资源,则将目标资源相对应的标识符保存到查询列表中。
具体的,当系统任务量下降,不再需要大量的资源时,为了合理分配任务和节能,将停止调用部分资源,此时,目标资源从被占用状态转换为了空闲状态,因此将目标资源相对应标识符重新保存到查询列表中,以便于系统下次调用目标资源时,能够在查询列表中查找到相应的标识符。
具体的,上述步骤S13中,将目标资源相对应的标识符保存到查询列表中的过程,具体可以包括:确定目标资源的资源类型,然后按照预设的映射关系,在查询列表中确定出与目标资源的资源类型相对应的列表区域,并将目标资源相对应的标识符保存至列表区域。
可以理解的是,上述映射关系具体为资源类型与列表区域之间的对应关系,这种情况下,上述查询列表具体可以包括多个列表区域,每个列表区域与一种资源类型相对应,也即,在一个列表区域中所保存的标识符均是同一种资源的标识符。
相应的,上述步骤S11中,在预先创建的查询列表中查找目标资源相对应的标识符的过程,具体可以包括:利用上述映射关系,在查询列表中确定出与目标资源的资源类型相对应的列表区域,然后从该列表区域中查找与目标资源相对应的标识符。
另外,本实施例中,资源的类型包括但不限于计算资源、存储资源和IO资源(IO,即Input/Output)。可见,本实施例可以通过先查找出与目标资源的资源类型所对应的列表区域,然后再从该列表区域中查找与目标资源对应的标识符,这样能够进一步加快标识符的查找速度。
可见,本发明实施例中系统在存储空闲资源的标识符的查询列表中进行查找,借由标识符与空闲资源之间的索引关系完成对空闲资源的调用,不再直接前往资源池依次的对资源进行检索查找空闲资源。相对于现有技术的逐个查找资源的占用信息,通过查找标识符进行空闲资源的调用,大大减少了中央处理器的计算时间,极大地加快了空闲资源的查找时间,提高了资源管理效率。
本发明实施例公开了一种具体的资源池管理方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图2所示,具体的:
步骤S21:检测资源池的资源总数。
具体实施时,增加一个深度检测标识符,该标识符的计数初始值设为0,在资源池未被使用时将深度检测标识符指向资源池中的首个资源,接着调用资源池中的资源,当首个资源被调用时,深度检测标识符指向下一个资源,同时在计数初始值上+1,依次调用资源池中资源,深度检测标识符的指向也依次指向被调用资源的下一个资源,并每更换一次指向方向,计数值就+1,直到资源池中的所有资源被调用,深度检测标识符不再指向资源池中的资源,得到计数值,最后将计数值+1便是最后的资源总数。
步骤S22:将资源总数与预先设定的最低占用率相乘,得出资源最低占用数。
具体的,用户可以根据实际应用经验或观察统计,得知资源池的资源最低占用率,将资源总数和最低占用率相乘,得出资源最低占用数。
例如,资源总数为8,用户推测出资源池的资源最低占用率为30%,两者相乘得出资源最低占用数为2.4,但因实际应用中用小数表示标识符没有意义,又为了保证系统能够正常运行所以采取向上取整的办法,最终资源最低占用数为3。
步骤S23:用资源总数和资源最低占用数做差值,得出容量值。
具体的,将资源总数减去资源最低占用数,得出容量值为5。
当然计算方法不局限于将资源总数与资源总数和预先设定的最低占用率的乘积做差值,还可以用资源总数与资源最高空闲率相乘来计算出查询列表的容量,在此不做限定。
步骤S24:根据得出的容量值,创建查询列表。
步骤S25:当需要调用目标资源,则在预先创建的查询列表中查找目标资源相对应的标识符,其中,查询列表为保存空闲资源的标识符的列表。
步骤S26:如果查找到目标资源相对应的标识符,则将目标资源相对应的标识符从查询列表中删除。
步骤S27:当停止调用目标资源,则将目标资源相对应的标识符保存到查询列表中。
本发明实施例,提供了一种具体的查询列表创建方式,通过该查询列表创建方式,降低了查询列表占用的空间,且较小的容量也能加快查询速度。
本发明实施例还公开了一种资源池管理系统,参见图3所示,该系统包括:
查询列表创建模块11,用于创建对空闲资源的标识符进行保存的查询列表;
查找模块12,用于当需要调用位于资源池中的目标资源,则在查询列表中查找目标资源相对应的标识符;
删除模块13,用于当查找模块12查找到目标资源相对应的标识符,则将目标资源相对应的标识符从查询列表中删除;
标识符保存模块14,用于当停止调用目标资源,则将目标资源相对应的标识符保存到查询列表中。
其中,查询列表模块具体用于创建对空闲资源的标识符进行保存的FIFO。
本实施例中查询列表创建模块11具体包括资源池检测单元、计算单元和查询列表创建单元,其中,
资源池检测单元,用于检测资源池的资源总数;
计算单元,用于将资源总数与预先设定的最低占用率相乘,得出资源最低占用数,对资源总数和资源最低占用数做差,得出容量值;
查询列表创建单元,用于根据计算单元得出的容量值,创建上述查询列表。
另外,上述标识符保存模块14具体包括资源类型确定单元、区域确定单元和保存单元;其中,
资源类型确定单元,用于确定目标资源的资源类型;
区域确定单元,用于按照预设的映射关系,在查询列表中确定出与目标资源的资源类型相对应的列表区域;
保存单元,用于将目标资源相对应的标识符保存至列表区域。
相应的,上述查找模块包括区域确定子模块和标识符查找子模块;其中,
区域确定子模块,用于利用上述映射关系,在查询列表中确定出与目标资源的资源类型相对应的列表区域;
标识符查找子模块,用于从上述列表区域中查找与目标资源相对应的标识符。
可见,本发明实施例中系统不再直接前往资源池依次的对资源进行检索,查找空闲资源,而是在存储空闲资源的标识符的查询列表中进行查找,借由标识符与空闲资源之间的索引关系完成对空闲资源的调用,查找标识符相对于查找相应的资源信息,大大减少了中央处理器的计算时间,极大地加快了空闲资源的查找时间,提高了资源管理效率。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种资源池管理方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。