存储管理设备、存储管理方法和控制程序的制作方法

文档序号:6367585阅读:127来源:国知局
专利名称:存储管理设备、存储管理方法和控制程序的制作方法
技术领域
本公开文件涉及存储管理设备、存储管理方法和控制程序,更具体地涉及用于取得(secure)和释放存储区域的存储管理设备、存储管理方法和控制程序。
背景技术
在相关技术中,提出了以下技术,选择具有低优先级的处理或者在下次执行前有长等待时间的处理并且当可用的存储容量不足时释放分配给所选处理的存储区域(例如,参见日本特许专利公开2000-215099号)。此外,在相关技术中,提出了以下技术,当实际存在的存储器页不足时从具有低重要程度的作业挪用页并将实际存在的存储器页分配给具有高重要程度的作业(例如,参见 日本特许专利公开2002-244869号)。

发明内容
然而,根据日本特许专利公开2000-215099或日本特许专利公开2002-244869号中公开的技术,强制地终止被释放了存储区域的处理或作业。为此,在多个处理或作业彼此协作地工作的系统中,系统可能操作异常。根据本公开文件,当存储装置的可用容量不足时,能够释放存储装置的区域并能够取得新的区域,从而抑制在系统或设备中发生异常。根据本公开的实施例,提供了一种存储管理设备,其包括存储区域分配单元,其根据来自程序的请求来取得存储装置的区域并将程序指定的等级设置给所取得的区域;存储区域选择单元,其在存储装置的可用容量不足时基于每个区域的等级从所取得的区域中选择要释放的区域;以及存储区域释放单元,其释放所选择的区域。存储区域选择单元可以从具有比新近要取得的区域的等级低的等级的区域中选择要释放的区域。存储区域选择单元可以在具有比新近要取得的区域的等级低的等级的区域中选择具有最低等级的区域作为要释放的区域。等级可以被预先设置给每个程序,并且当存在多个具有最低等级的区域时,存储区域选择单元可以在具有最低等级的区域中选择分配给具有最低等级的程序的区域作为要释放的区域。当不存在具有比新近要取得的区域的等级低的等级的区域时,存储区域选择单元可以不取得新的区域。等级可以被预先设置给每个程序,并且当不存在具有比新近要取得的区域的等级低的等级的区域时,所述存储区域释放单元可以强制地终止具有比请求取得区域的程序的等级低的等级的程序中的至少一个程序。存储区域分配单元可以根据来自程序的请求来改变分配给程序的区域的等级。根据本公开文件的另一实施例,提供了一种存储管理方法,该方法包括根据来自程序的请求来取得存储装置的区域并将程序指定的等级设置给所取得的区域;当存储装置的可用容量不足时,基于每个区域的等级从所取得的区域中选择要释放的区域;以及释放所选择的区域。根据本公开文件的另一实施例,提供了一种用于使计算机执行处理的控制程序,包括根据来自程序的请求来取得存储装置的区域并将程序指定的等级设置给所取得的区域;当存储装置的可用容量不足时,基于每个区域的等级从所取得的区域中选择要释放的区域;以及释放所选择的区域。在本公开文件的一个实施例中,根据来自程序的请求来取得存储装置的区域,程序所指定的等级被设置给所取得的区域,当存储装置的可用容量不足时,从所取得的区域中基于每个区域的等级选择要释放的区域,并释放所选择的区域。根据上述公开文件的这些实施例,当存储装置的可用容量不足时,能够释放存储装置的区域并且可以取得新的区域。
根据上述公开文件的这些实施例,当存储装置的可用容量不足时,能够释放存储装置的区域并且能够取得新的区域,从而抑制在系统或设备中发生异常。


