能够有效使用存储器的存储池管理方法和系统技术方案

技术编号:2876746 阅读:186 留言:0更新日期:2012-04-11 18:40
一种存储池管理方法,用于从具有多个子存储池的存储池中得到存储区,包括以下步骤: 接收来自任务程序的指定请求存储区容量的存储区占用请求; 以子存储池为单位按关于请求存储区容量的预定的搜索顺序,从存储池中搜索等于或大于所请求存储区容量的可分配存储区;以及 当在任何一个所述子存储池中发现所述可分配存储区时,从可分配存储区得到所请求存储区容量的所述存储区。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及用于计算机等的存储池管理方法和系统。
技术介绍
众所周知各种各样的装置或系统由软件程序控制。在这种装置中,当程序执行时使用各种数据。虽然所有的数据都存储在(主)存储器中有利于程序的高速执行,但是大容量的存储器非常昂贵。因此,存储器的容量通常小于存储所有的数据所需要的容量。因此,存储器根据来自程序的占用(getting)请求存储所需的数据部分。当存储器没有可分配的存储区用来接收来自程序的占用请求时,暂停程序的执行直到在存储器中出现可分配的存储区。因此,必须尽可能有效的使用存储器,以避免这种情况。采用相关的存储池管理系统来有效地利用存储器,并称作可变长度存储池管理系统。存储池管理系统允许来自程序的占用请求随意请求存储器容量。当接收到占用请求时,存储池管理系统搜索存储器等于或大于所请求的存储器容量的可分配存储区的可用或未占用的存储区。当作存储器中找到可分配存储区时,存储池管理系统占用或调取部分或全部可分配的存储区作为具有所请求的存储器容量的调取存储区。所调取的存储区分配给或被程序占用。存储池管理系统接收到另一个占用请求时重复上述操作。另一方面,存储池管理系统响应来自程序的释放请求释放被程序占用的占用存储区,将占用区变为可重新使用存储区。可重新使用存储区与可用存储区相同,并且相邻的可用存储区联合起来形成连续的可用存储区。当可重新使用存储区与另一个占用存储区相邻时,它只能用于所请求的存储器容量小于或等于自身容量的请求。因此,存在一种情况,虽然可用存储区的总和大于新的占用请求所请求的容量,但是存储池管理系统不能接收新的占用请求。即,存储池管理系统存在可用存储区碎片的问题。另一种相关的存储池管理系统称作固定长度存储池管理系统。存储池管理系统将存储器的存储区分为多个存储池。每个存储池包括多个容量的子存储池。存储池的子存储池的容量彼此不同。存储池管理系统允许来自程序的特定的请求存储器容量。特定的请求存储器容量必须等于存储池的任何一个的子存储池的容量。换句话说,存储池管理系统以子存储池为单位调取和释放存储区。虽然存储池管理系统没有可用存储区的碎片问题,但是存在下面所述的另外的问题。当相应的存储池没有可用的子存储池时,存储池管理系统不能接收特定的请求存储容量等于某个子存储池的容量的新的占用请求。即使其他存储池有足够的可用存储区也会有这样的情况。即,存储池管理系统具有尽管有足够的可用存储区但不能接受占用请求的问题。换句话说,存储池管理系统具有由存储区分区引起的分区缺点。专利技术概述因此,本专利技术的目的是提供一种能够有效利用存储器的存储池管理系统。本专利技术的其它目的会随着说明书的进展而阐述清楚。根据本专利技术的第一方面,存储池管理方法用于从具有多个子存储池的存储池中得到存储区。该方法包括以下步骤接收来自任务程序的指定请求存储区容量的存储区占用请求;以子存储池为单位按关于请求存储区容量的预定的搜索顺序,从存储池中搜索等于或大于所请求存储区容量的可分配存储区;当在任何一个子存储池中发现可分配存储区时,从可分配存储区得到所请求存储区容量的存储区。根据本专利技术的第二方面,用在计算机中的计算机程序产品从具有多个子存储池的存储池中得到存储区。计算机程序产品包括载有计算机可读的指令和存储计算机可读指令的记录媒体。该指令用于让计算机可以根据以下步骤操作接收来自任务程序的指定请求存储区容量的存储区占用请求;以子存储池为单位按关于请求存储区容量的预定的搜索顺序,从存储池中搜索等于或大于所请求存储区容量的可分配存储区;当在任何一个子存储池中发现可分配存储区时,从可分配存储区得到所请求存储区容量的存储区。根据本专利技术的第三方面,存储池管理系统用于从具有多个子存储池的存储池中得到存储区。存储池管理系统包括用来接收来自任务程序的指定请求存储区容量的存储区占用请求的占用请求接收部分。搜索顺序控制部分连接到接收部分,以根据关于请求存储区容量的预定的搜索顺序通知子存储池ID,响应占用请求接收部分的请求。占用部分连接到占用请求接收部分,以尝试根据从搜索顺序控制部分通过占用请求接收部分发来的相应的子存储池ID从子存储池中占用所请求存储区容量的存储区。附图说明图1是根据本专利技术的第一实施例的存储池管理系统的方框图; 图2示出了在由图1的存储池管理系统管理的存储器中存储池的结构;图3是在图1的存储池管理系统中所用的搜索顺序表,搜索可分配存储区;图4是用来说明在图1的存储池管理系统中所提供的存储器占用请求接收部分的工作的流程图;图5是用来说明在图1的存储池管理系统中所提供的存储器释放请求接收部分的工作的流程图;图6是用来说明在图1的存储池管理系统中所提供的搜索顺序控制部分的工作的流程图;图7是用来说明图1的存储池管理系统中所提供的队列控制部分的工作的流程图,图示情况为队列控制部分从存储器请求接收部分接收到存储池ID和请求存储区容量;图8示出了由图1的存储池管理系统所用的任务控制模块(TCB)的结构;图9是用来图示说明队列控制部分的工作流程图,队列控制部分从存储器释放请求接收部分接收到存储池ID、子存储池ID和最大可用存储区容量;图10是用来说明在图1的存储池管理系统中所提供的存储器占用部分的工作的流程图;图11是用来说明在图1的存储池管理系统中所提供的存储器释放部分的工作的流程图;图12是根据本专利技术的第二实施例的存储池管理系统的方框图;图13示出了在由图12的存储池管理系统管理的存储器中存储组的结构;图14是在图12的存储池管理系统中所用的搜索顺序表,搜索可分配存储区;图15是用来说明在图12的存储池管理系统中所提供的存储器占用请求接收部分的工作的流程图;图16是用来说明在图12的存储池管理系统中所提供的存储器释放请求接收部分的工作的流程图;图17是用来说明在图12的存储池管理系统中所提供的搜索顺序控制部分的工作的流程图。优选实施例的说明参考图1到11,说明根据本专利技术的第一实施例的存储池管理系统。简言之,存储池管理系统预先将各存储池分为多个子存储池,并根据请求的存储区容量以不同的方搜索顺序搜索可分配存储区。在该结构中,倾向于使用各子存储池满足特定范围的请求存储区容量。因此,难以产生子存储池碎片。此外,因为各子存储池不仅用于特定范围的请求存储区容量,所以存储池分为子存储池不会产生分区缺点。在图1中,存储池管理系统连接到存储器100,并包括搜索顺序控制部分101、存储器占用请求接收部分102、存储器释放请求接收部分103、存储器占用部分104、队列控制部分105和存储器释放部分106。搜索顺序控制部分101控制在存储器100中的存储池的子存储池中搜索可用存储区的顺序。搜索顺序控制部分101响应从存储器占用请求接收部分102来的请求将搜索顺序通知存储器占用请求接收部分102。换句话说,搜索顺序控制部分101将要被搜索的子存储池通知存储器占用请求接收部分102。存储器占用请求接收部分102用来接收来自任务程序的储器占用请求。当接收到储器占用请求时,存储器占用请求接收部分102询问搜索顺序控制部分101的搜索顺序。然后,存储器占用请求接收部分102使存储器占用部分104尝试从由搜索顺序控制部分101通知的搜索顺序所决定的第一子存储池中占用或调取具有所请求的存储区容本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】

【专利技术属性】
技术研发人员:角广崇
申请(专利权)人:日本电气株式会社
类型:发明
国别省市:

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

1