基于位图的存储空间管理系统及其方法

文档序号:8412539阅读:564来源:国知局
基于位图的存储空间管理系统及其方法
【技术领域】
[0001]本发明涉及一种存储空间的管理系统,尤其涉及基于位图来实现的存储空间管理系统和方法。
【背景技术】
[0002]位图示法是一种根据位图结构中的数据位来表示存储卷或者分区中的簇的分配和使用情况,它结构简单、易于实现,大多数文件系统都采用了位图来进行存储空间的管理。
[0003]比如,Windows操作系统中的FAT文件系统采用了文件分配表,它是FAT文件系统中使用磁盘数据索引和定位引进的一种链式结构。在FAT文件系统中,存储器具有专门的文件分配表区(FAT区),它描述了文件系统中每个文件所占用的存储空间大小并将该存储空间结构化为一个文件的簇分配链表。文件的存储依照FAT表中的簇链式数据结构来进行。
[0004]比如,Linux系统中采用Ext2的非日志型文件系统,一个被格式化为Etx2文件系统的磁盘分区,被分成一个引导分区后接多个块组,一个块组又包含超级块、块组描述、数据块位图、1-node位图、1-node表、数据块。其中超级块用于存放文件系统信息,一个文件系统内的每个块组的超级块均包含相同内容。块组描述用于存放块组信息。数据块位图用于管理空闲数据块。1-node位图用于管理空闲1-node。i_node表用于存放i_node表,每个文件对应一个1-node表,1-node表用于管理文件的元数据(如uid、gid、ctime、dtime、指向数据块的指针等)。数据块用于存放实际用户数据。
[0005]而无论是Windows还是Linux系统,目前操作系统管理存储空间的位图比较简单,即一位表示一个固定的存储块大小。如果每块分配的空间太小,在存储和访问大的数据对象时效率就会下降。而如果每块分配的空间太大,在存储小的数据对象时又会浪费很多空间。

【发明内容】

