文件系统以及采用该文件系统的文件管理方法_3

文档序号:9235545阅读:来源:国知局
可W采用第 a位二进制数据1对应指示第a个链表单元可分配、采用第a位二进制数据0对应指示第a 个链表单元不可分配,本发明对此不作限定。
[0化3] 基于图1所示的文件系统,本发明实施例提供一种采用该文件系统的文件管理方 法。所述文件管理方法包括新建文件、写入文件、保存文件W及删除文件。
[0化4] 所述新建文件包括:
[0化5] 步骤S11,查找所述文件索引表11 W获得可分配的文件属性表。具体地,查找图2 所示的位表,获得一个值为0的位,该位对应的文件属性表即为可用的文件属性表。在本实 施例中,若获得值为0的为第2位,则确定第2个文件属性表为可用的文件属性表。
[0化6] 步骤S12,将文件的相关信息写入所述可分配的文件属性表中的文件信息表。具体 地,将文件属性、文件名等相关信息写入第2个文件属性表的文件信息表。
[0057] 步骤S13,更新所述文件索引表11 W将所述可分配的文件属性表标记为不可分 配。将所述文件索引表11的第2位置1,W表示第2个文件属性表已使用。
[0化引所述写入文件包括:
[0化9] 步骤S21,遍历所述释放簇集链表13 W获得可回收簇集。仍W图5所示的所述释 放簇集链表13为例,第3个链表单元存放的释放簇集为可回收簇集,获得可回收簇集的地 址范围为5000~6999。
[0060] 步骤S22,将数据写入所述可回收簇集指定的存储地址范围,直到收到保存文件指 令或者所述可回收簇集用完。
[0061] 若所述可回收簇集用完,执行步骤S23,释放所述可回收簇集对应的链表单元,更 新所述释放簇集索引表14 W将所述可回收簇集对应的链表单元标记为可分配,将所述可 回收簇集的起始簇和所述可回收簇集的大小存入当前文件的簇集流列表,并重复执行步骤 S21~步骤S22。具体地,所述可回收簇集对应第3个链表单元,将所述释放簇集索引表14 的第3位置0, W表示第3个链表单元可W使用。并且,将所述可回收簇集的起始簇5000和 所述可回收簇集的大小2000存入当前文件对应的簇集流列表。
[0062] 若收到保存文件指令,执行步骤S24,保存文件。
[0063] 所述保存文件包括:
[0064] 步骤S31,更新写入文件的最后一个释放簇集对应的链表单元。具体地,将最后一 个释放簇集的剩余情况回写至其对应的链表单元。仍W图5中的第3个链表单元存放的释 放簇集为例,若该释放簇集被文件占用了 1000个簇,则更新第3个链表单元存储当前释放 簇集的起始簇为6000、更新第3个链表单元存储当前释放簇集的大小为1000。
[00化]步骤S32,标记当前文件的簇集流列表结束。在本实施例中,将当前文件的最后一 个簇集流单元全写为二进制数据0。
[0066] 步骤S33,更新所述文件属性表。具体地,将文件大小、文件起始簇、文件创立时间、 文件修改时间等信息写入所述文件信息表。
[0067] 所述删除文件包括:
[0068] 步骤S41,根据所述文件索引表11获得待删除文件的文件属性表。根据所述待删 除文件的文件属性表,可W获得所述待删除文件对应的簇集流列表。
[0069] 步骤S42,读取所述待删除文件对应的簇集流列表。
[0070] 步骤S43,将所述待删除文件占用的簇集逐个释放至所述释放簇集链表13中,并 更新所述释放簇集索引表14。具体地,依次读取待删除文件对应的簇集流列表,查找所述释 放簇集链表13,找到待插入释放簇集的前一个释放簇集和后一个释放簇集。通过比较前一 个释放簇集的结束簇与待插入释放簇集的起始簇之间的关系W及后一个释放簇集的起始 簇和待插入释放簇集的结束簇之间的关系,可W决定待插入释放簇集是直接合并到已有的 链表单元中还是新占用一个链表单元。待插入释放簇集的几种可能处理方式如下:
[0071] 查找到待插入释放簇集的起始簇与前一个释放簇集的结束簇W及待插入释放簇 集的结束簇和后一个释放簇集的起始簇均没有相接关系,捜索所述释放簇集索引表14,找 到可用的链表单元,存入待插入释放簇集,并将待插入释放簇集对应的链表单元作为新元 素插入到链表中,并标记所述释放簇集索引表14。
[0072] 查找到待插入释放簇集的起始簇与前一个释放簇集的结束簇相连,那么将待插入 释放簇集合并到前一个释放簇集对应的链表单元中。
[0073] 查找到待插入释放簇集的结束簇和后一个释放簇集的起始簇相连,那么将待插入 释放簇集合并到后一个释放簇集对应的链表单元中。
[0074] 查找到待插入释放簇集的起始簇与前一个释放簇集的结束簇相连,且待插入释放 簇集的结束簇和后一个释放簇集的起始簇相连,那么将待插入释放簇集合并到前一个释放 簇集对应的链表单元中,并释放后一个释放簇集对应的链表单元,并标记所述释放簇集索 引表14。
[0075] 本实施例提供的文件系统及采用该文件系统的文件管理方法,采用所述释放簇集 链表13指示可用的簇,不需要对已使用的簇进行记录,且构成所述释放簇集链表13的每个 链表单元记录的是释放簇集,因而所述释放簇集链表13占用的空间非常小,整个管理区间 也就大大减小了。W存储设备的总容量为2TB、所述文件数量F为10000个、所述预设阔值 为1GB为例,所述释放簇集链表13的容量最大仅为(R+F)*12B,即(2*1024+10000)*12B = 141. 1875邸。
[0076] 并且,由于所述释放簇集链表13占用的空间非常小,在文件写入、读取的过程中, 遍历所述释放簇集链表13获得可回收簇集的地址范围消耗的时间减少,提高了文件的读 写速度,数据读写带宽提高。
[0077] 图7是本发明另一种实施例的文件系统的结构示意图。与图1对应的实施例相比, 本实施例的文件系统1还包括可回收簇集加速访问表15,所述可回收簇集加速访问表15适 于存储所述释放簇集链表13中存放可回收簇集的链表单元的位置。在本实施例中,所述可 回收簇集加速访问表15采用循环队列结构,每个单元采用两个字节存储一个存放可回收 簇集的链表单元的位置,因而空间大小固定为所述可回收簇集的最大数量R*2B。图8是本 实施例的所述可回收簇集加速访问表15的示意图,所述释放簇集链表13每增加一个可回 收簇集,图8所示的队列写入指针加1 (即字节偏移2B);每利用完一个可回收簇集,释放该 可回收簇集对应的链表单元,即图8所示的队列读取指针加1。
[007引基于图7所示的文件系统,本发明实施例还提供一种采用该文件系统的文件管理 方法。所述文件管理方法包括新建文件、写入文件、保存文件W及删除文件。
[0079] 所述新建文件包括:
[0080] 步骤S51,查找所述文件索引表11 W获得可分配的文件属性表。
[0081] 步骤S52,将文件的相关信息写入所述可分配的文件属性表中的文件信息表。
[0082] 步骤S53,更新所述文件索引表11 W将所述可分配的文件属性表标记为不可分 配。
[0083] 步骤S51~步骤S53与步骤S11~步骤S13类似,在此不再寶述。
[0084] 所述写入文件包括:
[0085] 步骤S61,读取所述可回收簇集加速访问表15 W获得可回收簇集。具体地,读取所 述可回收簇集加速访问表15,获得存放可回收簇集的链表单元的位置,继而获得可回收簇 集的地址范围。
[0086] 步骤S62,将数据写入所述可回收簇集指定的存储地址范围,直到收到保存文件指 令或者所述可回收簇集用完。
[0087] 若所述可回收簇集用完,执行步骤S63,释放所述可回收簇集对应的链表单元,更 新所述释放簇集索引表14 W将所述可回收簇集对应的链表单元标记为可分配,将所述可 回收簇集的起始簇和所述可回收簇集的大小存入当前文件的簇集流列表,并重复执行步骤 S61~步骤S62。
[008引若收到保存文件指令,执行步骤S64,保存文件。
[0089] 步骤S62~步骤S64与步骤S22~步骤S24类似,在此不再寶述。
[0090] 所述保存文件包括:
[0091] 步骤S71,更新写入文件的最后一个释放簇集对应的链表单元和所述可回收簇集 加速访问表15。具体地,将最后一个释放簇集的剩余情况回写至其对应的链表单元。若最 后一个释放簇集的剩余空间仍为可回收簇集,则不对所述可回收簇集加速访问表15做任 何处理;若最后一个释放簇集的剩余空间为碎片,则将其从所述可回收簇集加速访问表15 中删除,即图8所示的队列读取指针加1。
[0092] 步骤S72,标记当前文件的簇集流列表结束。
[0093] 步骤S73,更新所述文件属性表。
[0094] 步骤S72~步骤S73与步骤S32~步骤S33类似,在此不再寶
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1