图I是示出本公开文件的概况的示图;图2是示出应用了本公开文件的信息处理系统的实施例的框图;图3是示出存储管理器的功能的配置示例的框图;图4是示出存储区域取得请求处理的流程图;图5是示出存储区域取得处理的第一实施例的流程图;图6是示出存储区域取得处理的第一实施例的具体示例的示图;图7是示出存储区域取得处理的第一实施例的具体示例的示图;图8是示出存储区域取得处理的第二实施例的流程图;图9是示出存储区域取得处理的第三实施例的流程图;图10是示出存储区域取得处理的第四实施例的流程图;以及图11是示出存储存取处理的流程图。
具体实施例方式以下,将参照附图来详细描述本公开文件的优选实施例。注意,在本说明书和附图中,用相同参考标号表示具有基本相同功能和结构的结构要素,并省略对这些结构要素的重复说明。在下文中,将描述执行本公开文件的实施例。注意,将按照以下顺序给出描述。I.实施例2.修改例〈I.实施例 >[本公开文件的概况]首先将参照图I来描述本公开文件的概况。图中的纵向示出了时间轴。程序A和程序B是由运算处理装置如中央处理单元(CPU)所执行的程序。将存储管理器设置为操作系统(OS)的功能的一部分,并且存储管理器执行用于取得和释放分配给程序A和程序B的存储区域的处理。例如,当程序A和程序B请求存储管理器取得存储区域时,这两个程序指定所取得的存储区域的等级。存储管理器根据来自每个程序的请求来取得存储区域并且将所指定的等级设置给所取得的存储区域。基于考虑了每个存储区域的预期目的的重要程度来设置每个存储区域的等级。例如,将保存对于整个系统的处理来说不可或缺的数据的存储区域、或在擦除后难以再生的数据的存储区域的等级设置为高。同时,将临时保存数据以实现高速处理的存储区域(例如,保存网络浏览器的页面缓存数据的存储区域以及缓存来自文件的数据的存储区域)的等级设置为低。此外,保存易于重新计算的数据的存储区域被设置为具有低等级。在图I的示例中,首先,可以通过来自程序B的请求来分配具有低等级的存储区域Ml。接下来,可以通过来自程序A的请求来分配具有高等级的存储区域M2。接下来,可以通过来自程序B的请求来分配具有高等级的存储区域M3。当程序A请求取得具有高等级的存储区域M4时,如果可用的存储容量不足,则自动释放具有比存储区域M4的等级低的等级的存储区域Ml。结果,解决了存储容量不足的问题并取得了存储区域M4。因此,在本公开文件中,当通过来自程序的请求取得存储区域时,设置所取得的存储区域的等级。当存储容量不足时,优选地释放具有低等级的存储区域。从而,能够防止出现释放保存重要数据的存储区域的情况并且能够防止系统或设备操作异常。[信息处理系统的配置示例]图2是示出应用了本公开文件的信息处理系统101的实施例的框图。信息处理系统101是能够被应用于各种嵌入式设备的系统,如电视机或移动电话、计算机等。信息处理系统101被配置为包括运算处理装置111、主存储装置112和副存储装置113。运算处理装置111、主存储装置112和副存储装置113通过总线114相互连接。运算处理装置111包括例如CPU。主存储装置112包括例如随机存取存储器(RAM)。副存储装置113包括具有比主存储装置112的容量大的容量以及比主存储装置112的存取速度低的存取速度的存储装置,如只读存储器(ROM)、硬盘驱动器和闪存。下面描述运算处理装置111的软件的配置示例。将存储管理器121和存储器存取单元122设置为运算处理装置111所执行的OS的功能的一部分。存储管理器121根据来自程序123-1至123-n的请求来控制程序或数据在副存储装置113和主存储装置112之间的布置,并控制主存储装置112的区域(存储区域)的取得和释放。存储管理器121根据来自程序123-1至123-n的请求来设置所取得的存储区域的等级。在下文中,存储区域的等级被划分为三阶等级高级、中级和低级。存储管理器121针对来自程序123-1至123-n的请求而将处理结果通知给作为请求源的程序。存储管理器121生成并更新表示在主存储装置112中取得的存储区域的状态的信息(在下文中称作存储映射)并将该信息存储在主存储装置112中。存储映射包括表示主、存储装置112中取得的每个存储区域的位置、大小和等级的信息、分配有每个存储区域的程序123以及该程序的等级(将在下面描述)。例如,当难以取得存储区域时,存储管理器121强制地终止程序123-1至123-n。根据来自程序123-1至123-n的请求,存储器存取单元122利用存储映射从主存储装置112中读取指定的数据并将所读取的数据传送给作为请求源的程序。根据来自程序123-1至123-n的请求,存储器存取单元122利用存储映射将指定的数据写在主存储装置112上并将写结果通知给作为请求源的程序。存储管理器121和存储器存取单元122在相互交换数据时协同操作。程序123-1至123-n包括例如使运算处理装置111实现预定功能的应用程序。与程序123-1至123-n执行的处理的优先级对应的等级被设置给程序123-1至123_n。
基于每个程序执行的处理的优先级来设置程序123-1至123-n的等级。例如,需要优先处理的程序的等级可以被设置为高,而可以稍后处理的程序的等级可以被设置为低。在下文中,程序123-1至123-n的等级可以被划分为三阶等级高级、中级和低级。在下文中,当不需要单独区分程序123-1至123-n时,则简单地将这些程序称作程序123。[存储管理器121的功能的配置示例]接下来,将参照图3来描述存储管理器121的功能的配置示例。存储管理器121被配置为包括存储区域分配单元151、存储区域选择单元151和存储区域释放单元153。存储区域分配单元151根据来自程序123的请求来取得主存储装置112的区域(存储区域)并将取得结果通知给作为请求源的程序123。当主存储装置112的可用容量不足时,存储区域分配单元151将表示主存储装置112的可用容量不足的信息、请求取得的存储区域的等级以及作为请求源的程序123的等级通知给存储区域选择单元152。存储区域分配单元151控制程序和数据在副存储装置113和主存储装置112之间的布置(转入(swap-in))。此外,存储区域分配单元151根据存储区域的取得或者根据转入的执行来更新存储在主存储装置112中的存储映射。当存储区域分配单元151通知主存储装置112的可用容量不足时,存储区域选择单元152基于存储映射来选择要释放的存储区域。存储区域选择单元152将选择的存储区域通知给存储区域释放单元153。存储区域释放单元153释放存储区域选择单元152选择的存储区域并通知存储区域分配单元151该存储区域被释放。存储区域释放单元153根据来自程序123的请求来释放存储区域并将释放结果通知给作为请求源的程序123。存储区域分配单元151控制程序和数据在副存储装置113和主存储装置112之间的布置(转出(swap-out))。此外,存储区域释放单元153根据存储区域的释放或者根据转出的执行来更新存储在主存储装置112中的存储映射。[取得存储区域时的处理]接下来,将参照图4至10来描述在信息处理系统101中当根据来自程序123的请求来取得主存储装置112的区域时所执行的处理。[存储区域取得请求处理]首先,将参照图4的流程图来描述程序123所执行的存储区域取得请求处理。
在步骤SI中,程序123请求存储区域分配单元151取得存储区域。此时,作为请求源的程序123至少将取得的存储区域的大小(容量)和等级以及作为请求源的程序123的等级通知给存储区域分配单元151。在步骤S2中,程序123从存储区域分配单元151接收存储区域的取得结果。存储区域的取得结果包括表示是否成功地取得了存储区域的信息以及所取得的存储区域的位置。[存储区域取得处理的第一实施例]接下来,将参照图5的流程图来描述与图4的存储区域取得请求处理对应的由存储管理器121执行的存储区域取得处理的第一实施例。在该第一实施例中,优选地利用存储区域的等级来取得存储区域。 在步骤SlOl中,存储区域分配单元151确定主存储装置112的可用容量是否不足。当主存储装置112没有足以执行对程序123请求的存储区域的取得的可用容量时,存储区域分配单元151确定主存储装置112的可用容量不足。此外,存储区域分配单元151将表示主存储装置112的可用容量不足的信息、所请求的存储区域的等级以及作为请求源的程序123的等级通知给存储区域选择单元152。然后,处理前进到步骤S102。在步骤S102中,存储区域选择单元152确定是否存在具有低于所请求的存储区域的等级的等级的存储区域。具体地,存储区域选择单元152基于存储映射而在分配给每个程序123的存储区域(即,取得的存储区域)中搜索具有比所请求的存储区域的等级低的等级的存储区域。结果,当确定存在具有比所请求的存储区域的等级低的等级的存储区域时,处理前进到步骤S103。在步骤S103中,存储区域选择单元152确定是否存在多个具有最低等级的存储区域。当确定只存在一个具有最低等级的存储区域时,处理前进到步骤S104。在程序123请求的存储区域具有高等级的情况下,这对应于在取得的存储区域中只存在一个具有低等级的存储区域的情况、或者对应于不存在具有低等级的存储区域且只有一个具有中间等级的存储区域的情况。在步骤S104中,存储区域选择单元152选择具有最低等级的存储区域。存储区域选择单元152将所选择的存储区域通知给存储区域释放单元153。然后,处理前进到步骤S106。同时,在步骤S103中,当确定存在多个具有最低等级的存储区域时,处理前进到步骤S105。在步骤S105中,存储区域选择单元152从具有最低等级的存储区域中选择分配给具有最低等级的程序123的存储区域。当相应的存储区域的数量是多个时,存储区域选择单元152基于存储区域的大小或使用情况选择一个存储区域,或者随机地选择一个存储区域。此外,存储区域选择单元152将所选择的存储区域通知给存储区域释放单元153。然后,处理前进到步骤S106。将参照图6来描述步骤S105的处理的具体示例。在该示例中,在主存储装置112中取得6个存储区域Ml至M6。在这6个存储区域中,存储区域Ml、M3和M6被分配给程序A,存储区域M2和M4被分配给程序B,存储区域M5被分配给程序C。存储区域M2、M5和M6被设置为具有最高等级,存储区域M3被设置为具有中间等级,存储区域Ml和M4被设置为具有低等级。程序A被设置为具有高等级,程序B被设置为具有中间等级,程序C被设置为具有低等级。此外,研究程序C请求取得具有高等级的存储区域的情况。在该情况下,具有比程序C请求的存储区域的等级低的中间等级和低等级的存储区域是三个存储区域M1、M3和M4。在这三个存储区域中,具有最低等级的存储区域是两个存储区域Ml和M4。分配有这两个存储区域中的存储区域M4的程序B的等级比分配有这两个存储区域中的存储区域Ml的程序A的等级低。因此,在该情况下,选择存储区域M4。再次参照图5,在步骤S106中,存储区域释放单元153释放所选择的存储区域。此时,可以简单地释放所选择的存储区域,并且可以通过将所选择的存储区域的数据转出到副存储装置113来释放所选择的存储区域。 存储区域释放单元153从存储映射中擦除所释放的存储区域的信息。存储区域释放单元153将该存储区域被擦除通知给存储区域分配单元151。然后,处理前进到步骤S107。此时,对于分配有所释放的存储区域的程序123,可以通知也可以不通知该存储区域的释放。在前一种情况下,存储管理器121可以立即对程序123执行中断通知。例如,当程序123有权存取所释放的存储区域时,存储器存取单元122可以执行中断通知。在后一种情况下,程序123可以基于所释放的存储区域的值(例如,全部清零)来检测存储区域的释放。同时,在步骤SlOl中,当确定主存储装置112的可用容量充足时,跳过步骤S102和S106的处理并且该处理前进到步骤S107。在步骤S107中,存储区域分配单元151取得存储区域。即,存储区域分配单元151在主存储装置112的可用区域中取得具有程序123所请求的大小的存储区域。例如,在上述的图6的示例的情况下,通过步骤S106和S107的处理释放存储区域M4并且代之以取得存储区域M7并将存储区域M7分配给程序C,如图7所示。存储区域分配单元151将表示新近取得的存储区域的位置、大小和等级、以及分配有该存储区域的程序123及该程序的等级的信息添加到存储映射。此外,存储区域分配单元151将所取得的存储区域的位置通知给作为请求源的程序123。然后,存储区域取得处理结束。同时,在步骤S102中,当确定不存在具有比所请求的存储区域的等级低的等级的存储区域时,处理前进到步骤S108。在步骤S108中,存储管理器121执行出错处理。此时,可以不执行存储区域的取得,并且可以简单地将存储区域取得失败通知给作为请求源的程序123,或者可以利用其他方法来尝试取得存储区域。在后一种情况下,存储区域释放单元153强制地终止多个程序123中具有比作为请求源的程序123的等级低的等级的至少一个程序123,并释放分配给该至少一个程序123的存储区域。存储管理器121再次从步骤SlOl起执行处理。或者,存储管理器121优选地利用程序123的等级尝试取得所请求的程序,这类似于下述的存储区域取得处理的第二实施例。然后,存储区域取得处理结束。结果,当程序123请求取得存储区域时,如果主存储装置112的可用容量不足时,则释放具有较低等级的存储区域并取得新的存储区域。因此,通过自动地释放存储区域而防止出现信息处理系统101异常操作的情况。[存储区域取得处理的第二实施例]接下来,将参照图8的流程图来描述与图4的存储区域取得请求处理对应的由存储管理器121执行的存储区域取得处理的第二实施例。在第二实施例中,优选地利用程序123的等级取得存储区域。在步骤S151中,类似于图5的步骤SlOl的处理,确定主存储装置112的可用容量是否不足。当确定主存储装置112的可用容量不足时,处理前进到步骤S152。在步骤S152中,存储区域选择单元152基于存储映射来确定在多个分配有存储区域的程序123中是否存在具有比作为请求源的程序123的等级低的等级的程序。当确定在多个分配有存储区域的程序123中存在具有比作为请求源的程序123的等级低的等级的程序时,处理前进到步骤S153。在步骤S153中,存储区域选择单元152确定是否存在多个具有最低等级的程序123。当确定只存在一个具有最低等级的程序123时,处理前进到步骤S154。在作为请求源的程序123具有高等级的情况下,这对应于在多个分配有存储区域的程序123中只存在一个具有低等级的程序的情况、或者不存在具有低等级的程序且只存在一个具有中间等级的程序的情况。 在步骤S154中,存储区域选择单元152选择具有最低等级的程序123。然后,处理前进到步骤S156。同时,在步骤S153中,当确定存在多个具有最低等级的程序123时,处理前进到步骤 S155。在步骤S155中,存储区域选择单元152从具有最低等级的程序123中选择分配有具有最低等级的存储区域的程序123。当存在多个程序123时,基于分配给程序123的存储区域的大小或程序123的状态选择一个程序123,或者随机地选择一个程序123。然后,处理前进到步骤S156。在步骤S156中,存储区域选择单元152从分配给所选择的程序123的存储区域中选择具有最低等级的存储区域。当存在多个存储区域时,基于存储区域的大小或使用情况选择一个存储区域,或者随机地选择一个存储区域。存储区域选择单元152将所选择的存储区域通知给存储区域释放单元153。在步骤S157中,执行与图5的步骤S106的处理相同的处理并释放所选择的存储区域。然后,处理前进到步骤S158。同时,在步骤S151中,当确定主存储装置112的可用容量充足时,跳过步骤S152至S157的处理,并且处理前进到步骤S158。在步骤S158中,执行与图5的步骤S107的处理相同的处理,并且取得存储区域。然后,存储区域取得处理结束。
同时,在步骤S152中,当确定在分配有存储区域的程序123中不存在具有比作为请求源的程序123的等级低的等级的程序时,处理前进到步骤S159。在步骤S159中,存储管理器121执行出错处理。此时,可以不执行存储区域的取得,并且可以简单地将存储区域取得失败通知给作为请求源的程序123,或者可以利用其他方法来尝试取得存储区域。在后一种情况下,存储管理器121尝试优选地利用存储区域的等级来取得所请求的存储区域,这类似于图5的存储区域取得处理的第一实施例。然后,存储区域取得处理结束。结果,当程序123请求取得存储区域时,如果主存储装置112的可用容量不足,则释放具有较低等级的程序123的存储区域并且取得新的存储区域。因此,通过自动地释放 存储区域而防止出现信息处理系统101异常操作的情况。[存储区域取得处理的第三实施例]接下来,将参照图9的流程图来描述与图4的存储区域取得请求处理对应的由存储管理器121执行的存储区域取得处理的第三实施例。在第三实施例中,当优选地利用存储区域的等级取得存储区域时能够释放多个存储区域并且能够取得所请求的存储区域,这类似于上面参照图5描述的第一实施例。在步骤S201中,类似于图5的步骤SlOl的处理,确定主存储装置112的可用容量是否不足。当确定主存储装置112的可用容量不足时,处理前进到步骤S202。在步骤S202中,类似于图5的步骤S102的处理,确定是否存在具有比所请求的存储区域的等级低的等级的存储区域。当确定存在具有比所请求的存储区域的等级低的等级的存储区域时,处理前进到步骤S203。在下文中,上述处理中的具有比所请求的存储区域的等级低的等级的存储区域被称作可释放区域。在步骤S203中,存储区域选择单元152确定是否能够取得所需的可用容量。当主存储装置112的可用容量在全部可释放区域被释放的情况下达到取得所请求的存储区域所需的容量时,存储区域选择单元152确定能够取得所需的可用容量并且处理前进到步骤S204。然后,在步骤S204至S207中,执行与图5的步骤S103至S106的处理相同的处理。从而,从可释放区域中选择具有最低等级的一个存储区域并且释放所选择的存储区域。在步骤S208中,存储区域分配单元151确定是否能够取得所需的可用容量。当主存储装置112的可用容量未达到取得所请求的存储区域所需的可用容量时,存储区域分配单元151确定难以取得所需的可用容量,并且处理返回到步骤S204。然后,重复执行步骤S204至S208的处理,直到确定能够取得所需的可用容量为止。从而,从具有低等级的存储区域起顺序地释放各个存储区域。同时,在步骤S208中,当确定能够取得所需的可用容量时,处理前进到步骤S209。在步骤S201中,当确定主存储装置112的可用容量充足时,跳过步骤S202至S208的处理并且处理前进到步骤S209。在步骤S209中,执行与图5的步骤S107的处理相同的处理并取得存储区域。然后,存储区域取得处理结束。
同时,在步骤S202中,当确定不存在具有比所请求的存储区域的等级低的等级的存储区域时,处理前进到步骤S210。在步骤S203中,当确定难以取得所需的可用容量时,处理前进到步骤S210。在步骤S210中,存储管理器121管理出错处理。此时,可以不执行存储区域的取得,并且可以简单地将存储区域取得失败通知给作为请求源的程序123,或者可以利用其他方法来尝试取得存储区域。在后一种情况下,存储区域释放单元153强制地终止多个程序123中具有比作为请求源的程序123的等级低的等级的至少一个程序123并释放分配给该至少一个程序123的存储区域。存储管理器121再次从步骤S201起执行处理。或者,存储管理器121尝试优选地利用程序123的等级来取得所请求的存储区域,这类似于下述的存储区域取得处理的第四实施例。然后,存储区域取得处理结束。 从而,与第一实施例相比,可以更加稳妥地取得所需的存储区域。[存储区域取得处理的第四实施例]接下来,将参照图10的流程图来描述与图4的存储区域取得请求处理对应的由存储管理器121执行的存储区域取得处理的第四实施例。在第四实施例中,在优选地利用程序123的等级取得存储区域时能够释放多个存储区域并且能够取得所请求的存储区域,这类似于上面参照图8描述的第二实施例。在步骤S251中,类似于图5的步骤SlOl的处理,确定主存储装置112的可用容量是否不足。当确定主存储装置112的可用容量不足时,处理前进到步骤S252。在步骤S252中,类似于图8的步骤S152的处理,确定在分配有存储区域的程序123中是否存在具有比作为请求源的程序123的等级低的等级的程序。当确定在分配有存储区域的程序123中存在具有比作为请求源的程序123的等级低的等级的程序时,处理前进到步骤S253。在下文中,在上面处理中的分配给具有比作为请求源的程序123的等级低的等级的程序123的存储区域被称作可释放区域。在步骤S253中,存储区域选择单元142确定是否能够取得所需的可用容量。当主存储装置112的可用容量在所有可释放区域都被释放的情况下达到取得所请求的存储区域所需的容量时,存储区域选择单元152确定能够取得所需要的可用容量并且处理前进到步骤S254。然后,在步骤S254至S258中,执行与图8的步骤S153至S157的处理相同的处理。从而,从分配给程序123的具有最低等级的存储区域中选择一个具有最低等级的存储区域并释放所选择的存储区域。在步骤S259中,类似于图9的步骤S208的处理,确定是否能够取得所需的可用容量。当确定难以取得所需的可用容量时,处理返回到步骤S254。然后,重复地执行步骤S254至S259的处理,直到确定能够取得所需的可用容量为止。从而,从分配给程序123的具有低等级的存储区域中顺序地释放各个存储区域。同时,在步骤S259中,当确定能够取得所需的可用容量时,处理前进到步骤S260。在步骤S251中,当确定主存储装置112的可用容量充足时,跳过步骤S252至S259的处理并且处理前进到步骤S260。在步骤S260中,执行与图5的步骤S107的处理相同的处理并且取得存储区域。然后,存储区域取得处理结束。同时,在步骤S252中,当确定在分配有存储区域的程序123中不存在具有比作为请求源的程序123的等级低的等级的程序时,处理前进到步骤S261。在步骤S253中,当确定难以取得所需的可用容量时,处理前进到步骤S261。在步骤S261中,存储管理器121管理出错处理。此时,可以不执行存储区域的取得,并且可以简单地将存储区域取得失败通知给作为请求源的程序123,或者可以利用其他方法来尝试取得存储区域。在后一种情况下,存储管理器121尝试优选地利用存储区域的等级来取得所请求 的存储区域,这类似于图9的存储区域取得处理的第三实施例。然后,存储区域取得处理结束。从而,与第二实施例相比,可以更稳妥地取得所需的存储区域。[存储存取处理]接下来,将参照图11的流程图来描述在自动释放存储区域时未将存储区域的释放通知给程序123时、程序123有权存取所释放的存储区域的情况下执行的处理。在步骤S301中,程序123向存储器存取单元122请求存取存储区域(例如,读取数据或写入数据)。在步骤S302中,程序123确定是否释放了该存取所请求的存储区域。例如,程序123根据是否存在来自存储器存取单元122的中断通知来确定是否释放了该存取所请求的存储区域。例如,程序123基于该存取所请求的存储区域的值是否被全部清零来确定是否释放了该存取所请求的存储区域。当确定释放了该存取所请求的存储区域时,处理前进到步骤S303。在步骤S303中,程序123参照图4执行存储区域取得请求处理。此时,在存储区域的数据在释放前被转出的情况下,数据被转入到所取得的存储区域中。在存储区域的数据在释放前未被转出的情况下,程序123重新计算释放前的存储区域的数据并通过存储器存取单元122将该数据存储在所取得的存储区域中。然后,处理前进到步骤S304。同时,在步骤S302中,当确定该存取所请求的存储区域未被释放时,跳过步骤S303的处理并且处理前进到步骤S304。在步骤S304中,程序123执行预定处理,即,存取存储区域时所涉及的处理。然后,存储存取处理结束。<2.修改例 >在下文中,将描述本公开文件的实施例的修改例。在上述描述中,存储区域和程序123的等级被划分为三阶的等级,高级、中级和低级。然后,等级也可以被划分为两阶的等级或四阶以上的等级。[第二修改例]此外,可以将存储区域的等级设置为不允许存储管理器121进行自动释放的等级,在存储区域取得处理中的自动释放对象中,排除设置为这些等级的存储区域。类似地,可以将程序123的等级设置为不允许存储管理器121进行自动释放的等级,在上述存储区域取得处理中的自动释放对象中,排除分配给具有这些等级的程序123的存储区域。[第三修改例]此外,假定在执行程序123期间改变存储区域的等级的情况。因此,可以在存储区域被取得时动态地改变存储区域的等级,并且可以在执行程序123期间根据来自程序123的请求动态地改变存储区域的等级。例如,考虑如下情况对于要在主存储装置112中在不被释放的情况下临时取得的存储区域,其等级在其被使用时被设置为高等级,在其不被使用时被设置为低等级,以实现高速处理。
从而,能够适当地设置存储区域的等级,并且当主存储装置112的可用容量不足时能够释放具有低重要程度的存储区域并能够取得新的存储区域。类似地,可以动态地改变程序123的等级。[第四修改例]在存储区域取得处理的第二实施例和第四实施例中,在程序123的存储区域的等级低于作为请求源的程序123的等级的情况下,可以释放等级等于或高于所请求的存储区域的等级的存储区域。在第二实施例和第四实施例中,可以从自动释放对象中排除具有等于或高于所请求的存储区域的等级的等级的存储区域。[第五修改例]此外,上述的信息处理系统101的软件的配置示例是示例性的并且信息处理系统的软件可以具有其他配置。例如,程序123可以执行存储管理器121和存储器存取单元122的全部功能或一部分功能。例如,存储管理器121可以执行存储器存取单元122的全部功能或一部分功能。[第六修改例]可以通过硬件或软件来执行上述的一系列处理。例如,存储器存取单元122可以包括诸如存储器存取单元(MMU)的硬件。当通过软件来执行一系列处理时,构成软件的程序被安装在计算机上。在该情况下,计算机的示例包括嵌入在专用硬件中的计算机以及能够安装各种程序并能够执行各种功能的通用个人计算机。计算机执行的程序可以被记录在用作封装介质的可移除介质中,并且可以提供计算机执行的该程序。可以通过有线或无线传输介质(如局域网、互联网和数字卫星广播)来提供该程序。该程序可以被预先安装在存储装置(例如,副存储装置113)中,该存储装置被嵌入在设备中。计算机执行的程序可以是根据本公开文件描述的顺序按时间顺序处理的程序,或者按照诸如在执行调用时所需的时序或并行地执行的程序。在本公开文件中,术语“系统”表示包括多个装置和单元的整个设备。本领域技术人员应当理解到,只要各种修改、组合、子组合和替换处于所附权利要求及其等同方案的范围内,则可以依赖于设计要求和其他因素来进行这些修改、组合、子组合和替换。此外,还可以如下地配置本技术。(I) 一种存储管理设备,包括存储区域分配单元,其根据来自程序的请求来取得存储装置的区域并将所述程序指定的等级设置给所取得的区域;存储区域选择单元,其在所述存储装置的可用容量不足时基于每个区域的等级从所取得的区域中选择要释放的区域;以及存储区域释放单元,其释放所选择的区域。(2)根据⑴所述的存储管理设备, 其中,所述存储区域选择单元从具有比新近要取得的区域的等级低的等级的区域中选择要释放的区域。(3)根据⑵所述的存储管理设备,其中,所述存储区域选择单元在具有比所述新近要取得的区域的等级低的等级的区域中选择具有最低等级的区域作为要释放的区域。(4)根据权利要求3所述的存储管理设备,其中,所述等级被预先设置给每个程序,以及当存在多个具有最低等级的区域时,所述存储区域选择单元在具有最低等级的区域中选择分配给具有最低等级的程序的区域作为要释放的区域。(5)根据(2)至(4)中任一项所述的存储管理设备,其中,当不存在具有比所述新近要取得的区域的等级低的等级的区域时,所述存储区域选择单元不取得新的区域。(6)根据(2)至(4)中任一项所述的存储管理设备,其中,所述等级被预先设置给每个程序,以及当不存在具有比所述新近要取得的区域的等级低的等级的区域时,所述存储区域释放单元强制地终止具有比请求取得所述区域的程序的等级低的等级的程序中的至少一个程序。(7)根据(I)至(6)中任一项所述的存储管理设备,其中,所述存储区域分配单元根据来自所述程序的请求来改变分配给所述程序的区域的等级。(8) —种存储管理方法,包括根据来自程序的请求来取得存储装置的区域并将所述程序指定的等级设置给所取得的区域;当所述存储装置的可用容量不足时,基于每个区域的等级从所取得的区域中选择要释放的区域;以及释放所选择的区域。(9) 一种用于使计算机执行处理的控制程序,包括根据来自程序的请求来取得存储装置的区域并将所述程序指定的等级设置给所取得的区域;当所述存储装置的可用容量不足时,基于每个区域的等级从所取得的区域中选择要释放的区域;以及释放所选择的区域。本公开文件包含2011年4月8日在日本专利局提交的日本在先专利申请JP2011-086306号中公开的主题内容,其 全部内容通过引用结合于此。
权利要求
1.一种存储管理设备,包括 存储区域分配单元,其根据来自程序的请求来取得存储装置的区域并将所述程序指定的等级设置给所取得的区域; 存储区域选择单元,其在所述存储装置的可用容量不足时基于每个区域的等级从所取得的区域中选择要释放的区域;以及 存储区域释放单元,其释放所选择的区域。
2.根据权利要求I所述的存储管理设备, 其中,所述存储区域选择单元从具有比新近要取得的区域的等级低的等级的区域中选择要释放的区域。
3.根据权利要求2所述的存储管理设备, 其中,所述存储区域选择单元在具有比所述新近要取得的区域的等级低的等级的区域中选择具有最低等级的区域作为要释放的区域。
4.根据权利要求3所述的存储管理设备, 其中,所述等级被预先设置给每个程序,以及 当存在多个具有最低等级的区域时,所述存储区域选择单元在具有最低等级的区域中选择分配给具有最低等级的程序的区域作为要释放的区域。
5.根据权利要求2所述的存储管理设备, 其中,当不存在具有比所述新近要取得的区域的等级低的等级的区域时,所述存储区域选择单元不取得新的区域。
6.根据权利要求2所述的存储管理设备, 其中,所述等级被预先设置给每个程序,以及 当不存在具有比所述新近要取得的区域的等级低的等级的区域时,所述存储区域释放单元强制地终止具有比请求取得所述区域的程序的等级低的等级的程序中的至少一个程序。
7.根据权利要求I所述的存储管理设备, 其中,所述存储区域分配单元根据来自所述程序的请求来改变分配给所述程序的区域的等级。
8.—种存储管理方法,包括 根据来自程序的请求来取得存储装置的区域并将所述程序指定的等级设置给所取得的区域; 当所述存储装置的可用容量不足时,基于每个区域的等级从所取得的区域中选择要释放的区域;以及 释放所选择的区域。
9.一种用于使计算机执行处理的控制程序,包括 根据来自程序的请求来取得存储装置的区域并将所述程序指定的等级设置给所取得的区域; 当所述存储装置的可用容量不足时,基于每个区域的等级从所取得的区域中选择要释放的区域;以及 释放所选择的区域。
全文摘要
本发明涉及存储管理设备、存储管理方法和控制程序。存储管理器根据来自程序的请求取得存储区域并将程序所指定的等级设置给所取得的存储区域。当主存储装置的可用容量不足时,存储管理器基于每个存储区域的等级从所取得的存储区域中选择要释放的存储区域。存储管理器释放所选择的存储区域并取得新的存储区域。本公开文件可以应用于嵌入式设备。
文档编号G06F9/50GK102750225SQ20121009652
公开日2012年10月24日 申请日期2012年4月1日 优先权日2011年4月8日
发明者佐藤和美, 松崎泰裕, 神长浩气, 长滨弘树 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1