[0006]以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。
[0007]本发明的目的在于解决上述问题,提供了一种基于位图的存储空间管理系统及其方法,实现了在存储小的数据对象时按照小块来分配,存储大的数据对象时按照大块来分配。
[0008]本发明的技术方案为:本发明揭示了一种基于位图的存储空间管理系统,包括:
[0009]索引位图配置模块,配置位于上层的索引位图,索引位图包括主资源索引位图、大块索引位图、副资源索引位图、以及小块索引位图;
[0010]状态位图配置模块,配置位于下层的状态位图,状态位图包括并列的资源状态位图和分配状态位图,其中资源状态位图的一个资源状态位和分配状态位图中的相应位置的一个分配状态位对应着存储空间中的同一个存储块,每多个资源状态位构成一个资源状态位图单元,每多个分配状态位构成一个分配状态位图单元,每一个资源状态位图单元和与之对应的一个分配状态位图单元组成一个状态位图单元,且资源状态位图中的每一位的二进制值指示对应的存储块是否被占用,分配状态位图中的每一位的二进制值指示对应的存储块是否可进一步分割;
[0011]其中索引位图中的每一索引位对应一个状态位图单元,通过索引位的二进制值表示是否有效,主资源索引位图用于索引包含空闲块且没有用于大块分配或小块分配的一个状态位图单元,副资源索引位图用于索引小块分配且资源状态位不全为占用状态的一个状态位图单元,大块索引位图用于索引大块分配的一个状态位图单元,小块索引位图用于索引小块分配的一个状态位图单元。
[0012]根据本发明的基于位图的存储空间管理系统的一实施例,索引位图配置模块配置多层级的索引位图。
[0013]根据本发明的基于位图的存储空间管理系统的一实施例,索引位图配置模块中的每个索引位图和状态位图配置模块中的每个状态位图分割成若干小块,并将每个位图相关联部分的小块集合到一起进行管理。
[0014]根据本发明的基于位图的存储空间管理系统的一实施例,状态位图配置模块中的资源状态位图和分配状态位图将存储空间中的存储块配置为未占用可分块状态、已占用可分块状态和已占用不可分块状态,当分配大块时状态位图配置模块同时修改存储块在资源状态位图和分配状态位图中的对应的状态位,以使存储块的状态配置成已占用不可分块状态;当分配小块时,在首次操作中修改存储块在资源状态位图和分配状态位图中的对应的状态位,以使存储块的状态配置成已占用可分块状态,直至存储块被全部分割成小块后,修改存储块在资源状态位图和分配状态位图中的对应的状态位,以使存储块的状态配置成已占用不可分块状态。
[0015]本发明还揭示了一种在基于位图的存储空间管理系统中实施大块分配的方法,用于在上述的存储空间管理系统中进行存储块的大块分配,方法包括:
[0016]按照大块索引位图、主资源索引位图、副资源索引位图的优先顺序查找可用于大块分配的状态位图单元的有效索引位;
[0017]若在大块索引位图中找到有效索引位,则确保主资源索引位图中对应的索引位无效;若在主资源索引位图中找到有效索引位,则将大块索引位图中对应的索引位设置成有效,同时将主资源索引位图中的索引位设置为无效;若在副资源索引位图中找到有效索引位,则在用于小块分配的状态位图单元中查找剩余的用于大块分配的存储块;
[0018]在上一步骤找到有效索引位后,在对应的资源状态位图单元中查找可分配的存储块并返回可分配的存储块的逻辑地址,同时将已分配的存储块在资源状态位图和分配状态位图中对应的状态位设置为无效;
[0019]若当前的资源状态位图单元的所有状态位都为无效时,则将该资源状态位图单元在索引位图中对应的索引位设置为无效,同时检查该资源状态位图单元对应的分配状态位图单元中是否还包括有效的状态位,并设置小块索引位图对应的索引位的状态。
[0020]本发明还揭示了一种在基于位图的存储空间管理系统中实施小块分配的方法,用于在上述的存储空间管理系统中进行块资源的小块分配,方法包括:
[0021]按照小块索引位图、主资源索引位图和大块索引位图的优先顺序,查找可进行小块分配的状态位图单元的有效的索引位;
[0022]若在小块索引位图中找到有效的索引位则直接进入下一步骤;若在主资源索引位图中查找到有效的索引位,则同时将小块索引位图和副资源索引位图中对应的索引位设置为有效,并将主资源索引位图和大块索引位图中的相应的索引位设置为无效后再进入下一步骤;若在大块索引位图中找到有效的索引位则直接进入下一步骤;
[0023]当找到有效的索引位之后,在这一有效的索引位对应的分配状态位图单元中查找可用于小块分配的存储块,从可用于小块分配的存储块中划分出一块进行小块分配,并确保该小块分配的存储块对应的资源状态位图单元的状态位为无效;
[0024]若存储块已被全部划分分配,则将分配状态位图单元中对应的状态位设置为无效;
[0025]若分配状态位图单元中所有的状态位都为无效,则将分配状态位图单元在索引位图中对应的索引位设置为无效。
[0026]本发明还揭示了一种在基于位图的存储空间管理系统中实施大块释放的方法,用于在上述的存储空间管理系统中进行块资源的大块释放,方法包括:
[0027]将存储块在资源状态位图单元和分配状态位图单元中对应的状态位设置成有效;
[0028]若分配状态位图单元仅一位有效则更新主资源索引位图对应的索引位的状态;
[0029]若状态位图单元中的所有状态位都有效,则将主资源索引位图、大块索引位图、副资源索引位图、以及小块索引位图中对应的索引位恢复到初始化状态;
[0030]若状态位图单元还没有完全释放则检查小块索引位图中对应的索引位,以确认该状态位图单元是否在小块索引位图中,若在小块索引位图中则确保该状态位图单元在副资源索引位图中对应的索引位为有效。
[0031]本发明还揭示了一种在基于位图的存储空间管理系统中实施小块释放的方法,用于在上述的存储空间管理系统中进行块资源的小块释放,方法包括:
[0032]检查开始释放的小块是否为整个存储块中的第一个小块;
[0033]若是整个存储块中的第一个小块,则将分配状态位图单元中相应的状态位设置成有效,若分配状态位图单元仅有一个有效位,则将分配状态位图单元在小块索引位图中的相应的索引位设置成有效;
[0034]若一个存储块划分的小块全部被释放,则将资源状态位图单元中对应的状态位设置为有效,当资源状态位图单元和分配状态位图单元中的所有状态位全部为有效时,将主资源索引位图、大块索引位图、副资源索引位图、以及小块索引位图中对应的索引位恢复到初始化状态;
[0035]若一个存储块的小块没有全部被释放,则检查小块索引位图中对应的索引位以确认状态位图
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1