储存空间管理方法及系统以及计算机可读取储存介质的利记博彩app

文档序号:6641658阅读:190来源:国知局
专利名称:储存空间管理方法及系统以及计算机可读取储存介质的利记博彩app
技术领域
此发明是一种储存空间管理技术,特别是一种破碎空间重组(defragmentation)的储存空间管理方法及系统。
背景技术
一个储存空间历经过为数众多的写入、更新以及删除操作后,通常存在许多微小、不连续以及无法使用的储存区域。而此储存空间破碎(storagefragmentation)情况会严重地降低储存空间的可用性以及操作记录或文件的效能。因此,需要一种储存空间管理方法及系统,用以有效地进行破碎空间重组。

发明内容
有鉴于此,本发明的目的为提供一种储存空间管理方法及系统,用以有效地进行破碎空间重组。
本发明实施例揭露一种储存空间管理方法,用以管理包含多个区块的储存空间。此方法包含合并每一个区块中的多个间断且未被使用空间成为一个单一连续性的未被使用空间。其中,单一连续性的未被使用空间的地址区间不包含区块的最小地址及最大地址。
于一些情况下,此方法可还包括将区块中之一者所存在的记录搬移至另一区块中的未被使用空间,使得原来储存此记录的区块变成为完整而未被使用的区块。
于一些情况下,此方法可还包括决定每一个区块的一个重整中点;合并位于每一个区块中的重整中点左边的记录,形成由最左端开始的连续性左内部区块;以及合并位于每一个区块中的重整中点右边的记录,形成由最右端开始的连续性右内部区块。此方法可还包括当检测到一个记录所存在的地址区间包含重整中点时,使用其中之一合并策略来进行合并不做任何判断,直接将检测到的记录合并到连续性左内部区块之后;若检测到的记录中的位于重整中点左边的长度,大于位于重整中点右边的长度时,则将检测到的记录接续合并到连续性左内部区块之后,反之则将检测到的记录接续合并到连续性右内部区块之前;以及若位于重整中点左边的未被使用空间长度,大于位于重整中点右边的未被使用空间长度时,则将检测到的记录接续合并到连续性左内部区块之后,反之则将检测到的记录接续合并到连续性右内部区块之前。此方法可还包括由其中的区块中的多个记录中决定出一个记录;由不包含选择的记录中的多个区块中决定出一个区块,其中决定的区块中的未被使用空间长度大于或等于决定的记录的长度;以及将决定的记录移动到决定的区块中的未被使用空间。此方法于移动决定的记录步骤中,可还包括将决定的记录接续合并至决定区块中的连续性左内部区块之后,或接续合并至决定区块中的连续性右内部区块之前。决定的记录可为最靠近相应的重整中点的记录。
于一些情况下,此方法可还包括将区块依据未被使用空间的长度由小到大排序;以及依据排序结果进行相应的区块移动。
本发明实施例另揭露一种计算机可读取储存介质,储存一个计算机程序,该计算机程序用以加载至一个处理单元中并且使得该处理单元执行如上所述的储存空间管理方法。
本发明实施例还揭露的一种储存空间管理系统,包含一个储存空间以及一个处理单元。储存空间包含多个区块。处理单元耦接于储存空间,用以合并每一个区块中的多个间断且未被使用空间成为单一连续性的未被使用空间。其中,单一连续性的未被使用空间的地址区间不包含区块的最小地址及最大地址。
于一些情况下,处理单元可还包括将区块中之一者所存在的记录搬移至另一区块中的未被使用空间,使得原来储存此记录的区块变成为完整而未被使用的区块。
于一些情况下,处理单元可还决定每一个区块的一个重整中点;合并位于每一个区块中的重整中点左边的记录,形成由最左端开始的连续性左内部区块;以及合并位于每一个区块中的重整中点右边的记录,形成由最右端开始的连续性右内部区块。处理单元可更当检测到一个记录所存在的地址区间包含重整中点时,使用其中之一合并策略来进行合并不做任何判断,直接将检测到的记录合并到连续性左内部区块之后;若检测到的记录中的位于重整中点左边的长度,大于位于重整中点右边的长度时,则将检测到的记录接续合并到连续性左内部区块之后,反之则将检测到的记录接续合并到连续性右内部区块之前;以及若位于重整中点左边的未被使用空间长度,大于位于重整中点右边的未被使用空间长度时,则将检测到的记录接续合并到连续性左内部区块之后,反之则将检测到的记录接续合并到连续性右内部区块之前。处理单元可更由其中的区块中的多个记录中决定出一个记录;由不包含选择的记录中的多个区块中决定出一个区块,其中决定的区块中的未被使用空间长度大于或等于决定的记录的长度;以及将决定的记录移动到决定的区块中的未被使用空间。处理单元可还包括将决定的记录接续合并至决定区块中的连续性左内部区块之后,或接续合并至决定区块中的连续性右内部区块之前。决定的记录可为最靠近相应的重整中点的记录。
于一些情况下,处理单元可更将区块依据未被使用空间的长度由小到大排序;以及依据排序结果进行相应的区块移动。
位于第i个区块的上述重整中点可表示为sx(i-1)+s/2,s代表每一上述区块的长度。位于第i个区块的重整中点左边的范围可表示为[sx(i-1),sx(i-1)+s/2],以及位于第i个区块的重整中点右边的范围可表示为sx(i-1)+s/2,sxi]。


第1图是表示依据本发明实施例的储存空间管理系统的硬件架构图;第2图是表示依据本发明实施例的区块示意图;第3、4a、4b图是表示依据本发明实施例的破碎空间重组方法的方法流程图;第5图是表示依据本发明实施例的破碎空间重组的储存介质示意图;第6图是表示依据本发明实施例的初始储存空间示意图;第7图是表示依据本发明实施例的消除区块内部破碎空间的储存空间示意图;第8a、8b、8c、8d、8e、8f图是表示依据本发明实施例的消除跨区块的破碎空间的记录搬移示意图。
标号说明10~储存空间管理系统;11~处理单元;12~存储器;13~储存装置;14~输出装置;15~输入装置;16~通讯装置;17~总线;B~区块;B[i]~第i个区块;Bl~左内部区块;Br~右内部区块;pl~左距;pr~右距;sl~左内部区块长度;su~未被使用空间长度;sr~右内部区块长度;s~位组长度;S31、S33~流程步骤;S411、S413、...、S459、S461~流程步骤;50~储存介质;520~破碎空间重组计算机程序;521~区块内部的破碎空间重组逻辑;522~将已配置区块依据未被使用空间的长度于小到大排序逻辑;523~跨区块的破碎空间重组逻辑;B1、B2、B3、B4~区块;A.1、A.2、A.4、A.5、B.1、B.3、B.4、B.6、B.7、B.8、B.10~储存记录的空间;A.3、B.2、B.5、B.9、C.1、C.2、C.3、C.4、C.5、C.6、C.7、C.8~原来储存记录但已被之空间。
具体实施例方式
第1图是表示依据本发明实施例的储存空间管理系统10的硬件架构图。储存空间管理系统10,包括处理单元11、存储器12、储存装置13、输出装置14、输入装置15、通讯装置16,并使用总线17将其连结在一起。本领域技术人员可将储存空间管理系统10实施于各式各样的计算机系统配置(configuration)上,例如,多处理器系统、以微处理器为基础或可程序化的消费性电子产品(microprocessor-based or programmable consumerelectronics)、网络计算机、迷你计算机、大型主机、笔记型计算机以及类似的设备。存储器12包含只读存储器(read only memory;ROM)、闪存(flashmemory)以及/或动态存取存储器(random access memory;RAM),提供储存空间,用以储存可供处理单元11执行的程序模块、数据、文件以及记录。一般而言,程序模块包含例行程序(routines)、程序(program)、对象(object)、组件(component)等,用以执行储存空间管理功能。本发明亦可以实施于分布式运算环境,其运算工作被一连结于通讯网路的远程处理设备所执行。在分布式环境中,储存空间管理的功能执行,也许由本地以及多部远程计算机系统共同完成。储存装置13包含硬盘装置、软盘装置、光盘装置或随身碟装置,提供储存空间,用以存取硬盘、软盘、光盘、随身碟中所储存的程序模块、数据、文件以及记录。
通常,每一笔记录为数据值(data values)或数据项(data items)的集合,其基本数据类型(primitive data types),如数值(numeric)、字符字符串(string of characters)、布尔值(boolean)等类型,可于特定软件平台的应用程序接口(platform-specific application program interface,API)中定义。而一笔记录的长度为可变长度。本发明实施例提出一种如下所示的双向记录文件组织(bidirectional record file organization,BRFO)方案,使得储存空间包含数个区块(block)。此储存空间可存在于易失性储存装置,如动态存取存储器(RAM)、缓冲器(buffer)等,或非易失性储存装置,如闪存(flash memory)、硬盘(hard disk)、软盘(floppy disk)、可擦写光盘(opticaldisk-RW)等。一个区块为于实体数据储存与存储器间传输数据的基本单元。区块长度大于记录长度,每一个区块可包含数笔记录,且会以无跨区块的方式(unspanned fashion)配置区块给文件中的记录。当一笔记录大于所有未被使用的储存段落时,会配置出另一个区块以储存此记录。所以,每一个区块可包含一些未被使用的储存段落,称为内部破碎段落(internalfragmentation)。第2图是表示依据本发明实施例的区块示意图。一个区块包含两个内部区块(inner blocks),一个左区块(left block)以及一个右区块(right block)。为简化说明,使用如下的数个标号来描述本发明的实施例。一个区块以B来表示。Bl与Br是分别表示一个左内部区块(left innerblock)与一个右内部区块(right inner block),pl为Bl的左距(left offset),而pr为Br的右距(right offset)。当每一个区块拥有s个连续的字节(byte)长度,Bl与Br的长度分别以sl与sr表示,且sl+sr≤s,使得区块中的未被使用空间为su=s-(sl+sr)。此外,当储存空间包含n个区块,使得整个空间拥有nxs字节的连续性储存空间配置。每一个标号之中括号(squarebracket)中所包含的数字,是代表其所在的区块编号,例如,pr[7]代表于第7个区块中的右内部区块的右距。
为了要重新组织未被使用的储存段落,需要非周期性或周期性地执行破碎空间重组程序。第3图是表示依据本发明实施例的破碎空间重组方法的方法流程图,此方法由处理单元11执行,用以管理包含多个区块的储存空间。于步骤S31,合并每一个区块中的多个间断且未被使用空间成为单一连续性的未被使用空间。其中,单一连续性的未被使用空间的地址区间不包含区块的最小地址及最大地址。于步骤S33,将区块中之一者所存在的记录搬移至另一区块中的未被使用空间,使得原来储存此记录的区块变成为一个完整而未被使用的区块。
第4图是表示依据本发明实施例的破碎空间重组方法的方法流程图,此方法由处理单元11执行。步骤S411至S421为区块内部的破碎空间重组程序(intra-block defragmentation procedure),用以合并每一个区块中的间断且未被使用空间成为单一的连续性空间,且此连续性空间位于区块的中间区域,而非左边或右边区域。于步骤S411,由上而下(亦即为由低地址往高地址)选择一个区块。本领域技术人员皆知道此步骤亦可由高地址往低地址进行选择。于步骤S413,决定此区块的重整中点(defragmentation separator)。其中,第i个区块的重整中点位于距离sx(i-l)+s/2,而位于重整中点左边的范围为[sx(i-1),sx(i-1)+s/2],位于重整中点右边的范围为sx(i-1)+s/2,sxi]。于步骤S415,合并位于重整中点左边的记录,形成一个由区块最左端(亦即为最低地址)开始的连续性左内部区块Bl。于步骤S417,合并位于重整中点右边的记录,形成一个由区块最右端(亦即为最高地址)开始的连续性右内部区块Br。当一笔记录所存在的地址区间包含重整中点时,可还使用以下所述策略之一者进行接续合并。(1)不做任何判断,直接向左接续合并;(2)若此记录位于重整中点左边的长度,大于位于重整中点右边的长度时,则向左接续合并,反之则向右接续合并;以及(3)若位于重整中点左边的未被使用空间长度,大于位于重整中点右边的未被使用空间长度时,则向左接续合并,反之则向右接续合并。本领域技术人员还可使用其它的策略来对以上情况做处理。于步骤S421,决定是否处理完所有区块,是则进行步骤S431的处理,否则进行步骤S411的处理。
于步骤S431,将所有已配置区块依据未被使用空间的长度于小到大排序,并可储存此排序结果供后续步骤使用,或者依据排序结果进行相应的区块移动。于此须注意的是,为节省处理的时间,亦可省略此步骤。
步骤S441至S461为跨区块的破碎空间重组程序(inter-blockdefragmentation procedure),用以将低使用率的区块中的记录合并至高使用率的区块中,致使释放出更多的可用区块,其中,释放出的区块中并不包含任何的记录。于步骤S441,由下而上(亦即为由高地址往低地址)选择下一个区块做为第一区块。本领域技术人员皆知道此步骤亦可为由低地址往高地址进行选择。于步骤S451,由内而外(亦即为由最靠近重整中点往最离开重整中点)选择区块中的一个记录。于此须注意的是,当左内部区块与右内部区块中皆存在一笔记录时,此步骤先选择长度较小的记录。于步骤S453,由上而下(亦即为由低地址往高地址)选择下一个区块做为第二区块。本领域技术人员皆知道当步骤S441为由低地址往高地址进行选择时,此步骤则改变为由高地址往低地址进行选择。于步骤S455,决定第一区块与第二区块是否为同一个区块,是则结束整个破碎空间重组方法,否则进行步骤S457的处理。于步骤S457,决定第二区块中的可用空间长度是否大于或等于选择的记录长度,是则进行步骤S459的处理,否则进行步骤S453的处理。于步骤S459,将选择的记录由第一区块搬移至第二区块中的可用空间。于步骤S461,决定是否处理完第一区块中的所有记录,是则进行步骤S441的处理,否则进行步骤S451的处理。
再者,本发明提出一种储存介质,用以储存计算机程序,上述计算机程序用以实现破碎空间重组方法,此方法会执行如上所述的步骤。第5图系表示依据本发明实施例的破碎空间重组的储存介质示意图。此储存介质50,用以储存破碎空间重组计算机程序520。其计算机程序包含三个逻辑,分别为区块内部的破碎空间重组逻辑521、将已配置区块依据未被使用空间的长度于小到大排序逻辑522以及跨区块的破碎空间重组逻辑523。
以下更举出一个实例来说明破碎空间重组方法的实际运作情形。第6图是表示依据本发明实施例的初始储存空间示意图,包含四个已配置的区块B1至B4,每一个区块拥有150个连续的位组长度空间。于初始状态下,区块B1包含A.1、B.1与A.2的记录,以及原来储存但已被删除的A.3、B.2与C.1记录的未被使用储存空间。区块B2包含B.3、A.4与B.4的记录,以及原来储存但已被删除的B.5与C.2记录的未被使用储存空间。区块B3包含B.6、A.5与B.7的记录,以及原来储存但已被删除的C.3、C.6、C.5与C.4记录的未被使用储存空间。区块B4包含B.8与B.10的记录,以及原来储存但已被删除的B.9、C.8与C.7记录的未被使用储存空间。参考第4图,当反复执行步骤S411至S421的区块内部的破碎空间重组程序后,储存空间如第7图所示。第7图是表示依据本发明实施例的消除区块内部破碎空间的储存空间示意图。其中,每一个区块中的记录都被集中至区块的两侧,并产生较大的未被使用的连续空间。为增进重组空间的效率,忽略步骤S431的处理。接着,执行步骤S451、S453、S455、S457与S459,将记录B.10搬移至区块B1中的未被使用空间,结果如8a图所示。执行步骤S451、S453、S455、S457与S459,将记录B.8搬移至区块B1中的未被使用空间,结果如8b图所示。执行步骤S451、S453、S455、S457与S459,将记录A.5搬移至区块B1中的未被使用空间,结果如8c图所示。执行步骤S451、S453、S455、S457与S459,将记录B.7搬移至区块B1中的未被使用空间,结果如8d图所示。执行步骤S451、S453、S455、S457与S459,将记录B.6搬移至区块B2中的未被使用空间,结果如8e图所示。最后,由于没有任何可搬移的记录,所以,重组的结果如8f图所示。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视所附的权利要求范围所界定者为准。
权利要求
1.一种储存空间管理方法,用以管理储存空间,上述储存空间包含多个区块,其方法包括合并每一上述区块中的多个间断且未被使用空间成为单一连续性的未被使用空间,其中,上述单一连续性的未被使用空间的地址区间不包含上述区块的最小地址及最大地址。
2.根据权利要求1所述的储存空间管理方法,还包括将上述区块中之一者所存在的记录搬移至另一区块中的未被使用空间,使得原来储存上述记录的上述区块变成为完整而未被使用的区块。
3.根据权利要求1所述的储存空间管理方法,还包括决定每一上述区块的重整中点;合并位于每一上述区块中的上述重整中点左边的记录,形成由最左端开始的连续性左内部区块;以及合并位于每一上述区块中的上述重整中点右边的记录,形成由最右端开始的连续性右内部区块。
4.根据权利要求3所述的储存空间管理方法,还包括当检测到记录所存在的地址区间包含上述重整中点时,使用其中之一合并策略来进行合并不做任何判断,直接将上述检测到的记录合并到上述连续性左内部区块之后;若上述检测到的记录中的位于上述重整中点左边的长度,大于位于上述重整中点右边的长度时,则将上述检测到的记录接续合并到上述连续性左内部区块之后,反之则将上述检测到的记录接续合并到上述连续性右内部区块之前;以及若位于上述重整中点左边的未被使用空间长度,大于位于上述重整中点右边的未被使用空间长度时,则将上述检测到的记录接续合并到上述连续性左内部区块之后,反之则将上述检测到的记录接续合并到上述连续性右内部区块之前。
5.根据权利要求3所述的储存空间管理方法,其中位于第i个区块的上述重整中点表示为sx(i-1)+s/2,s代表每一上述区块的长度,位于第i个区块的上述重整中点左边的范围表示为 以及位于第i个区块的上述重整中点右边的范围表示为
6.根据权利要求3所述的储存空间管理方法,还包括由其中之一区块中的多个记录中决定出一记录;由不包含上述选择的记录中的多个区块中决定出一区块,其中决定的上述区块中的未被使用空间长度大于或等于上述决定的记录的长度;以及将上述决定的记录移动到上述决定的区块中的未被使用空间。
7.根据权利要求6所述的储存空间管理方法,于移动决定的记录步骤中,还包括将上述决定的记录接续合并至上述决定区块中的上述连续性左内部区块之后,或接续合并至上述决定区块中的上述连续性右内部区块之前。
8.根据权利要求6所述的储存空间管理方法,其中决定的上述记录为最靠近相应的上述重整中点的记录。
9.根据权利要求1所述的储存空间管理方法,还包括将上述区块依据未被使用空间的长度由小到大排序;以及依据排序结果进行相应的区块移动。
10.一种计算机可读取储存介质,用以储存计算机程序,该计算机程序用以加载至处理单元中并且使得该处理单元执行储存空间管理方法,用以管理储存空间,上述储存空间包含多个区块,其方法包括合并每一上述区块中的多个间断且未被使用空间成为单一连续性的未被使用空间,其中,上述单一连续性的未被使用空间的地址区间不包含上述区块的最小地址及最大地址。
11.一种储存空间管理系统,包括储存空间,上述储存空间包含多个区块;以及处理单元,耦接于上述储存空间,用以合并每一上述区块中的多个间断且未被使用空间成为单一连续性的未被使用空间,其中,上述单一连续性的未被使用空间的地址区间不包含上述区块的最小地址及最大地址。
12.根据权利要求11所述的储存空间管理系统,其中上述处理单元还将上述区块中之一者所存在的记录搬移至另一区块中的未被使用空间,使得原来储存上述记录的上述区块变成为完整而未被使用的区块。
13.根据权利要求11所述的储存空间管理系统,其中上述处理单元还决定每一上述区块的重整中点,合并位于每一上述区块中的上述重整中点左边的记录,形成由最左端开始的连续性左内部区块,以及合并位于每一上述区块中的上述重整中点右边的记录,形成由最右端开始的连续性右内部区块。
14.根据权利要求13所述的储存空间管理系统,其中上述处理单元当检测到记录所存在的地址区间包含上述重整中点时,使用其中之一合并策略来进行合并不做任何判断,直接将上述检测到的记录合并到上述连续性左内部区块之后;若上述检测到的记录中的位于上述重整中点左边的长度,大于位于上述重整中点右边的长度时,则将上述检测到的记录接续合并到上述连续性左内部区块之后,反之则将上述检测到的记录接续合并到上述连续性右内部区块之前;以及若位于上述重整中点左边的未被使用空间长度,大于位于上述重整中点右边的未被使用空间长度时,则将上述检测到的记录接续合并到上述连续性左内部区块之后,反之则将上述检测到的记录接续合并到上述连续性右内部区块之前。
15.根据权利要求13所述的储存空间管理系统,其中位于第i个区块的上述重整中点表示为sx(i-1)+s/2,s代表每一上述区块的长度,位于第i个区块的上述重整中点左边的范围表示为 以及位于第i个区块的上述重整中点右边的范围表示为
16.根据权利要求13所述的储存空间管理系统,其中上述处理单元还由其中之一区块中的多个记录中决定出一记录,由不包含上述选择的记录中的多个区块中决定出一区块,以及将上述决定的记录移动到上述决定的区块中的未被使用空间,其中,决定的上述区块中的未被使用空间长度大于或等于上述决定的记录的长度。
17.根据权利要求16所述的储存空间管理系统,其中上述处理单元还将上述决定的记录接续合并至上述决定区块中的上述连续性左内部区块之后,或接续合并至上述决定区块中的上述连续性右内部区块之前。
18.根据权利要求16所述的储存空间管理系统,其中决定的上述记录为最靠近相应的上述重整中点的记录。
19.根据权利要求11所述的储存空间管理系统,上述处理单元还将上述区块依据未被使用空间的长度由小到大排序,以及依据排序结果进行相应的区块移动。
20.根据权利要求11所述的储存空间管理系统,其中上述储存空间存在于易失性储存装置或非易失性储存装置中。
全文摘要
一种储存空间管理方法,用以管理包含多个区块的储存空间。此方法包含合并每一区块中的多个间断且未被使用空间成为一个单一连续性的未被使用空间。其中,单一连续性的未被使用空间的地址区间不包含区块的最小地址及最大地址。
文档编号G06F12/02GK1924829SQ20051009769
公开日2007年3月7日 申请日期2005年8月31日 优先权日2005年8月31日
发明者胡志麟 申请人:明基电通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1